Для надсилання викликів до API Kubernetes використовуючи одну з мов програмування ви можете використовувати клієнтські бібліотеки. Офіційно підтримуються наступні:
Список портів та протоколів, які повинні бути відкриті на вузлах панелі управління та робочих вузлах.
Конфігураційні API
Цей розділ містить документацію для "неопублікованих" API, які використовуються для налаштування компонентів або інструментів Kubernetes. Більшість з цих API не експонуються через API-сервер у стилі REST, хоча вони є важливими для користувача чи оператора для використання або управління кластером.
KYAML є, по суті, форматом виводу; у будь-якому місці, де ви можете надати KYAML для Kubernetes, ви також можете надати будь-який інший дійсний вхідний YAML
YAML, доступний як формат виводу kubectl, а також використовується на рівні HTTP
Kubernetes також має власне кодування protobuf, яке використовується тільки в повідомленнях HTTP.
Інструмент kubectl підтримує деякі інші формати виводу, такі як custom columns; див. формати виводу у довідці kubectl.
1 - Глосарій
2 - Огляд API
Цей розділ містить довідкову інформацію про API Kubernetes.
REST API є фундаментальною основою Kubernetes. Усі операції та комунікації між компонентами та зовнішніми командами користувачів є викликами REST API, які обробляє API-сервер. Внаслідок цього все в Kubernetes обробляється як обʼєкти API та має відповідний запис в API.
Для отримання загальної інформації, читайте API Kubernetes. Керування доступом до API Kubernetes описує, як клієнти можуть автентифікуватися до сервера API Kubernetes, та як їхні запити авторизуються.
Версіювання API
Схеми серіалізації JSON та Protobuf слідують однаковими принципами для змін схеми. Наступні описи стосуються обох форматів.
Версіювання API та версіювання програмного забезпечення непрямо повʼязані. Пропозиція з версіювання API та релізів описує відносини між версіюванням API та версіюванням програмного забезпечення.
Різні версії API вказують на різні рівні стабільності та підтримки. Докладнішу інформацію про критерії кожного рівня можна знайти в документації API Changes.
Ось короткий огляд кожного рівня:
Alpha:
Назви версій містять alpha (наприклад, v1alpha1).
Вбудовані версії API рівня alpha типово вимкнені та повинні бути явно увімкнені в конфігурації kube-apiserver для використання.
Програмне забезпечення може містити помилки. Увімкнення функції може виявити помилки.
Підтримка alpha API може бути відключена в будь-який момент без попередження.
API може змінитися несумісним чином у подальших версіях програмного забезпечення без попередження.
Рекомендується використовувати програмне забезпечення тільки в тестових кластерах для короткочасного тестування через збільшений ризик помилок та відсутність довгострокової підтримки.
Beta:
Назви версій містять beta (наприклад, v2beta3).
Вбудовані версії API рівня beta типово вимкнені та повинні бути явно увімкнені в конфігурації kube-apiserver для використання (за винятком бета-версій API, представлених до Kubernetes 1.22, які були типово увімкнені).
Вбудовані версії API рівня beta мають максимальний термін служби 9 місяців або 3 мінорні випуски (в залежності, що довше), починаючи від введення до застаріння, і 9 місяців або 3 мінорні випуски (в залежності, що довше) від застаріння до вилучення.
Програмне забезпечення добре протестоване. Увімкнення функції вважається безпечним.
Підтримка функції не буде відключена, хоча можуть змінитися деталі.
Схема та/або семантика обʼєктів може змінюватися несумісним чином у подальших версіях API рівня beta або стабільного. Коли це відбувається, надаються інструкції з міграції. Адаптація до наступної версії API рівня beta або стабільного може вимагати редагування чи повторного створення обʼєктів API, і це може бути не простим. Міграція може вимагати перерви у роботі застосунків, які покладаються на цю функцію.
Програмне забезпечення не рекомендується для використання в промисловій експлуатації. Подальші випуски можуть вносити несумісні зміни. Використання версій API рівня beta обовʼязкове для переходу до наступних версій API рівня beta або стабільного, якщо версія API рівня beta застаріє та більше не буде обслуговуватися.
Примітка:
Спробуйте бета-функції та надавайте відгуки. Після того, як функції вийдуть з бета, може бути непрактично вносити більше змін.
Stable:
Назва версії — vX, де X – це ціле число.
Стабільні версії API залишаються доступними для всіх майбутніх випусків в межах основної версії Kubernetes, і немає поточних планів щодо ревізії основної версії Kubernetes, що вилучає стабільні API.
Групи API
Групи API спрощують розширення API Kubernetes. Група API вказується в REST-шляху та в полі apiVersion серіалізованого обʼєкта.
У Kubernetes існує кілька груп API:
core (також називається legacy) група знаходиться за REST-шляхом /api/v1. Основна група не вказується як частина поля apiVersion, наприклад, apiVersion: v1.
Названі групи знаходяться за REST-шляхом /apis/$GROUP_NAME/$VERSION та використовують apiVersion: $GROUP_NAME/$VERSION (наприклад, apiVersion: batch/v1). Повний список підтримуваних груп API можна знайти в довіднику API Kubernetes.
Увімкнення чи вимкнення груп API
Деякі ресурси та групи API типово увімкнені. Ви можете увімкнути чи вимкнути їх, встановивши --runtime-config на API-сервері. Прапорець --runtime-config приймає розділені комами пари <key>[=<value>], що описують конфігурацію запуску API-сервера. Якщо частина =<value> пропущена, вона розглядається так, ніби вказано =true. Наприклад:
для вимкнення batch/v1 встановіть --runtime-config=batch/v1=false
для увімкнення batch/v2alpha1 встановіть --runtime-config=batch/v2alpha1
для увімкнення конкретної версії API, наприклад, storage.k8s.io/v1beta1/csistoragecapacities, встановіть --runtime-config=storage.k8s.io/v1beta1/csistoragecapacities
Примітка:
При увімкненні чи вимкненні груп, чи ресурсів потрібно перезапустити API-сервер та controller manager, щоб внести зміни до --runtime-config.
Збереження
Kubernetes зберігає свій серіалізований стан у термінах ресурсів API, записуючи їх в etcd.
Kubernetes 1.36 включає необовʼязкову декларативну перевірку для API. Якщо її увімкнено, сервер API Kubernetes може використовувати цей механізм, а не застарілий підхід, який покладається на рукописний код Go (файли validation.go), щоб гарантувати, що запити до API є дійсними. Розробники Kubernetes та люди, які розширюють Kubernetes API, можуть визначати правила валідації безпосередньо поряд з визначеннями типів API (файли types.go). Автори коду визначають спеціальні теґи коментарів (наприклад, +k8s:minimum=0). Генератор коду (validation-gen) потім використовує ці теґи для створення оптимізованого коду Go для перевірки API.
Хоча ця функція в першу чергу впливає на учасників Kubernetes і потенційних розробників серверів API розширень, адміністратори кластерів повинні розуміти її поведінку, особливо на етапах її розгортання.
Теги декларативної перевірки можуть застосовуватися безпосередньо до нових полів API без необхідності будь-якого механізму життєвого циклу (наприклад, можливо використовувати +k8s:minimum=1). Для міграції наявних рукописних перевірок, де декларативна перевірка заміщає поточну логіку рукописної перевірки, впровадження контролюється тегами життєвого циклу перевірки (+k8s:alpha та +k8s:beta) разом із функціональним прапорцем DeclarativeValidationBeta:
DeclarativeValidation: (GA у v1.36, Стандартно: true, LockToDefault: true) Сервер API виконує обидві системи перевірки — нову декларативну та стару рукописну для перенесених типів/полів у режимі "тіньової перевірки" (Alpha). Результати порівнюються внутрішньо.
DeclarativeValidationBeta: (Beta, Стандартно: true) Введено у v1.36. Цей прапорець контролює застосування правил перевірки на етапі бета-версії. Якщо увімкнено, правила, позначені як +k8s:beta, є авторитетними; якщо вимкнено, вони повертаються до режиму тіньової перевірки.
DeclarativeValidationTakeover: (Визнано застарілим у v1.36). Раніше використовувався для визначення, чи є результати декларативної перевірки авторитетними. Тепер не враховується, але його можна встановити, щоб уникнути помилок "gate not recognized".
Типова поведінка (Kubernetes 1.36):
Зі значеннями DeclarativeValidationBeta=true (стандартно) працюють обидві системи валідації для Alpha та тіньових правил. Діють правила бета-версії.
Використовуються результати рукописної валідації для Alpha правил. Декларативна валідація запускається у режимі розбіжностей для порівняння.
Невідповідності між двома системами валідації реєструються сервером API і збільшують метрику declarative_validation_mismatch_total. Ці дані дозволяють розробникам виявляти та виправляти розбіжності на етапі тіньової перевірки.
Адміністратори можуть явно вимкнути функціональну можливість DeclarativeValidationBeta, щоб повернути правила перевірки +k8s:beta у режим тіньової перевірки, якщо спостерігається неочікувана поведінка перевірки або регресії.
Вимкнення DeclarativeValidationBeta
Як адміністратор кластера, ви можете розглянути можливість вимкнення DeclarativeValidationBeta=false за певних обставин:
Неочікувана поведінка перевірки: Якщо увімкнення DeclarativeValidationBeta призводить до неочікуваних помилок перевірки або дозволяє обʼєкти, які раніше були недійсними.
Погіршення продуктивності: Якщо моніторинг вказує на значне збільшення затримок (наприклад, у apiserver_request_duration_seconds), повʼязане з увімкненням цієї функції.
Високий рівень невідповідностей: Якщо метрика declarative_validation_mismatch_total показує часті невідповідності, що свідчить про потенційні помилки в декларативних правилах, які впливають на робочі навантаження кластера, навіть якщо DeclarativeValidationBeta має значення false.
Щоб повернути правила перевірки +k8s:beta у режим тіньової перевірки, вимкніть функціональну можливість DeclarativeValidationBeta, наприклад, за допомогою аргументів командного рядка: (--feature-gates=DeclarativeValidationBeta=false).
Міркування щодо пониження версії та відкату
Вимкнення функціональної можливості DeclarativeValidationBeta діє як механізм безпеки. Однак, памʼятайте про потенційний крайній випадок (який вважається малоймовірним завдяки ретельному тестуванню): Якщо помилка у декларативній перевірці (коли DeclarativeValidationBeta=true) неправильно дозволила зберегти недійсний обʼєкт, вимкнення функціональних можливостей може призвести до блокування подальших оновлень цього конкретного обʼєкта за допомогою тепер авторизованої (і правильної) ручної перевірки. Розвʼязання цієї проблеми може вимагати ручного виправлення збереженого обʼєкта, можливо, за допомогою прямої модифікації etcd у рідкісних випадках.
Докладні відомості про керування функціональними можливостями наведено у статті Функціональні можливості.
Довідник теґів декларативної валідації
Цей документ містить вичерпну довідкову інформацію про всі доступні теґи декларативної валідації.
Вказує, що це поле є членом групи нуль-або-один-з.
Stable
Довідник по теґам
+k8s:alpha
Опис:
Теґ +k8s:alpha вмикає тіньовий режим для правил валідації. Він представляє першу фазу життєвого циклу валідації для безпечного перенесення поточної ручної логіки валідації до декларативних теґів. Не використовуйте цей теґ для нових полів API, які повинні застосовувати декларативні теґи валідації безпосередньо.
Коли валідація позначена як +k8s:alpha, виконувана логіка валідації включає оригінальну ручну логіку валідації, як зазвичай, але додатково запускає тіньову декларативну валідацію в неблокуючому режимі, а потім перевіряє, чи результати збігаються. Будь-які невідповідності або паніки записуються через метрики (наприклад: declarative_validation_mismatch_total та declarative_validation_panic_total). Цей тіньовий механізм дозволяє учасникам та адміністраторам оцінювати правила декларативної валідації в реальному середовищі без впливу на поведінку кластера. Моніторинг метрик невідповідностей дозволяє перевірити, що декларативні правила поводяться ідентично до наявної ручної логіки перед підвищенням валідації до бета-версії.
Рівень стабільності: Stable
Аргументи:
since (string, обов'язково): Версія Kubernetes, в якій валідація вперше була позначена як тіньова.
Payload:
<validation-tag>: Стандартний декларативний теґ валідації, який буде позначений як тіньовий (наприклад, +k8s:minimum=1).
Теґ +k8s:beta вмикає режим примусового застосування для правил валідації, що мігрують з ручної логіки, керований через функціональну можливість DeclarativeValidationBeta. Не використовуйте цей теґ для нових полів API, які повинні застосовувати декларативні теґи валідації безпосередньо.
Після того, як правило валідації було оцінене в тіньовому режимі (через +k8s:alpha), воно підвищується до бета-версії. Коли DeclarativeValidationBeta увімкнено (стандартно), правила +k8s:beta застосовуються примусово і є авторитетними. Вимкнення функціональної можливості повертає правила +k8s:beta до тіньового режиму, забезпечуючи механізм відкату у разі виникнення регресій.
Рівень стабільності: Stable
Аргументи:
since (string, обовʼязково): Версія Kubernetes, в якій валідація була підвищена до бета-версії.
Корисне навантаження:
<validation-tag>: Стандартний декларативний теґ валідації, який буде застосовуватися примусово (наприклад, +k8s:minimum=1).
У цьому прикладі eachKey використовується для вказівки, що теґ +k8s:minimum повинен застосовуватися до кожного ключа int в MyMap. Це означає, що всі ключі в map повинні бути >= 1.
+k8s:eachVal
Опис:
Оголошує валідацію для кожного значення в map або списку.
Рівень стабільності: Alpha
Корисне навантаження:
<validation-tag>: Теґ для оцінки для кожного значення.
У цьому прикладі eachVal використовується для вказівки, що теґ +k8s:minimum повинен застосовуватися до кожного елемента в MyList. Це означає, що всі поля в MyStruct повинні бути >= 1.
+k8s:enum
Опис:
Вказує, що тип рядка є enum (перерахуванням). Усі константи цього типу вважаються значеннями в перерахуванні.
Рівень стабільності: Beta
Приклад використання:
Спочатку визначте новий тип рядка та кілька констант цього типу:
У цьому прикладі MyField є обовʼязковим лише тоді, коли опція "my-feature" увімкнена.
+k8s:isSubresource
Рівень стабільності: Stable
Опис:
Теґ +k8s:isSubresource є коментарем на рівні пакета, який обмежує правила валідації в межах цього пакета до конкретного субресурсу. Він по суті говорить генератору коду: "Логіка валідації, визначена тут, є специфічною реалізацією для цього субресурсу і не повинна застосовуватися до кореневого обʼєкта або будь-якого іншого субресурсу."
КРИТИЧНА ЗАЛЕЖНІСТЬ:
Цей теґ є залежним від відповідного теґа +k8s:supportsSubresource, який повинен бути присутній у пакеті, де визначено основний тип API.
+k8s:supportsSubresource відкриває двері, кажучи диспетчеру, що субресурс є дійсним.
+k8s:isSubresource надає спеціалізовану логіку валідації, яка виконується, коли запит проходить через ці двері.
Якщо ви використовуєте +k8s:isSubresource без відповідного оголошення +k8s:supportsSubresource для основного типу, спеціалізований код валідації буде згенеровано, але він буде недоступний. Основний диспетчер не розпізнає шлях субресурсу і відхилить запит, перш ніж він зможе бути надісланий до вашої специфічної логіки валідації.
Ця залежність дозволяє потужну організацію, таку як розміщення ваших основних типів API в одному пакеті та визначення їх специфічних для субресурсу валідацій у окремих, спеціалізованих пакетах.
Область дії: Пакет
Корисне навантаження:
<subresource-path>: Шлях субресурсу, до якого повинні застосовуватися валідації в цьому пакеті (наприклад, "/status", "/scale").
Приклад використання:
Цей приклад з двох частин демонструє передбачуваний випадок використання розділення обовʼязків.
1. Оголосити підтримку в основному пакеті API:
Спочатку оголосіть, що тип Deployment підтримує валідацію /scale у своєму основному пакеті.
Файл: staging/src/k8s.io/api/apps/v1/doc.go
// Це дозволяє диспетчеру валідації обробляти запити для "/scale".// +k8s:supportsSubresource="/scale"packagev1// ... включає визначення типу Deployment
2. Обмежити логіку валідації в окремому пакеті:
Далі створіть окремий пакет для правил валідації, які специфічні тільки для субресурсу /scale.
// Це забезпечує те, що правила в цьому пакеті виконуються ТІЛЬКИ для субресурсу "/scale".// +k8s:isSubresource="/scale"packagescaleimport"k8s.io/api/apps/v1"// Код валідації в цьому пакеті буде посилатися на типи з пакета v1 (наприклад, v1.Scale).// Згенерована функція валідації буде викликатися лише для запитів до субресурсу "/scale"// обʼєкта типу, визначеного в пакеті, який підтримує це.
+k8s:item
Опис:
Оголошує валідацію для елемента зрізу, оголошеного як +k8s:listType=map. Елемент, що має збіг, оголошується шляхом надання аргументів парою поле-значення, де поле є listMapKey. Усі поля ключів listMapKey повинні бути вказані.
Аргументи повинні бути іменовані за допомогою JSON-імен полів ключів списку-мапи. Значення можуть бути рядками, цілими числами або булевими значеннями.
Корисне навантаження:
<validation-tag>: Теґ для оцінки для елемента списку, що має збіг.
Умова з type "Approved" є частиною групи нуль-або-один-з.
Умова з type "Denied" є частиною групи нуль-або-один-з.
+k8s:listMapKey
Опис:
Оголошує іменоване підполе типу значення списку як частину ключа list-map. Цей теґ є обовʼязковим, коли використовується +k8s:listType=map. Кілька теґів +k8s:listMapKey можуть використовуватися на list-map, щоб вказати, що він є ключем з кількох полів.
Рівень стабільності: Stable
Корисне навантаження:
<field-json-name>: Імʼя JSON поля, яке буде використовуватися як ключ.
У цьому прикладі MyList оголошується як список типу map, з keyField як ключем. Це означає, що логіка валідації забезпечить те, що кожен елемент списку має унікальний keyField.
+k8s:maxItems
Опис:
Вказує, що поле списку має обмеження на розмір.
Рівень стабільності: Stable
Корисне навантаження:
<негативне число>: Це поле не повинно містити більше X елементів.
Вказує, що будь-які валідації, оголошені для вказаного типу, будуть проігноровані. Якщо пакет вказаного типу не включено в поточні прапорці генератора, цей теґ повинен бути встановлений, інакше генерація коду завершиться невдачею (запобігаючи тихим помилкам). Якщо валідації не повинні ігноруватися, додайте пакет типу до генератора за допомогою прапорця --readonly-pkg.
У цьому прикладі MySubfield всередині MyStruct є обовʼязковим.
+k8s:supportsSubresource
Рівень стабільності: Stable
Опис:
Теґ +k8s:supportsSubresource є коментарем на рівні пакета, який оголошує, які субресурси є дійсними цілями для валідації для типів у межах цього пакета. Розглядайте цей теґ як реєстрацію точки доступу; він говорить системі валідації, що конкретний шлях субресурсу визнано і його не слід відхиляти відразу.
Коли генерується код валідації, цей теґ додає вказаний шлях субресурсу до основної функції диспетчера для типу. Це дозволяє вхідним запитам для цього субресурсу бути надісланими до реалізації валідації.
Кілька теґів можуть використовуватися для оголошення підтримки кількох субресурсів. Якщо в пакеті немає жодного теґа +k8s:supportsSubresource, валідація увімкнена лише для кореневого ресурсу (наприклад, .../myresources/myobject), і будь-які запити до субресурсів будуть відхилені з помилкою "валідація не знайдена".
Окрема використання:
Якщо ви використовуєте +k8s:supportsSubresource без відповідного теґа +k8s:isSubresource для конкретної валідації, стандартно правила валідації для кореневого обʼєкта будуть застосовані до субресурсу.
Область дії: Пакет
Корисне навантаження:
<subresource-path>: Шлях субресурсу, який потрібно підтримувати (наприклад, "/status", "/scale").
Приклад використання:
Додавши ці теґи, ви дозволяєте системі валідації обробляти запити для /status та /scale субресурсів для типів, визначених у пакеті v1.
У цьому прикладі M1 і M2 є членами названого обʼєднання union1.
+k8s:zeroOrOneOfMember
Опис:
Вказує, що це поле є членом групи нуль-або-один-з. Група нуль-або-один-з дозволяє встановити не більше ніж одного члена. На відміну від звичайних обʼєднань, відсутність встановлених членів є дійсною.
Рівень стабільності: Stable
Аргументи:
union (рядок, необовʼязково): Імʼя обʼєднання, якщо їх кілька.
memberName (рядок, необовʼязково): Користувацьке імʼя члена для цього члена. Стандартно використовується імʼя поля.
У цьому прикладі не більше ніж один з A або B може бути встановлений. Також дійсно, що жоден з них не встановлений.
2.2 - Концепції API Kubernetes
API Kubernetes — це програмний інтерфейс на основі ресурсів (RESTful), який надається через HTTP. Він підтримує отримання, створення, оновлення та видалення основних ресурсів за допомогою стандартних HTTP-дієслів (POST, PUT, PATCH, DELETE, GET).
Для деяких ресурсів API включає додаткові субресурси, що дозволяють детальніше налаштовувати авторизацію (наприклад, окремі представлення для деталей Pod та отримання логів), і може приймати та надавати ці ресурси в різних форматах для зручності або ефективності.
Kubernetes підтримує ефективні сповіщення про зміни ресурсів за допомогою watches.
В API Kubernetes, watch це дієслово, яке використовується для відстеження змін обʼєкта в Kubernetes у вигляді потоку. Використовується для ефективного виявлення змін.
Kubernetes також забезпечує послідовні операції зі списками, щоб клієнти API могли ефективно кешувати, відстежувати та синхронізувати стан ресурсів.
Ви можете переглянути Довідник API онлайн або прочитати далі, щоб дізнатися про API загалом.
Терміни API Kubernetes
Kubernetes зазвичай використовує загальноприйняту термінологію RESTful для опису концепцій API:
Тип ресурсу — це назва, що використовується в URL (pods, namespaces, services)
Усі типи ресурсів мають конкретне представлення (їх схему обʼєкта), яке називається kind
Список екземплярів типу ресурсу називається колекцією
Окремий екземпляр типу ресурсу називається ресурсом і зазвичай представляє обʼєкт
Для деяких типів ресурсів API включає один або більше субресурсів, які представлені як URI-шляхи після назви ресурсу
Більшість типів ресурсів API Kubernetes є обʼєктами — вони представляють конкретний екземпляр концепції у кластері, як-от pod або namespace. Невелика кількість типів ресурсів API є віртуальними, оскільки вони часто представляють операції над обʼєктами, а не самі обʼєкти, такі як перевірка дозволів (використання POST із JSON-кодованим тілом SubjectAccessReview для ресурсу subjectaccessreviews), або субресурс eviction у Pod (використовується для запуску виселення, ініційованого API).
Імена обʼєктів
Усі обʼєкти, які ви можете створити через API, мають унікальне імʼя, що дозволяє ідемпотентне1 створення та отримання, за винятком віртуальних типів ресурсів, які можуть не мати унікальних імен, якщо вони не можуть бути отримані або не залежать від ідемпотентності.
У межах простору імен, унікальна ідентичність обʼєкта визначається кортежем його API Group, Resource, Namespace та Name.
Cross-Group: Ви можете мати два обʼєкти з однаковим іменем, якщо вони належать до різних API Groups (наприклад, apps та example.com).
Cross-Version: Різні версії API (наприклад, v1 та v1beta1) однієї групи та ресурсу представляють ті самі базові дані. Створення обʼєкта з однаковим іменем у іншій версії тієї ж групи призводить до конфлікту імен, оскільки вони мають однакову ідентичність у сховищі.
Деякі обʼєкти не належать до простору імен (наприклад: Nodes), тому їхні імена повинні бути унікальними в межах усього кластера.
Дієслова API
Майже всі типи ресурсів підтримують стандартні HTTP-дієслова — GET, POST, PUT, PATCH, та DELETE. Kubernetes також використовує власні дієслова, які часто пишуться малими літерами, щоб відрізняти їх від HTTP-дієслів.
Kubernetes використовує термін list для опису дії отримання колекції ресурсів, щоб відрізняти її від дії отримання одного ресурсу, яка зазвичай називається get. Якщо ви надішлете HTTP-запит GET із параметром ?watch, Kubernetes називає це watch, а не get (див. Ефективне виявлення змін для деталей).
Для запитів PUT Kubernetes внутрішньо класифікує їх як create або update залежно від стану наявного обʼєкта. Update відрізняється від patch; HTTP-дієслово для patch - PATCH.
URI ресурсів
Усі типи ресурсів або належать кластеру (/apis/GROUP/VERSION/*), або простору імен (/apis/GROUP/VERSION/namespaces/NAMESPACE/*). Тип ресурсу, що належить простору імен, буде видалений при видаленні простору імен, і доступ до цього типу ресурсу контролюється перевірками авторизації в межах простору імен.
Примітка: основні ресурси використовують /api замість /apis і пропускають сегмент GROUP.
Ви також можете отримати доступ до колекцій ресурсів (наприклад, переліку усіх Nodes). Наступні шляхи використовуються для отримання колекцій та ресурсів:
Ресурси кластерного рівня:
GET /apis/GROUP/VERSION/RESOURCETYPE — повертає колекцію ресурсів вказаного типу ресурсу
GET /apis/GROUP/VERSION/RESOURCETYPE/NAME — повертає ресурс з імʼям NAME вказаного типу ресурсу
Ресурси рівня простору імен:
GET /apis/GROUP/VERSION/RESOURCETYPE — повертає колекцію всіх екземплярів вказаного типу ресурсу в усіх просторах імен
GET /apis/GROUP/VERSION/namespaces/NAMESPACE/RESOURCETYPE — повертає колекцію всіх екземплярів вказаного типу ресурсу в просторі імен NAMESPACE
GET /apis/GROUP/VERSION/namespaces/NAMESPACE/RESOURCETYPE/NAME — повертає екземпляр вказаного типу ресурсу з імʼям NAME в просторі імен NAMESPACE
Оскільки простір імен є ресурсом кластерного рівня, ви можете отримати перелік ("колекцію") всіх просторів імен за допомогою GET /api/v1/namespaces та деталі про конкретний простір імен за допомогою GET /api/v1/namespaces/NAME.
Субресурс кластерного рівня: GET /apis/GROUP/VERSION/RESOURCETYPE/NAME/SUBRESOURCE
Субресурс рівня простору імен: GET /apis/GROUP/VERSION/namespaces/NAMESPACE/RESOURCETYPE/NAME/SUBRESOURCE
Підтримувані дієслова для кожного субресурсу будуть відрізнятися залежно від обʼєкта — див. Довідник API для отримання додаткової інформації. Немає можливості отримати доступ до субресурсів через декілька ресурсів — зазвичай використовується новий віртуальний тип ресурсу, якщо це стає необхідним.
HTTP медіа-типи
Kubernetes підтримує кодування JSON, YAML, CBOR та Protobuf для передачі даних по HTTP.
Стандартно, Kubernetes повертає серіалізовані об’єкти JSON, використовуючи медіа-тип application/json. Хоча JSON є стандартним типом, клієнти можуть запитувати відповідь у форматі YAML, або більш ефективне двійкове подання у вигляді Protobuf для кращої продуктивності.
Kubernetes API реалізує стандартне узгодження типів вмісту HTTP: передача заголовка Accept у запиті GET вказує серверу спробувати повернути відповідь у бажаному медіа-типі. Якщо ви хочете надіслати об’єкт у форматі Protobuf на сервер для запиту PUT або POST, вам необхідно відповідно встановити заголовок запиту Content-Type.
Якщо ви запитуєте доступні медіа-типи, API-сервер повертає відповідь з відповідним заголовком Content-Type; якщо жоден із запитаних медіа-типів не підтримується, API-сервер поверне повідомлення про помилку 406 Not acceptable. Усі вбудовані типи ресурсів підтримують медіа-тип application/json.
Часткове кодування колекцій
Для кодування JSON та Protobuf Kubernetes реалізує власні кодувальники, які записують елементи по одному. Ця функція не змінює вихідні дані, але дозволяє API-серверу уникати завантаження всієї відповіді LIST в памʼять. Використання інших типів кодування (включаючи форматоване представлення JSON) слід уникати для великих колекцій ресурсів (>100MB), оскільки це може негативно вплинути на продуктивність.
Кодування ресурсів у форматі JSON
API Kubernetes стандартно використовує JSON для кодування тіла HTTP повідомлень.
Наприклад:
Вивести список усіх Podʼів в кластері без вказування бажаного формату
GET /api/v1/pods
200 OK
Content-Type: application/json
… Колекція Pod, закодована у форматі JSON (обʼєкт PodList)
Створити Pod, відправивши JSON на сервер та запросивши відповідь у форматі JSON.
POST /api/v1/namespaces/test/pods
Content-Type: application/json
Accept: application/json
… Обʼєкт Pod, закодований у форматі JSON
Ви також можете запросити представлення цього кодування у вигляді таблиці та тільки метаданих.
Кодування ресурсів у YAML
Kubernetes також підтримує медіатип application/yaml для запитів та відповідей. YAML може використовуватись для визначення маніфестів Kubernetes та взаємодії з API.
Наприклад:
Отримати список усіх podʼів у кластері у форматі YAML
GET /api/v1/pods
Accept: application/yaml
200 OK
Content-Type: application/yaml
… YAML-кодована колекція Podʼів (обʼєкт PodList)
Створити pod, надіславши дані у форматі YAML на сервер і запросивши відповідь у форматі YAML:
POST /api/v1/namespaces/test/pods
Content-Type: application/yaml
Accept: application/yaml
… YAML-кодований об'єкт Pod
200 OK
Content-Type: application/yaml
apiVersion: v1
kind: Pod
metadata:
name: my-pod
…
Ви також можете запросити представлення цього кодування у вигляді таблиці та тільки метаданих.
Кодування Kubernetes Protobuf
Kubernetes використовує обгортку-конверт для кодування відповідей у форматі Protobuf. Ця обгортка починається з 4 байтів магічного числа, щоб допомогти ідентифікувати вміст на диску або в etcd як Protobuf (на відміну від JSON). Дані з магічним числом (4 байти) слідують за повідомленням, закодованим у форматі Protobuf, яке описує кодування та тип основного об’єкта. Усередині повідомлення Protobuf дані внутрішнього об’єкта записуються за допомогою поля raw Unknown (дивіться IDL для докладної інформації).
Наприклад:
Вивести список усіх Pod в кластері у форматі Protobuf.
GET /api/v1/pods
Accept: application/vnd.kubernetes.protobuf
200 OK
Content-Type: application/vnd.kubernetes.protobuf
… Колекція Pod, закодована у двійковому форматі (обʼєкт PodList)
Створити Pod, відправивши дані, закодовані у форматі Protobuf на сервер, але запросити відповідь у форматі JSON.
POST /api/v1/namespaces/test/pods
Content-Type: application/vnd.kubernetes.protobuf
Accept: application/json
… двійково закодований обʼєкт Pod
---
200 OK
Content-Type: application/json
{
"kind": "Pod",
"apiVersion": "v1",
...
}
Ви можете використовувати обидві техніки разом і взаємодіяти з API Kubernetes, яке підтримує кодування Protobuf, для читання та запису даних. Лише деякі типи ресурсів API є сумісними з Protobuf.
Не всі типи ресурсів API підтримують кодування Kubernetes у форматі Protobuf; зокрема, Protobuf не доступний для ресурсів, які визначені як CustomResourceDefinitions або надаються через шар агрегації.
Як клієнт, якщо вам може знадобитися працювати з розширеними типами, слід вказати кілька типів контенту в заголовку Accept запиту для підтримки резервного переходу на JSON. Наприклад:
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.32 [alpha](стандартно вимкнено)
З увімкненою функціональною можливістюCBORServingAndStorage тіла запитів і відповідей для всіх вбудованих типів ресурсів і всіх ресурсів, визначених CustomResourceDefinition, можуть бути закодовані у двійковий формат даних CBOR. CBOR також підтримується на рівні aggregation layer, якщо він увімкнений на окремих агрегованих серверах API.
Клієнти повинні вказувати медіа-тип IANA application/cbor в заголовку HTTP-запиту Content-Type, коли тіло запиту містить один CBOR закодований елемент даних, і в заголовку HTTP-запиту Accept, коли вони готові прийняти CBOR-кодований елемент даних у відповіді. Сервери API будуть використовувати application/cbor в заголовку Content-Type HTTP-відповіді, коли тіло відповіді містить об'єкт, закодований CBOR.
Якщо сервер API кодує свою відповідь на watch request за допомогою CBOR, тіло відповіді буде CBOR Sequence, а в заголовку Content-Type HTTP-відповіді буде використано медіа-тип IANA application/cbor-seq. Кожен елемент послідовності (якщо такий є) є окремою подією спостереження, закодованою CBOR.
На додаток до існуючого типу даних application/apply-patch+yaml для YAML-кодованих конфігурацій додатків на стороні сервера, сервери API, які підтримують CBOR, прийматимуть тип даних application/apply-patch+cbor для конфігурацій додатків на стороні сервера, закодованих CBOR. Для application/json-patch+json або application/merge-patch+json, або application/strategic-merge-patch+json не підтримується еквівалент CBOR.
Ви також можете запросити представлення цього кодування у вигляді таблиці та тільки метаданих.
Ефективне виявлення змін
API Kubernetes дозволяє клієнтам зробити початковий запит на обʼєкт або колекцію, а потім відстежувати зміни з моменту цього запиту: це watch. Клієнти можуть відправити list або get і потім зробити наступний запит watch.
Для реалізації цього відстеження змін кожен обʼєкт Kubernetes має поле resourceVersion, яке представляє версію цього ресурсу, що зберігається в постійному шарі збереження. При отриманні колекції ресурсів (як простору імен, так і кластерного рівня), відповідь від сервера API містить значення resourceVersion. Клієнт може використовувати це значення resourceVersion для ініціювання watch проти сервера API.
Коли ви надсилаєте запит watch, сервер API відповідає потоком змін. Ці зміни перераховують результати операцій (таких як create, delete, та update), що відбулись після resourceVersion, значення якого було вказане як параметр до запиту watch. Загальний механізм watch дозволяє клієнту отримати поточний стан і потім підписатися на подальші зміни, не пропускаючи жодної події.
Якщо клієнт watch відʼєднується, тоді цей клієнт може розпочати новий сеанс watch з останнього повернутого resourceVersion; клієнт також може виконати новий запити get/list і розпочати знову. Див. Семантика версій ресурсів для отримання детальнішої інформації.
Наприклад:
Отримання списку всіх Podʼів у вказаному просторі імен.
GET /api/v1/namespaces/test/pods
---
200 OK
Content-Type: application/json
{
"kind": "PodList",
"apiVersion": "v1",
"metadata": {"resourceVersion":"10245"},
"items": [...]
}
Починаючи з версії ресурсу 10245, отримуйте сповіщення про будь-які операції API (такі як create, delete, patch або update), що впливають на Podʼи у просторі імен test. Кожне сповіщення про зміну — це документ JSON. Тіло відповіді HTTP (надається як application/json) складається із серії документів JSON.
Сервер Kubernetes буде зберігати історичний запис змін лише протягом обмеженого часу. Кластери, що використовують etcd 3, стандартно зберігають зміни за останні 5 хвилин. Коли запитувані операції watch не вдаються через недоступність історичної версії цього ресурсу, клієнти повинні обробляти цей випадок, розпізнаючи код статусу 410 Gone, очищаючи свій локальний кеш, виконуючи новий get або list запит, і починаючи watch з resourceVersion, яке було повернуто.
Для підписки на колекції бібліотеки клієнтів Kubernetes зазвичай пропонують певну форму стандартного інструменту для логіки list-потім-watch. (У бібліотеці клієнтів Go це називається Reflector і знаходиться в пакеті k8s.io/client-go/tools/cache).
Закладки для Watch
Щоб зменшити вплив короткого вікна історії, API Kubernetes надає подію спостереження під назвою BOOKMARK. Це особливий вид події, що позначає, що всі зміни до вказаної клієнтом resourceVersion вже були надіслані. Документ, що представляє подію BOOKMARK, має тип який отримується запитом, але включає лише поле .metadata.resourceVersion. Наприклад:
Як клієнт, ви можете запитувати події BOOKMARK, встановлюючи параметр запиту allowWatchBookmarks=true у запиті watch, але не слід припускати, що закладки будуть повертатися з певним інтервалом, і клієнти не можуть очікувати, що сервер API надішле будь-яку подію BOOKMARK, навіть якщо її було запитано.
Потокові списки
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [beta](стандартно увімкнено)
У великих кластерах отримання колекції деяких типів ресурсів може призвести до значного збільшення використання ресурсів (переважно RAM) панелі управління. Щоб зменшити вплив та спростити користування шаблоном list + watch у Kubernetes v1.32 переведено у бета-версію функцію, яка дозволяє запитувати початковий стан (який раніше запитувався за допомогою запиту list) як частину запиту watch.
На стороні клієнта початковий стан можна запросити, вказавши sendInitialEvents=true як параметр рядка запиту у запиті типу watch. Якщо встановлено, сервер API починає потік спостереження з синтетичних початкових подій (типу ADDED) для побудови всього стану всіх наявних обʼєктів, після чого йде подія BOOKMARK (якщо запитано через параметр allowWatchBookmarks=true). Подія закладки включає версію ресурсу, до якої його було синхронізовано. Після надсилання події закладки сервер API продовжує роботу як для будь-якого іншого запиту watch.
Коли ви встановлюєте sendInitialEvents=true у рядку запиту, Kubernetes також вимагає, щоб ви встановили resourceVersionMatch до значення NotOlderThan. Якщо ви вказали resourceVersion у рядку запиту без значення або не вказали його взагалі, це інтерпретується як запит на узгоджене читання (consistent read); подія закладки надсилається, коли стан синхронізовано щонайменше до моменту узгодженого читання з моменту, коли запит почав оброблятися. Якщо ви вказуєте resourceVersion (у рядку запиту), подія закладки надсилається, коли стан синхронізовано щонайменше до вказаної версії ресурсу.
Приклад
Приклад: ви хочете спостерігати за колекцією Podʼів. Для цієї колекції поточна версія ресурсу
становить 10245, і є два Podʼи: foo та bar. Надсилання наступного запиту (який явно запитує узгоджене читання, встановлюючи порожню версію ресурсу за допомогою resourceVersion=) може призвести до наступної послідовності подій:
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [alpha](стандартно вимкнено)
На великих кластерах контролери, які спостерігають за ресурсами з високою кардинальністю (наприклад, Podʼи або Endpoints), можуть споживати значну пропускну здатність мережі та CPU, отримуючи та десеріалізуючи повний потік подій, навіть якщо їм потрібна лише підмножина обʼєктів. Фрагментований list та watch дозволяє горизонтально масштабованим контролерам розподіляти навантаження так, щоб кожна репліка отримувала лише ті події, за які вона відповідає.
Kubernetes 1.36 в альфа-версії представляє функцію, яка дозволяє клієнтам запитувати фільтровані фрагменти обʼєктів з API-сервера, використовуючи хешоване розподілення за метаданими. Щоб використовувати цю функцію, увімкніть функціональну можливість ShardedListAndWatch на API-сервері. Коли функція увімкнена, API-сервер фільтрує як відповіді на list, так і потоки подій watch на стороні сервера, доставляючи лише ті обʼєкти та події, хешоване значення метаданих яких потрапляє в запитаний діапазон.
Поле shardSelector
Поле ShardSelector у ListOptions приймає вираз на основі CEL з використанням функції shardRange():
<field-path> — це поле метаданих, яке потрібно хешувати, використовуючи синтаксис CEL, що базується на корені обʼєкта. Підтримувані шляхи:
object.metadata.uid
object.metadata.namespace
<hex-start> — включна нижня межа діапазону хешу, у вигляді 16-значного шістнадцяткового рядка з префіксом 0x (наприклад, '0x0000000000000000').
<hex-end> — виключна верхня межа, у вигляді шістнадцяткового рядка з префіксом 0x. Максимальне значення — '0x10000000000000000' (2^64).
API-сервер обчислює детермінований 64-бітний FNV-1a хеш вказаного значення поля і повертає лише ті обʼєкти, хеш яких потрапляє в діапазон [start, end). Функція хешування дає однаковий результат для одного й того ж вхідного значення на всіх екземплярах API-сервера, тому фрагментовані запити безпечні для використання з кількома репліками API-сервера.
Ви можете комбінувати кілька діапазонів за допомогою || (логічне АБО), щоб охопити неперервні частини простору хешу. Усі діапазони в одному виразі повинні використовувати той самий шлях до поля.
Використання фрагментованого list та watch у контролерах
Контролери зазвичай використовують інформери для list та watch ресурсів. Щоб розподілити навантаження між репліками, кожна репліка вставляє поле ShardSelector у ListOptions, які використовуються її інформерами.
Стандартний спосіб зробити це — використовувати WithTweakListOptions при створенні спільної фабрики інформерів. Функція tweak виконується перед кожним викликом list та watch, який робить інформер, тому селектор фрагментів застосовується послідовно:
import(metav1"k8s.io/apimachinery/pkg/apis/meta/v1""k8s.io/client-go/informers")// shardSelector визначається ідентичністю репліки (наприклад, з порядкового номера StatefulSet або на основі оренди). Кожна репліка претендує на неперетинний діапазон простору хешу.shardSelector:="shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000')"factory:=informers.NewSharedInformerFactoryWithOptions(client,resyncPeriod,informers.WithTweakListOptions(func(opts*metav1.ListOptions){opts.ShardSelector=shardSelector}),)
З цією конфігурацією кожен інформер, створений з фабрики, перелічує та спостерігає лише ті обʼєкти, хешовані UID яких потрапляє в призначений діапазон. Кожна репліка отримує неперетинну підмножину повної колекції, зменшуючи мережевий трафік та використання памʼяті на репліку.
Для розгортання з 2 репліками селектори будуть такими:
// Репліка 0: нижня половина простору хешу"shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000')"// Репліка 1: верхня половина простору хешу"shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')"
Одна репліка також може обробляти неперервні діапазони, використовуючи ||:
Коли сервер API враховує ShardSelector, відповідь на list включає поле shardInfo у метаданих списку. Це відображає селектор, щоб клієнти могли перевірити, який фрагмент вони отримали. Для потоків watch селектор фрагментів застосовується однаково: сервер API надсилає події лише для обʼєктів, хеш яких потрапляє в запитуваний діапазон.
Відповідь на list, що містить shardInfo, представляє відфільтровану підмножину повної колекції. Клієнти не повинні розглядати фрагментовані відповіді на list як повне представлення типу ресурсу.
Виявлення підтримки сервером
Якщо сервер API не підтримує фрагментовані list та watch (через те, що функціональний прапорець не увімкнено або сервер є старішої версії), поле ShardSelector ігнорується, і сервер повертає повний, нефільтрований набір результатів. Клієнти можуть виявити це, перевіривши наявність shardInfo у метаданих відповіді на list. Якщо shardInfo відсутнє, сервер не врахував селектор фрагментів, і клієнт отримав повну, нефільтровану колекцію. У цьому випадку клієнт повинен бути готовий обробляти повний набір результатів, наприклад, застосовуючи фільтрацію на стороні клієнта, щоб відкинути обʼєкти поза його призначеним діапазоном фрагментів.
Стиснення відповідей
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.16 [beta](стандартно увімкнено)
Опція APIResponseCompression дозволяє серверу API стискати відповіді на запити get та list, зменшуючи використання мережевої пропускної здатності та покращуючи продуктивність у великих кластерах. Її стандартно увімкнено з Kubernetes 1.16 і її можна вимкнути додаванням APIResponseCompression=false у прапорець --feature-gates на сервері API.
Стиснення відповідей API може значно зменшити розмір відповіді, особливо для великих ресурсів або колекцій. Наприклад, запит list для Podʼів може повернути сотні кілобайт або навіть мегабайти даних, залежно від кількості Podʼів та їх атрибутів. Стиснення відповіді дозволяє зберегти мережеву пропускну здатність та зменшити затримки.
Щоб перевірити, чи працює APIResponseCompression, ви можете надіслати запит get або list на сервер API з заголовком Accept-Encoding та перевірити розмір відповіді та заголовки. Наприклад:
GET /api/v1/pods
Accept-Encoding: gzip
---
200 OK
Content-Type: application/json
content-encoding: gzip
...
Заголовок content-encoding вказує, що відповідь стиснута за допомогою gzip.
Отримання великих наборів результатів частинами
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.29 [stable](стандартно увімкнено)
У великих кластерах отримання колекції деяких типів ресурсів може призвести до дуже великих відповідей, що може вплинути на сервер та клієнта. Наприклад, у кластері може бути десятки тисяч Podʼів, кожен з яких еквівалентний приблизно 2 КіБ у форматі JSON. Отримання всіх Podʼів через всі простори імен може призвести до дуже великої відповіді (10-20 МБ) та спожити багато ресурсів сервера.
Сервер API Kubernetes підтримує можливість розбиття одного великого запиту на колекцію на багато менших частин, зберігаючи при цьому узгодженість загального запиту. Кожна частина може бути повернута послідовно, що зменшує загальний розмір запиту і дозволяє клієнтам, орієнтованим на користувачів, показувати результати поетапно для покращення швидкості реагування.
Ви можете запитувати сервер API для обробки list запиту, використовуючи сторінки (які Kubernetes називає chunks). Щоб отримати одну колекцію частинами, підтримуються два параметри запиту limit та continue у запитах до колекцій, і поле відповіді continue повертається з усіх операцій list у полі metadata колекції. Клієнт повинен вказати максимальну кількість результатів, яку він бажає отримати у кожній частині за допомогою limit, і сервер поверне кількість ресурсів у результаті не більше limit та включить значення continue, якщо у колекції є більше ресурсів.
Як клієнт API, ви можете передати це значення continue серверу API у наступному запиті, щоб вказати серверу повернути наступну сторінку (chunk) результатів. Продовжуючи до тих пір, поки сервер не поверне порожнє значення continue, ви можете отримати всю колекцію.
Як і у випадку з операцією watch, токен continue закінчується через короткий проміжок часу (стандартно 5 хвилин) і повертає 410 Gone, якщо більше результатів не може бути повернуто. У цьому випадку клієнт повинен буде почати з початку або опустити параметр limit.
Наприклад, якщо у кластері є 1,253 Podʼів і ви хочете отримувати частини по 500 Podʼів за раз, запитуйте ці частини наступним чином:
Отримати всі Podʼи в кластері, отримуючи до 500 Podʼів за раз.
Продовжити попередній запит, отримуючи останні 253 Podʼів.
GET /api/v1/pods?limit=500&continue=ENCODED_CONTINUE_TOKEN_2
---
200 OK
Content-Type: application/json
{
"kind": "PodList",
"apiVersion": "v1",
"metadata": {
"resourceVersion":"10245",
"continue": "", // токен continue порожній, тому що ми досягли кінця списку
...
},
"items": [...] // повертає Podʼи 1001-1253
}
Зверніть увагу, що resourceVersion колекції залишається постійним в кожному запиті, що вказує на те, що сервер показує вам узгоджену копію Podʼів. Podʼи, що створюються, оновлюються або видаляються після версії 10245, не будуть показані, якщо ви не зробите окремий запит list без токена continue. Це дозволяє вам розбивати великі запити на менші частини, а потім виконувати операцію watch на повному наборі, не пропускаючи жодного оновлення.
Поле remainingItemCount вказує кількість наступних елементів у колекції, які не включені у цю відповідь. Якщо запит list містив мітки або поля селектори, тоді кількість залишкових елементів невідома, і сервер API не включає поле remainingItemCount у свою відповідь. Якщо list запит завершено (або тому, що він не розбивається на частини, або тому, що це остання частина), то більше немає залишкових елементів, і сервер API не включає поле remainingItemCount у свою відповідь. Очікуване використання `remainingItemCount — оцінка розміру колекції.
Колекції
У термінології Kubernetes відповідь, яку ви отримуєте за допомогою list, є колекцією. Однак Kubernetes визначає конкретні види для колекцій різних типів ресурсів. Колекції мають вид, названий на честь виду ресурсу, з доданим List.
Коли ви надсилаєте запит API для певного типу, всі елементи, повернуті цим запитом, є цього типу. Наприклад, коли ви надсилаєте list Services, відповідь колекції має kind, встановлений на ServiceList; кожен елемент у цій колекції представляє один Service. Наприклад:
Є десятки типів колекцій (таких як PodList, ServiceList та NodeList), визначених в API Kubernetes. Ви можете отримати більше інформації про кожен тип колекції з довідника Kubernetes API.
Деякі інструменти, такі як kubectl, представляють механізм колекцій Kubernetes трохи інакше, ніж сам API Kubernetes. Оскільки вихідні дані kubectl можуть включати відповідь з декількох операцій list на рівні API, kubectl представляє список елементів, використовуючи kind: List. Наприклад:
Памʼятайте, що API Kubernetes не має kind з іменем List.
kind: List є клієнтським внутрішнім деталям реалізації для обробки колекцій, які можуть бути різними типами обʼєктів. Уникайте залежності від kind: List в автоматизації або іншому коді.
Отримання ресурсів у вигляді таблиць
Коли ви запускаєте kubectl get, стандартний формат виводу є простою табличною репрезентацією одного або кількох екземплярів певного типу ресурсу. У минулому клієнти повинні були відтворювати табличний і описовий вивід, реалізований у kubectl, щоб виконувати прості списки обʼєктів. Деякі обмеження цього підходу включають нетривіальну логіку при роботі з певними обʼєктами. Крім того, типи, надані API агрегуванням або сторонніми ресурсами, не відомі під час компіляції. Це означає, що повинні бути реалізовані загальні механізми для типів, які не розпізнаються клієнтом.
Щоб уникнути можливих обмежень, описаних вище, клієнти можуть запитувати табличну репрезентацію обʼєктів, делегуючи серверу специфічні деталі виводу. API Kubernetes реалізує стандартні HTTP-узгодження щодо типу контенту: передача заголовка Accept, що містить значення application/json;as=Table;g=meta.k8s.io;v=v1 з запитом GET попросить сервер повернути обʼєкти у форматі таблиці.
Наприклад, список усіх Podʼів у кластері у форматі таблиці.
GET /api/v1/pods
Accept: application/json;as=Table;g=meta.k8s.io;v=v1
---
200 OK
Content-Type: application/json
{
"kind": "Table",
"apiVersion": "meta.k8s.io/v1",
...
"columnDefinitions": [
...
]
}
Для типів ресурсів API, які не мають табличного визначення, відомого панелі управління, сервер API повертає стандартну таблицю, яка складається з полів name та creationTimestamp ресурсу.
Не всі типи ресурсів API підтримують табличну відповідь; наприклад, CustomResourceDefinitions можуть не визначати відповідність полів таблиці, а APIService, що розширює основний API Kubernetes може взагалі не обслуговувати табличні відповіді. Якщо ви створюєте клієнта, що використовує інформацію з таблиці та який повинен працювати з усіма типами ресурсів, включаючи розширення, ви повинні робити запити, які вказують кілька типів контенту у заголовку Accept. Наприклад:
Якщо клієнт вказує, що приймає тільки ...;as=Table;g=meta.k8s.io;v=v1, сервери, які не підтримують табличні відповіді, повернуть код помилки 406.
Якщо в цьому випадку бажано повернутися до повних обʼєктів, клієнти можуть додати ,application/json (або будь-яке інше підтримуване кодування) до свого заголовка Accept і обробляти таблиці або повні обʼєкти у відповіді:
Для отримання додаткової інформації про узгодження типу вмісту див. MDN Content Negotiation.
Отримання лише метаданих
Щоб отримати часткові метадані обʼєкта, ви можете запросити відповіді тільки з метаданими в заголовку Accept. API Kubernetes реалізує варіант узгодження типу вмісту HTTP. Як клієнт, ви можете надати заголовок Accept з бажаним типом медіа, а також параметрами, які вказують, що ви хочете отримати тільки метадані. Наприклад: Accept: application/json;as=PartialObjectMetadata;g=meta.k8s.io;v=v1 для JSON для конкретного обʼєкта та: Accept: application/json;as=PartialObjectMetadataList;g=meta.k8s.io;v=v1 для списку.
Примітка:
as=PartialObjectMetadata має використовуватися для запитів конкретних ресурсів, а as=PartialObjectMetadataList має використовуватися для списків.
Наприклад, щоб отримати перелік усіх подів у кластері, у всіх просторах імен, але повернути тільки метадані для кожного пода:
На запит про колекцію сервер API повертає PartialObjectMetadataList. На запит про окремий обʼєкт сервер API повертає представлення PartialObjectMetadata цього обʼєкта. В обох випадках обʼєкти, що повертаються, містять лише поле metadata. Поля spec та status опускаються.
Ця функція корисна для клієнтів, яким потрібно лише перевірити наявність обʼєкта або прочитати його метадані. Вона може значно зменшити розмір відповіді від сервера API.
Ви можете запросити отримання тільки метаданих для всіх доступних типів медіа (JSON, YAML, CBOR і Kubernetes Protobuf). Для Protobuf заголовок Accept буде таким:
application/vnd.kubernetes.protobuf;as=PartialObjectMetadata;g=meta.k8s.io;v=v1.
Сервер API Kubernetes підтримує часткове отримання даних для майже всіх своїх вбудованих API. Однак ви можете використовувати Kubernetes для доступу до інших серверів API через aggregation layer, і ці API можуть не підтримувати часткове отримання даних.
Якщо клієнт використовує заголовок Accept, щоб запросити відповідь тільки...;as=PartialObjectMetadata;g=meta.k8s.io;v=v1, і звертається до API, який не підтримує часткові відповіді, Kubernetes відповість помилкою HTTP 406.
Якщо в цьому випадку бажано повернутися до повних обʼєктів, клієнти можуть додати ,application/json (або будь-яке інше підтримуване кодування) до свого заголовка Accept і обробляти або PartialObjectMetadata, або повні обʼєкти у відповіді. Рекомендується вказати, що перевага надається частковій відповіді, використовуючи параметр q (quality). Наприклад:
Коли клієнт вперше надсилає запит на видалення ресурсу, .metadata.deletionTimestamp встановлюється на поточний час. Після встановлення .metadata.deletionTimestamp, зовнішні контролери, які працюють з завершувачами (finalizers), можуть почати виконувати свою очистку в будь-який час, у будь-якому порядку.
Порядок не встановлюється примусово між завершувачами, оскільки це може призвести до значного ризику застрягання .metadata.finalizers.
Поле .metadata.finalizers є спільним: будь-який áктор з дозволом може змінювати його порядок.
Якби список завершувачів оброблявся по порядку, це могло б призвести до ситуації, коли компонент, відповідальний за перший завершувач у списку, чекає на якийсь сигнал (значення поля, зовнішню систему або інше), що створюється компонентом, відповідальним за завершувач пізніше у списку, що призводить до застярягання всього списку.
Без примусового впорядкування завершувачі можуть вільно визначати свій власний порядок і не є вразливими до змін у списку.
Після видалення останнього завершувача ресурс фактично видаляється з etcd.
Примусове видалення
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.32 [alpha](стандартно вимкнено)
Увага:
Це може порушити робоче навантаження, повʼязане з примусовим видаленням ресурсу, якщо воно покладається на звичайний потік видалення, що може призвести до руйнування кластера.
Увімкнувши опцію видалення ignoreStoreReadErrorWithClusterBreakingPotential, користувач може виконати небезпечну операцію примусового видалення нерозшифрованого/пошкодженого ресурсу. Ця опція знаходиться за функціональною можоивістю ALPHA, і стандартно вона вимкнена. Щоб скористатися цією опцією, оператор кластера повинен увімкнути її за допомогою параметра командного рядка --feature-gates=AllowUnsafeMalformedObjectDeletion=true.
Примітка:
Користувач, який виконує операцію примусового видалення, повинен мати привілеї на виконання обох дієслів delete і unsafe-delete-ignore-read-errors на даному ресурсі.
Ресурс вважається пошкодженим, якщо він не може бути успішно вилучений зі сховища через а) помилку перетворення (наприклад, помилку розшифрування), або б) обʼєкт не вдалося декодувати. Сервер API спочатку намагається виконати звичайне видалення, і якщо це не вдається з помилкою corrupt resource, він запускає операцію примусового видалення. Операція примусового видалення є небезпечною, оскільки вона ігнорує обмеження фіналізатора і пропускає перевірку передумов.
Стандартне значення для цієї опції — false, це забезпечує зворотну сумісність. Для запиту delete з параметром ignoreStoreReadErrorWithClusterBreakingPotential, встановленим у значення true, поля dryRun, gracePeriodSeconds, orphanDependents, preconditions і propagationPolicy слід залишити не встановленими.
Примітка:
Якщо користувач надсилає запит delete зі значенням ignoreStoreReadErrorWithClusterBreakingPotential, встановленим у true для ресурсу, який інакше можна прочитати, сервер API перериває запит з помилкою.
API для одного ресурсу
API Kubernetes з дієсловами get, create, update, patch, delete та proxy підтримують тільки одиничні ресурси. Ці дієслова з підтримкою одиничного ресурсу не підтримують надсилання кількох ресурсів разом в упорядкованому або неупорядкованому списку чи транзакції.
Коли клієнти (включаючи kubectl) виконують дії з набором ресурсів, клієнт робить серію одиничних API запитів до ресурсу, а потім, за потреби, агрегує відповіді.
На відміну від цього, API Kubernetes з дієсловами list і watch дозволяють отримувати кілька ресурсів, а deletecollection дозволяє видаляти кілька ресурсів.
Валідація полів
Kubernetes завжди перевіряє тип полів. Наприклад, якщо поле в API визначене як число, ви не можете встановити це поле в текстове значення. Якщо поле визначене як масив рядків, ви можете надати тільки масив. Деякі поля можна пропустити, інші поля є обовʼязковими. Пропуск обовʼязкового поля у запиті API є помилкою.
Якщо ви зробите запит з додатковим полем, яке не розпізнається панеллю управління кластера, тоді поведінка сервера API є складнішою.
Типово, сервер API видаляє поля, які він не розпізнає, з вхідних даних, які він отримує (наприклад, тіло JSON запиту PUT).
Є дві ситуації, коли сервер API видаляє поля, які ви надали у HTTP-запиті.
Ці ситуації такі:
Поле не розпізнається, оскільки воно не входить до схеми OpenAPI ресурсу. (Одним винятком є CRDs, які явно обирають не обрізати невідомі поля через x-kubernetes-preserve-unknown-fields).
Поле дублюється в обʼєкті.
Валідація для нерозпізнаних або дубльованих полів
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.27 [stable](стандартно увімкнено)
З версії 1.25 і далі, нерозпізнані або дубльовані поля в обʼєкті виявляються через валідацію на сервері при використанні HTTP-дієслів, які можуть надсилати дані (POST, PUT та PATCH). Можливі рівні валідації: Ignore, Warn (стандартно) та Strict.
Ignore
Сервер API успішно обробляє запит так, ніби у ньому немає неправильних полів, відкидаючи всі невідомі та дубльовані поля та не повідомляючи про це.
Warn
(Стандартно) Сервер API успішно обробляє запит і надсилає клієнту попередження. Попередження надсилається за допомогою заголовка відповіді Warning:, додаючи один елемент попередження для кожного невідомого або дубльованого поля. Для отримання додаткової інформації про попередження та API Kubernetes дивіться статтю блогу Warning: Helpful Warnings Ahead.
Strict
Сервер API відхиляє запит з помилкою 400 Bad Request, коли виявляє будь-які невідомі або дубльовані поля. Повідомлення відповіді від сервера API вказує всі невідомі або дубльовані поля, які сервер API виявив.
Рівень валідації полів встановлюється параметром запиту fieldValidation.
Примітка:
Якщо ви надсилаєте запит, що вказує на нерозпізнане поле, яке також є недійсним з іншої причини (наприклад, запит надає рядкове значення, де API очікує цілого числа для відомого поля), тоді сервер API відповідає з помилкою 400 Bad Request, але не надасть жодної інформації про невідомі або дубльовані поля (тільки про ту фатальну помилку, яку він виявив першою).
У цьому випадку ви завжди отримаєте відповідь про помилку, незалежно від того, який рівень валідації полів ви запросили.
Інструменти, які надсилають запити на сервер (такі як kubectl), можуть встановлювати свої власні типові значення, які відрізняються від рівня валідації Warn, що стандартно використовується сервером API.
Інструмент kubectl використовує прапорець --validate для встановлення рівня валідації полів. Він приймає значення ignore, warn та strict, а також приймає значення true (еквівалентно strict) і false (еквівалентно ignore). Станадртне налаштування валідації для kubectl — це --validate=true, що означає сувору валідацію полів на стороні сервера.
Коли kubectl не може підключитися до сервера API з валідацією полів (сервери API до Kubernetes 1.27), він повернеться до використання валідації на стороні клієнта. Валідація на стороні клієнта буде повністю видалена у майбутній версії kubectl.
Примітка:
До Kubernetes 1.25 прапорець kubectl --validate використовувався для перемикання валідації на стороні клієнта увімквимкання/вимиканнямнено булевого прапореця.
Починаючи з версії 1.33, Kubernetes (включно з версією 1.36) пропонує спосіб визначення перевірки полів за допомогою декларативних теґів. Це корисно для тих, хто бере участь у розробці самого Kubernetes, а також для тих, хто пише власний API з використанням бібліотек Kubernetes. Щоб дізнатися більше, див. Декларативна перевірка API.
Dry-run
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.19 [stable](стандартно увімкнено)
При використанні HTTP-дієслів, які можуть змінювати ресурси (POST, PUT, PATCH і DELETE), ви можете надіслати свій запит у режимі dry run. Режим dry run допомагає оцінити запит через типові етапи обробки запиту (ланцюг допумків, валідацію, конфлікти злиття) аж до збереження обʼєктів у сховищі. Тіло відповіді на запит є максимально наближеним до відповіді у режимі non-dry-run. Kubernetes гарантує, що dry-run запити не будуть збережені в сховищі і не матимуть жодних інших побічних ефектів.
Виконання dry-run запиту
Dry-run активується встановленням параметра запиту dryRun. Цей параметр є рядковим, діє як перерахування, і єдині прийнятні значення:
[без значення]
Дозволити побічні ефекти. Ви запитуєте це за допомогою рядка запиту типу ?dryRun або ?dryRun&pretty=true. Відповідь є остаточним обʼєктом, який був би збережений, або помилкою, якщо запит не може бути виконаний.
All
Кожен етап виконується як зазвичай, за винятком кінцевого етапу збереження, де побічні ефекти запобігаються.
Коли ви встановлюєте ?dryRun=All, усі відповідні контролерів допуску виконуються, перевіряючи запит після зміни, злиття виконується для PATCH, поля заповнюються станадартними значеннями, і проводиться валідація схеми. Зміни не зберігаються в базовому сховищі, але остаточний обʼєкт, який був би збережений, все ще повертається користувачеві разом із звичайним кодом статусу.
Якщо версія запиту без dry-run викликала б контролер доступу, який має побічні ефекти, запит буде відхилений, щоб уникнути небажаних побічних ефектів. Усі вбудовані втулки контролю доступу підтримують dry-run. Додатково, admission webhooks можуть оголосити у своїй конфігураційній моделі, що вони не мають побічних ефектів, встановивши поле sideEffects на None.
Примітка:
Якщо вебхук дійсно має побічні ефекти, то поле sideEffects має бути встановлено на "NoneOnDryRun". Ця зміна є доречною за умови, що вебхук також модифіковано щоб він розумів поле DryRun у AdmissionReview і для запобігання побічним ефектам на будь-який запит, позначений як dry run.
Приклад dry-run запиту, який використовує ?dryRun=All:
POST /api/v1/namespaces/test/pods?dryRun=All
Content-Type: application/json
Accept: application/json
Відповідь буде виглядати так само, як для запиту без dry-run, але значення деяких згенерованих полів можуть відрізнятися.
Згенеровані значення
Деякі значення обʼєкта зазвичай генеруються перед його збереженням. Важливо не покладатися на значення цих полів, встановлених dry-run запитом, оскільки ці значення, ймовірно, будуть відрізнятися в dry-run режимі від реального запиту. Деякі з цих полів:
name: якщо встановлено generateName, name матиме унікальне випадкове імʼя
creationTimestamp / deletionTimestamp: фіксує час створення/видалення
Для ресурсу Service: Порти або IP-адреси, які kube-apiserver надає обʼєктам Service
Авторизація dry-run
Авторизація для dry-run і non-dry-run запитів ідентична. Таким чином, щоб виконати dry-run запит, ви повинні мати дозвіл на виконання non-dry-run запиту.
Наприклад, щоб виконати dry-run patch для Deployment, ви повинні мати дозвіл на виконання цього patch. Ось приклад правила для Kubernetes RBAC, що дозволяє робити patch для Deployment:
Kubernetes надає декілька способів оновлення наявних обʼєктів. Ви можете прочитати вибір механізму оновлення, щоб дізнатися, який підхід найкраще підходить для вашого випадку.
Ви можете перезаписати (оновити) наявний ресурс, наприклад, ConfigMap, використовуючи HTTP PUT. Для запиту PUT відповідальність за вказання resourceVersion (отриманого з обʼєкта, що оновлюється) лежить на клієнті. Kubernetes використовує інформацію resourceVersion, щоб сервер API міг виявити втрачені оновлення і відхилити запити від клієнта, який не актуальний для кластера. У разі зміни ресурсу (коли resourceVersion, надана клієнтом, застаріла), сервер API повертає відповідь з помилкою 409 Conflict.
Замість надсилання запиту PUT клієнт може надіслати інструкцію серверу API для накладання патчу до наявного ресурсу. Патч зазвичай підходить, якщо зміна, яку клієнт хоче внести, не залежить від наявних даних. Клієнти, яким потрібне ефективне виявлення втрачених оновлень, повинні розглянути можливість зробити свій запит умовним до існуючого resourceVersion (або HTTP PUT, або HTTP PATCH), а потім обробити будь-які повтори, які можуть знадобитися у разі конфлікту.
API Kubernetes підтримує чотири різні операції PATCH, які визначаються відповідним заголовком HTTP Content-Type:
application/apply-patch+yaml
Серверне застосування YAML (специфічне розширення Kubernetes, засноване на YAML). Всі документи JSON є дійсними в YAML, тому ви також можете надавати JSON, використовуючи цей тип медіа. Дивіться серіалізація для серверного застосування для отримання додаткової інформації. Для Kubernetes це операція створення, якщо обʼєкт не існує, або операція накладання патчу, якщо обʼєкт вже існує.
application/json-patch+json
JSON Patch, як визначено в RFC6902. JSON патч — це послідовність операцій, які виконуються з ресурсом; наприклад, {"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ]}. Для Kubernetes це операція накладання патчу. Патч з використанням application/json-patch+json може включати умови для перевірки консистентності, дозволяючи операції зазнати невдачі, якщо ці умови не виконуються (наприклад, щоб уникнути втрати оновлення).
application/merge-patch+json
JSON Merge Patch, як визначено в RFC7386. JSON Merge Patch фактично є частковим представленням ресурсу. Поданий JSON комбінується з поточним ресурсом для створення нового, а потім новий зберігається. Для Kubernetes це операція накладання патчу.
application/strategic-merge-patch+json
Strategic Merge Patch (специфічне розширення Kubernetes на основі JSON). Strategic Merge Patch — це власна реалізація JSON Merge Patch. Ви можете використовувати Strategic Merge Patch лише з вбудованими API або з агрегованими серверами API, які мають спеціальну підтримку для цього. Ви не можете використовувати application/strategic-merge-patch+json з будь-яким API, визначеним за допомогою CustomResourceDefinition.
Примітка:
Механізм серверного застосування Kubernetes замінив Strategic Merge Patch.
Функція Серверного застосування Kubernetes дозволяє панелі управління відстежувати керовані поля для новостворених обʼєктів. SСерверне застосування забезпечує чітку схему для управління конфліктами полів, пропонує серверні операції apply і update, та замінює функціональність на стороні клієнта kubectl apply.
Для серверного застосування Kubernetes обробляє запит як створення, якщо обʼєкт ще не існує, і як патч в іншому випадку. Для інших запитів, які використовують PATCH на рівні HTTP, логічна операція Kubernetes завжди є патч.
Операція оновлення (HTTP PUT) проста у виконанні та гнучка, але має недоліки:
Потрібно вирішувати конфлікти, де resourceVersion обʼєкта змінюється між моментом його читання клієнтом і спробою записувати назад. Kubernetes завжди виявляє конфлікт, але вам як авторові клієнта потрібно реалізувати повторні спроби.
Ви можете випадково видаляти поля, якщо декодуєте обʼєкт локально (наприклад, використовуючи client-go, ви можете отримати поля, які ваш клієнт не вміє обробляти, і потім видаляти їх під час оновлення).
Якщо на обʼєкт накладається багато конкурентних операцій (навіть на поле або набір полів, які ви не намагаєтеся редагувати), ви можете мати проблеми з надсиланням оновлення. Проблема гостріша для великих обʼєктів та для обʼєктів з багатьма полями.
HTTP PATCH з використанням JSON Patch
Оновлення патчем корисне через такі причини:
Оскільки ви надсилаєте лише різницю, ви маєте менше даних для надсилання у запиті PATCH.
Ви можете робити зміни, які ґрунтуються на наявних значеннях, наприклад, копіювати значення певного поля в анотацію.
На відміну від оновлення (HTTP PUT), ваші зміни можуть відбуватися відразу навіть при частих змінах не повʼязаних полів: зазвичай вам не потрібно повторювати спроби.
Вам все ще може знадобитися вказати resourceVersion (щоб відповідати існуючому обʼєкту), якщо ви хочете бути особливо обережними, щоб уникнути втрати оновлень.
Все ж це хороша практика написати деяку логіку повторної спроби у випадку помилок.
Ви можете використовувати тестові умови для обережного створення конкретних умов оновлення. Наприклад, ви можете збільшити лічильник без його читання, якщо існуюче значення відповідає вашим очікуванням. Ви можете це зробити без ризику втрати оновлення, навіть якщо обʼєкт змінився іншим чином з моменту вашого останнього запису до нього. (Якщо тестова умова не виконається, ви можете використовувати поточне значення і потім записати змінене число).
Проте:
Вам потрібна більша локальна (клієнтська) логіка для створення патчу; дуже корисно мати реалізацію бібліотеки JSON Patch або навіть створення JSON Patch специально для Kubernetes.
Як автору клієнтського програмного забезпечення, вам потрібно бути обережним при створенні патчу (тіла запиту HTTP), щоб не видаляти поля (порядок операцій має значення).
HTTP PATCH з використанням Server-Side Apply
Серверне застосування має чіткі переваги:
Одноразовий прохід веред-назад: зазвичай спочатку не потребує виконання GET запиту.
і ви все ще можете виявляти конфлікти для неочікуваних змін
у вас є можливість примусово перезаписати конфлікт, якщо це доцільно
Реалізація клієнта легка для створення.
Ви отримуєте атомарну операцію створення або оновлення без додаткових зусиль (аналогічно UPSERT у деяких діалектах SQL).
Проте:
Серверне застосування зовсім не працює для змін полів, які залежать від поточного значення обʼєкта.
Ви можете застосовувати оновлення лише до обʼєктів. Деякі ресурси в HTTP API Kubernetes не є обʼєктами (вони не мають поля .metadata), а серверне застосування стосується лише обʼєктів Kubernetes.
Версії ресурсів
Версії ресурсів — це рядки, які ідентифікують внутрішню версію обʼєкта на сервері. Версії ресурсів можуть використовуватися клієнтами для визначення змін в обʼєктах або для зазначення вимог до консистентності даних при отриманні, переліку та перегляді ресурсів. Версії ресурсів повинні бути передані на сервер без змін.
Рядки версій ресурсів можна впорядкувати як монотонно зростаючі цілі числа в межах одного типу ресурсів для всіх типів, що обслуговуються kube-apiserver. Сюди входять вбудовані типи API та типи, що підтримуються визначеннями власних ресурсів. Обидві версії ресурсів повинні бути з обʼєктів однієї групи API та одного типу ресурсів. Наприклад, можна порівняти версії ресурсів двох розгортань з групи API застосунків, але не можна порівняти версії ресурсів Pod і Deployment. За умови, що два об’єкти отримано з одного типу ресурсів API, їх можна порівняти, навіть якщо вони знаходяться в різних просторах імен.
Якщо ви використовуєте ресурси API, що обслуговуються сервером розширення API, клієнт повинен перевірити, чи рядок версії ресурсу розпізнається як десяткове число (більш детальна інформація про це наведена в наступних абзацах). Якщо будь-який із двох рядків версії ресурсу не розпізнається як десяткове число, ці два рядки можна перевірити на рівність, але не можна покладатися на порівняння для впорядкування.
Починаючи з Kubernetes 1.35, можливість впорядкування версій ресурсів для всіх типів Kubernetes включена до вимог Certified Kubernetes. Базові обʼєкти API та власні ресурси користувача повинні бути упорядкованими як монотонно зростаюче ціле число для будь-якої реалізації APIServer 1.35+, щоб пройти тести на відповідність.
Щоб порівняти два рядки версій ресурсів:
Переконайтеся, що вони відповідають таким вимогам:
Обидві версії ресурсів повинні бути одного типу, як описано вище
Обидві повинні починатися з цифри 1-9 і містити тільки цифри 0-9
Версії ресурсів порівнюються як довільні десяткові цілі числа з бітовим розміром
Щоб порівняти їх, не покладаючись на фіксований бітовий розмір, можна порівняти їх як рядки. Бітовий розмір не повинен вважатися фіксованою величиною.
Замість цього можна використовувати лексикографічне порівняння, як показано тут:
Якщо вони не мають однакової довжини, більшою вважається довша (наприклад, "123" > "23")
Якщо вони мають однакову довжину, більшою вважається лексикографічно більша (наприклад, "234" > "123")
Деякі приклади порівнянь версій ресурсів, які повинні працювати:
Для виконання цього порівняння доступний допоміжний метод для client-go.
Поля resourceVersion в метаданих
Клієнти знаходять версії ресурсів в ресурсах, включаючи ресурси з потоку відповіді під час спостереження (watch) або при отримані переліку (list) ресурсів.
v1.meta/ObjectMeta — metadata.resourceVersion екземпляра ресурсу ідентифікує версію ресурсу, на якій останній раз він був змінений.
v1.meta/ListMeta — metadata.resourceVersion колекції ресурсів (відповідь на перелік (list)) ідентифікує версію ресурсу, на якій була створена колекція.
Параметри resourceVersion у рядках запитів
Операції отримання (get), переліку (list) та спостереження (watch) підтримують параметр resourceVersion. Починаючи з версії v1.19, сервери API Kubernetes також підтримують параметр resourceVersionMatch у запитах list.
Сервер API інтерпретує параметр resourceVersion по-різному, залежно від операції, яку ви запитуєте, та від значення resourceVersion. Якщо ви встановлюєте resourceVersionMatch, то це також впливає на спосіб порівняння.
Семантика для операцій get та list
Для операцій get та list, семантика параметра resourceVersion така:
get:
resourceVersion невстановлено
resourceVersion="0"
resourceVersion="{значення, відмінне від 0}"
Найновіший
Будь-яке
Не старше
list:
Починаючи з версії v1.19, сервери API Kubernetes підтримують параметр resourceVersionMatch у запитах list. Якщо ви встановлюєте як resourceVersion, так і resourceVersionMatch, то параметр resourceVersionMatch визначає, як сервер API інтерпретує resourceVersion.
Вам завжди слід встановлювати параметр resourceVersionMatch, коли ви встановлюєте resourceVersion у запиті list. Однак будьте готові обробляти випадок, де сервер API, що відповідає, не підтримує resourceVersionMatch та ігнорує його.
Крім випадків сильних вимог до консистентності, використання resourceVersionMatch=NotOlderThan та відомої resourceVersion є бажаним, оскільки це може забезпечити кращу продуктивність та масштабованість вашого кластеру, ніж залишати resourceVersion і resourceVersionMatch невстановленими, що вимагає отримання кворуму для обслуговування.
Встановлення параметра resourceVersionMatch без встановлення resourceVersion є недійсним.
Ця таблиця пояснює поведінку запитів list з різними комбінаціями resourceVersion та resourceVersionMatch:
Параметри resourceVersionMatch та розбиття на сторінки для list
Параметр resourceVersionMatch
Параметри розбиття на сторінки
resourceVersion не встановлено
resourceVersion="0"
resourceVersion="{значення, відмінне від 0}"
не встановлено
limit не встановлено
Most Recent
Any
Not older than
не встановлено
limit=<n>, continue не встановлено
Most Recent
Any
Exact
не встановлено
limit=<n>, continue=<token>
Continuation
Continuation
Invalid, HTTP 400 Bad Request
resourceVersionMatch=Exact
limit не встановлено
Invalid
Invalid
Exact
resourceVersionMatch=Exact
limit=<n>, continue не встановлено
Invalid
Invalid
Exact
resourceVersionMatch=NotOlderThan
limit не встановлено
Invalid
Any
Not older than
resourceVersionMatch=NotOlderThan
limit=<n>, continue не встановлено
Invalid
Any
Not older than
Примітка:
Якщо сервер API вашого кластера не враховує параметр resourceVersionMatch, поведінка буде такою самою, як і якщо ви його не встановили.
Сенс семантики операцій get та list такий:
Any
Повернути дані на будь-якій версії ресурсу. Вибирається найновіша доступна версія ресурсу, але не потрібна сильна консистентність; дані на будь-якій версії ресурсу можуть бути обслуговані. Є можливість отримати дані на значно старішій версії ресурсу, яку клієнт раніше спостерігав, особливо в конфігураціях високої доступності через розділи або застарілі кеші. Клієнти, які не можуть терпіти це, не повинні використовувати цю семантику. Завжди обслуговується з кешу спостереження, покращуючи продуктивність та зменшуючи навантаження на etcd.
Most recent
Повернути дані на найновішій версії ресурсу. Повернені дані повинні бути консистентними (детально: обслуговуються з etcd за допомогою кворумного читання). Для etcd версій v3.4.31+ та v3.5.13+ Kubernetes 1.36 обслуговує "найсвіжіші" читання з watch cache: внутрішнього, вбудованого в памʼять сховища всередині API сервера, що кешує та відображає стан даних, збережених у etcd. Kubernetes запитує сповіщення про прогрес, щоб підтримувати консистентність кешу з шаром збереження даних (persistence layer) у etcd. Версії Kubernetes з v1.28 до v1.30 також підтримували цю функцію, але як Alpha, вона не рекомендувалася для використання в операційному середовищі і не була стандартно увімкненою до випуску v1.31.
NotOlderThan
Повернути дані, які є принаймні так новими, як наданий resourceVersion. Вибирається найновіша доступна інформація, але будь-яка інформація, яка не старше наданої resourceVersion, може бути обслугована. Для запитів list до серверів, які підтримують параметр resourceVersionMatch, це гарантує, що .metadata.resourceVersion колекції не старше вказаної resourceVersion, але не надає гарантії щодо .metadata.resourceVersion будь-яких елементів у цій колекції. Завжди обслуговується з кешу спостереження, покращуючи продуктивність та зменшуючи навантаження на etcd.
Exact
Повернути дані на точній версії ресурсу, яка надана. Якщо надана resourceVersion недоступна, сервер відповідає HTTP 410 Gone. Для запитів list до серверів, які підтримують параметр resourceVersionMatch, це гарантує, що .metadata.resourceVersion колекції співпадає з resourceVersion, яку ви запросили у рядку запиту. Ця гарантія не поширюється на .metadata.resourceVersion будь-яких елементів у цій колекції.
Зі стандартно увімкненою функціональною можливістю ListFromCacheSnapshot сервер API намагатиметься надіслати відповідь зі знімка кешу, якщо він доступний з версією resourceVersion, старішою за запитувану. Це покращує продуктивність і зменшує навантаження на etcd. Сервер API починає без знімків, створює новий знімок на кожну подію спостереження і зберігає їх, поки не виявить, що etcd був стиснутий, або якщо кеш заповнений подіями старшими за 75 секунд. Якщо надана resourceVersion недоступна, сервер повернеться до etcd.
Continuation
Повертає наступну сторінку даних для запиту посторінкового списку, забезпечуючи узгодженість з точним значенням resourceVersion, встановленим початковим запитом у послідовності. Відповідь на list запити з обмеженням включає continue token, який кодує resourceVersion і останню спостережувану позицію, з якої можна продовжити список. Якщо resourceVersion у наданому continue token недоступний, сервер відповідає HTTP 410 Gone. Зі стандартно увімкненою функціональною можливістю ListFromCacheSnapshot сервер API намагатиметься надіслати відповідь зі знімка кешу, якщо він доступний з версією resourceVersion, старішою за запитувану. Це покращує продуктивність і зменшує навантаження на etcd. Сервер API починає без знімків, створює новий знімок на кожну подію спостереження і зберігає їх, поки не виявить, що etcd був стиснутий, або якщо кеш заповнений подіями старшими за 75 секунд. Якщо надана resourceVersion недоступна, сервер повернеться до etcd.
Примітка:
Коли ви перелічцєте (list) ресурси та отримуєте відповідь у вигляді колекції, відповідь містить метадані списку колекції, а також метадані обʼєктів для кожного елемента у цій колекції. Для окремих обʼєктів, знайдених у відповіді колекції, .metadata.resourceVersion відстежує, коли цей обʼєкт був останній раз оновлений, а не те, наскільки актуальний обʼєкт, коли він обслуговується.
При використанні resourceVersionMatch=Не старше та встановленому ліміті клієнти мають обробляти відповіді HTTP 410 Gone. Наприклад, клієнт може повторно спробувати з новішою resourceVersion або використовувати resourceVersion="".
При використанні resourceVersionMatch=Точно та не встановленому ліміті, клієнти мають перевірити, що .metadata.resourceVersion колекції співпадає з запитаною resourceVersion, і обробити випадок, коли це не так. Наприклад, клієнт може використовувати запит з встановленим лімітом.
Семантика для операції watch
Для операцій watch, семантика параметра resourceVersion така:
watch:
resourceVersion для watch
resourceVersion невстановлено
resourceVersion="0"
resourceVersion="{значення, відмінне від 0}"
Отримати стан і почати з найновішого
Отримати стан і почати з будь-якого
Почати точно з
Сенс цієї семантики для watch такий:
Отримати стан і почати з будь-якого
Почати watch на будь-якій версії ресурсу; найбільш нова доступна версія є переважною, але не обовʼязковою. Дозволено будь-яку початкову версію ресурсу. Можливо, що watch почнеться на набагато старішій версії ресурсу, яку клієнт раніше спостерігав, особливо в конфігураціях високої доступності через розділи або застарілі кеші. Клієнти, які не можуть терпіти таке відмотування назад, не повинні починати watch з цією семантикою. Для встановлення початкового стану, watch починається з синтетичних подій "Added" для всіх екземплярів ресурсів, які існують на початковій версії ресурсу. Усі наступні події watch стосуються всіх змін, що сталися після початкової версії ресурсу, з якої почався watch.
Увага:
Ініціалізовані таким чином watch можуть повертати довільно застарілі дані. Будь ласка, перевірте цю семантику перед використанням і надайте перевагу іншій семантиці, де це можливо.
Отримати стан і почати з найновішого
Почати watch на найбільш новій версії ресурсу, яка повинна бути консистентною (детально: обслуговується з etcd за допомогою отримання кворуму). Для встановлення початкового стану watch починається з синтетичних подій "Added" для всіх екземплярів ресурсів, які існують на початковій версії ресурсу. Усі наступні події watch стосуються всіх змін, що сталися після початкової версії ресурсу, з якої почався watch.
Почати точно з
Почати watch на точній версії ресурсу. Події watch стосуються всіх змін після наданої версії ресурсу. На відміну від "Отримати стан і почати з найновішого" та "Отримати стан і почати з будь-якого", watch не починається з синтетичних подій "Added" для наданої версії ресурсу. Вважається, що клієнт вже має початковий стан на стартовій версії ресурсу, оскільки клієнт надав цю версію ресурсу.
Відповіді "410 Gone"
Сервери не зобовʼязані зберігати всі старі версії ресурсів і можуть повернути код HTTP 410 (Gone), якщо клієнт запитує resourceVersion, який старіший, ніж версія, збережена сервером. Клієнти повинні бути готові обробляти відповіді 410 (Gone). Дивіться розділ Ефективне виявлення змін для отримання додаткової інформації про те, як обробляти відповіді 410 (Gone) при спостереженні за ресурсами.
Якщо ви запитуєте resourceVersion, який знаходиться за межами допустимого діапазону, то, залежно від того, чи обслуговується запит з кешу чи ні, API-сервер може відповісти HTTP-відповіддю 410 Gone.
Недоступні версії ресурсів
Сервери не зобовʼязані обслуговувати нерозпізнані версії ресурсів. Якщо ви запитуєте list або get для версії ресурсу, яку API-сервер не розпізнає, то API-сервер може або:
почекати трохи, поки версія ресурсу не стане доступною, а потім завершити з тайм-аутом і відповіддю 504 (Gateway Timeout), якщо надана версія ресурсу не стане доступною в розумний термін;
відповісти заголовком Retry-After, вказуючи, через скільки секунд клієнт повинен повторити запит.
Якщо ви запитуєте версію ресурсу, яку API-сервер не розпізнає, kube-apiserver додатково ідентифікує свої відповіді на помилки повідомленням Too large resource version.
Якщо ви робите запит watch для нерозпізнаної версії ресурсу, API-сервер може чекати невизначений час (до тайм-ауту запиту), поки версія ресурсу не стане доступною.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.22 [stable](стандартно увімкнено)
Kubernetes підтримує співпрацю кількох аплікаторів для керування полями одного обʼєкта.
Server-Side Apply (Серверне застосування) надає необовʼязковий механізм для контролера вашого кластера, щоб відстежувати зміни в полях обʼєкта. На рівні конкретного ресурсу, Server-Side Apply записує та відстежує інформацію про контроль над полями цього обʼєкта.
Server-Side Apply допомагає користувачам та контролерам керувати своїми ресурсами за допомогою декларативної конфігурації. Клієнти можуть створювати та змінювати обʼєкти декларативно, подаючи їх повністю визначений намір.
Повністю визначений намір — це частковий обʼєкт, який містить лише ті поля та значення, щодо яких у користувача є чітке уявлення. Цей намір або створює новий обʼєкт (використовуючи стандартні значення для невизначених полів), або обʼєднується з наявним обʼєктом через API сервер.
Порівняння з Client-Side Apply пояснює, як Server-Side Apply відрізняється від початкової реалізації kubectl apply на стороні клієнта.
Управління полями
Kubernetes API сервер відстежує керовані поля для всіх новостворених обʼєктів.
При спробі застосувати обʼєкт, поля, які мають інше значення і належать іншому менеджеру, спричинять конфлікт. Це зроблено для того, щоб сигналізувати, що операція може скасувати зміни іншого спільника. Записи до обʼєктів з керованими полями можуть бути примусовими, в такому випадку значення будь-якого конфліктного поля буде перезаписане, а право власності передане.
Кожного разу, коли значення поля змінюється, право власності переходить від поточного менеджера до менеджера, що здійснює зміну.
Для того, щоб користувач міг керувати полем в контексті Server-Side Apply, він повинен покладатися на те, що значення поля не зміниться. Користувач, який останнім висловив свою думку щодо значення поля, буде записаний як поточний менеджер поля. Це можна зробити, змінивши дані менеджера поля явним чином за допомогою HTTP POST (створення), PUT (оновлення), або не-застосувального PATCH (патч). Ви також можете оголосити та записати менеджера поля, включивши значення для цього поля в операції Server-Side Apply.
Запит на патч в контексті Server-Side Apply вимагає від клієнта вказати свою ідентичність як менеджера поля. При використанні Server-Side Apply спроба змінити поле, що контролюється іншим менеджером, призведе до відхилення запиту, якщо клієнт не виконає примусове перевизначення. Для деталей щодо примусових перевизначень дивіться Конфлікти.
Коли два або більше аплікатора встановлюють поле на однакове значення, вони спільно володіють цим полем. Будь-яка спроба змінити значення спільного поля будь-ким з аплікаторів призведе до конфлікту. Спільні власники поля можуть відмовитися від права власності на поле, здійснивши запит на патч в контексті Server-Side Apply, який не включає це поле.
Деталі управління полями зберігаються в полі managedFields, яке є частиною metadata обʼєкта.
Якщо ви видалите поле з маніфесту і застосуєте цей маніфест, Server-Side Apply перевірить, чи є інші менеджери полів, які також володіють цим полем. Якщо поле не належить жодному іншому менеджеру полів, воно буде або видалене з поточного обʼєкта, або скинуте до стандартного значення, якщо таке є. Те саме правило застосовується до елементів асоціативного списку або map.
У порівнянні з (застарілою) kubectl.kubernetes.io/last-applied-configuration анотацією, яка управляється kubectl, Server-Side Apply використовує більш декларативний підхід, який відстежує управління полями користувача (або клієнта), а не останній застосований стан користувача. Побічним ефектом використання Server-Side Apply є також доступність інформації про те, який менеджер поля управляє кожним полем в обʼєкті.
Приклад
Простий приклад обʼєкта, створеного за допомогою Server-Side Apply, може виглядати так:
Примітка:
kubectl get типово пропускає керовані поля. Додайте --show-managed-fields щоб показати managedFields у виводі в формаі json або yaml.
---apiVersion:v1kind:ConfigMapmetadata:name:test-cmnamespace:defaultlabels:test-label:testmanagedFields:- manager:kubectloperation: Apply # зверніть увагу на великі літери:"Apply"(або "Update")apiVersion:v1time:"2010-10-10T0:00:00Z"fieldsType:FieldsV1fieldsV1:f:metadata:f:labels:f:test-label:{}f:data:f:key:{}data:key:some value
Цей приклад обʼєкта ConfigMap містить один запис про управління полями в .metadata.managedFields. Запис управління полями складається з основної інформації про саму сутність, що виконує управління, а також з деталей про поля, якими управляють, та відповідну операцію (Apply або Update). Якщо запит, що останнім змінив це поле, був патчем Server-Side Apply, тоді значення operation буде Apply; в іншому випадку, це буде Update.
Є ще один можливий результат. Клієнт може подати недійсний запит. Якщо повністю зазначений намір не створює дійсний обʼєкт, запит не вдасться виконати.
Однак, можливо змінити .metadata.managedFields за допомогою операції оновлення або патчу, які не використовують Server-Side Apply. Це наполегливо не рекомендується, але може бути доцільно спробувати, якщо, наприклад, .metadata.managedFields потрапить у неконсистентний стан (що не повинно відбуватися при нормальній роботі).
Поле .metadata.managedFields керується API сервером. Ви повинні уникати його ручного оновлення.
Конфлікти
Конфлікт — це спеціальна помилка статусу, яка виникає, коли операція Apply намагається змінити поле, на яке інший менеджер також заявляє права на керування. Це запобігає ненавмисному перезапису значення, встановленого іншим користувачем. У разі конфлікту аплікатор має 3 варіанти для вирішення конфліктів:
Перезаписати значення, стати єдиним менеджером: Якщо перезапис значення був навмисним (або якщо аплікатор є автоматичним процесом, таким як контролер), аплікатор повинен встановити параметр запиту force в true (для kubectl apply використовується параметр командного рядка --force-conflicts) і повторити запит. Це змусить операцію завершитись успішно, змінить значення поля та видалить це поле з усіх інших записів менеджерів у managedFields.
Не перезаписувати значення, відмовитися від права управління: Якщо аплікатор більше не піклується про значення поля, він може видалити його зі своєї локальної моделі ресурсу і зробити новий запит, виключивши це конкретне поле. Це залишить значення незмінним і видалить поле із запису аплікатора у managedFields.
Не перезаписувати значення, стати спільним менеджером: Якщо аплікатор все ще піклується про значення поля, але не хоче його перезаписувати, він може змінити значення цього поля у своїй локальній моделі ресурсу, щоб відповідати значенню обʼєкта на сервері, а потім зробити новий запит, враховуючи це локальне оновлення. Це залишить значення незмінним і зробить це поле керованим спільно аплікатором та всіма іншими менеджерами, які вже заявили про керування ним.
Менеджери полів
Менеджери визначають окремі робочі процеси, які змінюють обʼєкт (особливо корисно при конфліктах!), і можуть бути вказані через параметр запиту fieldManager як частина запиту на зміни. Коли ви застосовуєте зміни до ресурсу, параметр fieldManager є обовʼязковим. Для інших оновлень сервер API визначає ідентифікатор менеджера поля з заголовка HTTP "User-Agent:" (якщо він присутній).
Коли ви використовуєте інструмент kubectl для виконання операції Server-Side Apply, kubectl типово встановлює ідентифікатор менеджера в "kubectl".
Серіалізація
На рівні протоколу Kubernetes представляє тіла повідомлень Server-Side Apply у форматі YAML, з медіа типом application/apply-patch+yaml.
Примітка:
Незалежно від того, чи ви подаєте дані у форматі JSON чи YAML, використовуйте application/apply-patch+yaml як значення заголовка Content-Type.
Усі документи JSON є дійсними документами YAML. Однак, у Kubernetes є помилка, яка полягає в тому, що він використовує парсер YAML, який не повністю реалізує специфікацію YAML. Деякі JSON екранування можуть не бути розпізнаними.
Серіалізація є такою ж, як для обʼєктів Kubernetes, за винятком того, що клієнти не зобовʼязані надсилати повний обʼєкт.
Ось приклад тіла повідомлення Server-Side Apply (повністю специфікований намір):
{"apiVersion":"v1","kind":"ConfigMap"}
(це зробить оновлення без змін, за умови, що це було надіслано як тіло patch запиту до дійсного ресурсу v1/configmaps, з відповідним заголовком запиту Content-Type).
Операції з області управління полями
Операції API Kubernetes, де враховується управління полями, включають:
Server-Side Apply (HTTP PATCH, з типом контенту application/apply-patch+yaml)
Заміна наявного обʼєкта (update для Kubernetes; PUT на рівні HTTP)
Обидві операції оновлюють .metadata.managedFields, але поводяться трохи по-різному.
Якщо не вказано примусове перезаписування, операція apply, що зустрічає конфлікти на рівні полів, завжди зазнає невдачі; у противагу, якщо зміну здійснено за допомогою update, що впливає на кероване поле, конфлікт ніколи не призводить до невдачі операції.
Усі запити Server-Side Apply patch повинні ідентифікувати себе, надаючи параметр запиту fieldManager, тоді як цей параметр запиту є необовʼязковим для операцій update. Нарешті, при використанні операції Apply ви не можете визначати managedFields у тілі запиту, який ви надсилаєте.
Приклад обʼєкта з декількома менеджерами може виглядати так:
---apiVersion:v1kind:ConfigMapmetadata:name:test-cmnamespace:defaultlabels:test-label:testmanagedFields:- manager:kubectloperation:Applytime:'2019-03-30T15:00:00.000Z'apiVersion:v1fieldsType:FieldsV1fieldsV1:f:metadata:f:labels:f:test-label:{}- manager:kube-controller-manageroperation:UpdateapiVersion:v1time:'2019-03-30T16:00:00.000Z'fieldsType:FieldsV1fieldsV1:f:data:f:key:{}data:key:new value
У цьому прикладі друга операція була виконана як update менеджером з назвою kube-controller-manager. Запит на оновлення був успішним і змінив значення в полі даних, що призвело до зміни управління цим полем на kube-controller-manager.
Якби була спроба застосувати це оновлення за допомогою Server-Side Apply, запит зазнав би невдачі через конфлікт управління.
Стратегія злиття
Стратегія злиття, реалізована в Server-Side Apply, забезпечує більш стабільний життєвий цикл обʼєкта. Server-Side Apply намагається обʼєднати поля на основі того, хто ними керує, замість того, щоб замінювати їх значення. Таким чином, кілька акторів можуть оновлювати один і той самий обʼєкт без несподіваних перешкод.
Коли користувач надсилає обʼєкт із повністю специфікованим наміром на точку доступу Server-Side Apply, сервер зʼєднує його з поточним обʼєктом, надаючи перевагу значенню з тіла запиту, якщо воно вказане в обох місцях. Якщо набір елементів, присутніх у застосованій конфігурації, не є надмножиною елементів, застосованих тим самим користувачем минулого разу, кожен відсутній елемент, яким не керують інші аплікатори, видаляється. Для отримання додаткової інформації про те, як схема обʼєкта використовується для прийняття рішень під час злиття, дивіться sigs.k8s.io/structured-merge-diff.
API Kubernetes (та код Go, який реалізує це API для Kubernetes) дозволяє визначати маркери стратегії злиття. Ці маркери описують підтримувану стратегію злиття для полів в обʼєктах Kubernetes. Для CustomResourceDefinition, ви можете встановити ці маркери під час визначення власного ресурсу.
Маркер Golang
Розширення OpenAPI
Можливі значення
Опис
//+listType
x-kubernetes-list-type
atomic/set/map
Застосовується до списків. set застосовується до списків, які включають лише скалярні елементи. Ці елементи повинні бути унікальними. map застосовується до списків вкладених типів. Значення ключів (див. listMapKey) повинні бути унікальними в списку. atomic може застосовуватися до будь-якого списку. Якщо налаштовано як atomic, весь список замінюється під час злиття. У будь-який момент часу список належить одному менеджеру. Якщо set або map, різні менеджери можуть окремо керувати елементами.
//+listMapKey
x-kubernetes-list-map-keys
Список імен полів, наприклад, ["port", "protocol"]
Застосовується лише при +listType=map. Список імен полів, значення яких унікально ідентифікують елементи у списку. Хоча ключів може бути багато, listMapKey є одниною, тому що ключі потрібно вказувати індивідуально в типі Go. Поля ключів повинні бути скалярами.
//+mapType
x-kubernetes-map-type
atomic/granular
Застосовується до map. atomic означає, що map можна замінити повністю тільки одним менеджером. granular означає, що map підтримує окремих менеджерів, які оновлюють окремі поля.
//+structType
x-kubernetes-map-type
atomic/granular
Застосовується до структур; інакше те ж використання та анотація OpenAPI, як //+mapType.
Якщо listType відсутній, сервер API інтерпретує patchStrategy=merge як listType=map і відповідний маркер patchMergeKey як listMapKey.
Тип списку atomic є рекурсивним.
(У коді Go для Kubernetes, ці маркери вказуються як коментарі, і авторам коду не потрібно повторювати їх як теґи полів).
Власні ресурси та Серверне застосування
Стандартно, Server-Side Apply обробляє власні ресурси користувачів як неструктуровані дані. Усі ключі розглядаються як поля структури, а всі списки вважаються атомарними.
Якщо у визначенні CustomResourceDefinition міститься схема, яка містить анотації, визначені у попередньому розділі Стратегія злиття, ці анотації будуть використовуватись під час злиття обʼєктів цього типу.
Сумісність при зміні топології
У рідкісних випадках автор CustomResourceDefinition (CRD) або вбудованого ресурсу може захотіти змінити специфічну топологію поля у своєму ресурсі, не збільшуючи його версію API. Зміна топології типів шляхом оновлення кластера або CRD має різні наслідки при оновленні наявних обʼєктів. Є дві категорії змін: коли поле переходить від map/set/granular до atomic і навпаки.
Коли listType, mapType або structType змінюються з map/set/granular на atomic, весь список, map або структура наявних обʼєктів будуть в підсумку належати акторам, які володіли елементом цих типів. Це означає, що будь-яка подальша зміна цих обʼєктів призведе до конфлікту.
Коли listType, mapType або structType змінюються з atomic на map/set/granular, сервер API не може визначити нову власність цих полів. Через це конфлікти не виникатимуть під час оновлення обʼєктів із цими полями. Тому не рекомендується змінювати тип із atomic на map/set/granular.
Візьмемо, наприклад, власний ресурс користувача ресурс:
До того, як spec.data зміниться з atomic на granular, manager-one володіє полем spec.data і всіма полями в ньому (key1 та key2). Коли CRD змінюється, щоб зробити spec.datagranular, manager-one продовжує володіти полем верхнього рівня spec.data (що означає, що жоден інший менеджер не може видалити map data без конфлікту), але він більше не володіє key1 та key2, тому інший менеджер може змінити або видалити ці поля без конфлікту.
Використання Server-Side Apply в контролер
Як розробник контролера, ви можете використовувати Server-Side Apply як спосіб спростити логіку оновлення вашого контролера. Основні відмінності від кead-modify-write та/або patch наступні:
застосований обʼєкт повинен містити всі поля, які цікавлять контролер.
немає способу видалити поля, які не були застосовані контролером раніше (контролер все ще може надіслати patch або update для цих випадків використання).
обʼєкт не обовʼязково має бути прочитаним перед тим; resourceVersion не потрібно вказувати.
Для контролерів рекомендується завжди застосовувати конфлікти на обʼєктах, якими вони володіють і керують, оскільки вони можуть не мати можливості розвʼязати або подіяти на ці конфлікти.
Передача власності
Окрім контролю конкурентності, забезпеченого вирішенням конфліктів, Server-Side Apply надає можливості для виконання координованих переходів власності полів від користувачів до контролерів.
Це найкраще пояснюється на прикладі. Розглянемо, як безпечно перевести власність поля replicas від користувача до контролера, дозволяючи автоматичне горизонтальне масштабування для Deployment, використовуючи ресурс HorizontalPodAutoscaler та його супровідний контролер.
Скажімо, користувач визначив Deployment з replicas, встановленим на бажане значення:
Тепер користувач хоче видалити replicas з конфігурації, щоб вони випадково не конфліктували з HorizontalPodAutoscaler (HPA) та його контролером. Однак виникають перегони: може пройти деякий час, перш ніж HPA вирішить змінити .spec.replicas; якщо користувач видаляє .spec.replicas перед тим, як HPA запише в поле і стане його власником, тоді API-сервер встановить .spec.replicas на 1 (стандартна кількість реплік для Deployment). Це не те, що хоче користувач, ще й тимчасово — це може погіршити робоче навантаження.
Є два рішення:
(базовий) Залиште replicas в конфігурації; коли HPA нарешті запише в це поле, система сповістить користувачу про конфлікт при спробі зробити це. На цьому етапі безпечно видалити його з конфігурації.
(більш розширений) Однак, якщо користувач не хоче чекати, наприклад, через те що вони хочуть, щоб кластер був зрозумілим для їх колег, тоді вони можуть виконати наступні кроки, щоб зробити видалення replicas з їх конфігурації безпечним:
Спочатку користувач визначає новий маніфест, що містить лише поле replicas:
# Збережіть цей файл як 'nginx-deployment-replicas-only.yaml'.apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentspec:replicas:3
Примітка:
Файл YAML для SSA у цьому випадку містить лише поля, які ви хочете змінити. Вам не слід надавати повністю сумісний з Deployment маніфест, якщо ви хочете змінити лише поле spec.replicas, використовуючи SSA.
Користувач застосовує цей маніфест, використовуючи приватне імʼя менеджера полів. У цьому прикладі користувач вибрав handover-to-hpa:
Якщо застосування призводить до конфлікту з контролером HPA, тоді нічого не робіть. Конфлікт вказує на те, що контролер вже вимагає поле на цьому етапі.
На цьому етапі користувач може видалити поле replicas з маніфесту:
Зауважте, що кожного разу, коли контролер HPA встановлює значення поля replicas на нове значення, тимчасовий менеджер полів більше не володіє жодними полями й буде автоматично видалений. Додаткового прибирання не потрібно.
Передача власності між менеджерами
Менеджери полів можуть передавати власність поля між собою, встановлюючи значення поля в тому самому значенні в обох їх застосованих конфігураціях, що призводить до того, що вони спільно володіють полем. Після цього менеджери можуть відмовитися від володіння полям та завершити передачу іншому менеджеру поля, видаливши поле з їх застосованої конфігурації.
Порівняння з Client-Side Apply
Server-Side Apply призначений як для заміни початкової реалізації команди kubectl apply на стороні клієнта, так і для забезпечення простого та ефективного механізму для контролерів, щоб впроваджувати свої зміни.
Порівняно з анотацією last-applied, якою керує kubectl, Server-Side Apply використовує більш декларативний підхід, що відстежує управління полями обʼєкта, а не останній стан, застосований користувачем. Це означає, що як побічний ефект використання Server-Side Apply, стає доступною інформація про те, який менеджер полів керує кожним полем в обʼєкті.
Наслідком виявлення та вирішення конфліктів, реалізованих у Server-Side Apply, є те, що аплікатор завжди має актуальні значення полів у своєму локальному стані. Якщо ні, то він отримає конфлікт під час наступного застосування. Будь-який з трьох варіантів розвʼязання конфліктів призводить до того, що застосована конфігурація стає актуальною підмножиною полів обʼєкта на сервері.
Це відрізняється від Client-Side Apply, де застарілі значення, які були перезаписані іншими користувачами, залишаються в локальній конфігурації аплікатора. Ці значення стають точними лише тоді, коли користувач оновлює конкретне поле, якщо взагалі оновлює, і аплікатор не має способу дізнатися, чи наступне застосування перезапише зміни інших користувачів.
Ще однією відмінністю є те, що аплікатор, використовуючи Client-Side Apply, не може змінити версію API, яку він використовує, тоді як Server-Side Apply підтримує цей випадок використання.
Міграція між client-side і server-side apply
Перехід з client-side apply на server-side apply
Користувачі client-side apply, які керують ресурсом за допомогою kubectl apply, можуть почати використовувати server-side apply з наступним прапорцем.
kubectl apply --server-side [--dry-run=server]
Стандартно, управління полями обʼєкта переходить з client-side apply на kubectl server-side apply без виникнення конфліктів.
Увага:
Тримайте анотацію last-applied-configuration в актуальному стані. Анотація визначає поля, якими керує client-side apply. Будь-які поля, якими не керує client-side apply, викликають конфлікти.
Наприклад, якщо ви використовували kubectl scale для оновлення поля replicas після client-side apply, тоді це поле не належить client-side apply і створює конфлікти при kubectl apply --server-side.
Ця поведінка стосується server-side apply з менеджером полів kubectl. Як виняток, ви можете відмовитися від цієї поведінки, вказавши іншого, не стандартного менеджера полів, як показано в наступному прикладі. Стандартним менеджером полів для kubectl server-side apply є kubectl.
Повернення з server-side apply на client-side apply
Якщо ви керуєте ресурсом за допомогою kubectl apply --server-side, ви можете перейти на client-side apply безпосередньо за допомогою kubectl apply.
Повернення працює тому, що kubectl Server-Side Apply тримає анотацію last-applied-configuration в актуальному стані, якщо ви використовуєте kubectl apply.
Ця поведінка стосується Server-Side Apply з менеджером полів kubectl. Як виняток, ви можете відмовитися від цієї поведінки, вказавши іншого, не стандартного менеджера полів, як показано в наступному прикладі. Стандартним менеджером полів для kubectl server-side apply є kubectl.
Дієслово PATCH (для обʼєкту, який підтримує Server-Side Apply) може приймати неофіційний тип контенту application/apply-patch+yaml. Користувачі Server-Side Apply можуть надіслати частково специфіковані обʼєкти у вигляді YAML як тіло запиту PATCH до URI ресурсу. При застосуванні конфігурації слід завжди включати всі поля, які є важливими для результату (наприклад, бажаний стан), який ви хочете визначити.
Всі JSON-повідомлення є дійсними YAML-повідомленнями. Тому, на додачу до використання тіл запитів YAML для запитів Server-Side Apply, ви також можете використовувати тіла запитів JSON, оскільки вони також є дійсними YAML. У будь-якому випадку, використовуйте тип медіа application/apply-patch+yaml для HTTP-запиту.
Контроль доступу і дозволи
Оскільки Server-Side Apply є типом PATCH, субʼєкт (такий як Роль для Kubernetes RBAC) потребує дозволу patch для редагування наявних ресурсів, а також дозволу на дієслово create для створення нових ресурсів за допомогою Server-Side Apply.
Очищення managedFields
Можливо видалити всі managedFields з обʼєкта, переписавши їх за допомогою patch (JSON Merge Patch, Strategic Merge Patch, JSON Patch) або через update (HTTP PUT); іншими словами, через будь-яку операцію запису, окрім apply. Це можна зробити, переписавши поле managedFields порожнім записом. Два приклади:
Це перепише managedFields списком, що містить один порожній запис, що в результаті повністю видалить managedFields з обʼєкта. Зверніть увагу, що встановлення managedFields як порожнього списку не скине це поле. Це зроблено спеціально, щоб managedFields ніколи не видалялися клієнтами, які не знають про це поле.
У випадках, коли операція скидання комбінується зі змінами інших полів, крім managedFields, це призведе до того, що спочатку managedFields буде скинуто, а інші зміни будуть оброблені пізніше. У результаті аплікатор бере на себе відповідальність за будь-які поля, оновлені в тому ж запиті.
Примітка:
Server-Side Apply не правильно відстежує власність на субресурси, які не отримують тип обʼєкта ресурсу. Якщо ви використовуєте Server-Side Apply з таким субресурсом, змінені поля можуть не відслідковуватися.
Що далі
Ви можете прочитати про managedFields у довіднику API Kubernetes для верхнього рівня поля metadata.
2.4 - Бібліотеки клієнтів
Ця сторінка містить огляд бібліотек клієнтів для використання Kubernetes API різними мовами програмування.
Для написання застосунків, що використовують Kubernetes REST API, вам не потрібно самостійно реалізовувати виклики API та типи запитів/відповідей. Ви можете використовувати бібліотеку клієнтів для мови програмування, яку ви використовуєте.
Бібліотеки клієнтів часто виконують загальні завдання, такі як автентифікація. Більшість бібліотек клієнтів можуть знаходити та використовувати Kubernetes Service Account для автентифікації, якщо API клієнт працює всередині кластера Kubernetes, або можуть розуміти формат kubeconfig файлу для читання облікових даних та адреси API сервера.
Офіційно підтримувані бібліотеки клієнтів Kubernetes
Примітка: Цей розділ містить посилання на проєкти сторонніх розробників, які надають функціонал, необхідний для Kubernetes. Автори проєкту Kubernetes не несуть відповідальності за ці проєкти. Проєкти вказано в алфавітному порядку. Щоб додати проєкт до цього списку, ознайомтеся з посібником з контенту перед надсиланням змін. Докладніше.
Наступні бібліотеки клієнтів Kubernetes надаються і підтримуються їх авторами, а не командою Kubernetes.
Вирази CEL оцінюються безпосередньо на сервері API, що робить CEL зручним альтернативним рішенням для зовнішніх механізмів, таких як вебхуки, для багатьох випадків розширення функціональності. Ваші вирази CEL продовжують виконуватись, поки компонент сервера API у складі панелі управління залишається доступним.
Огляд мови
Мова CEL має простий синтаксис, який схожий на вирази в C, C++, Java, JavaScript і Go.
CEL була розроблена для вбудовування в застосунки. Кожна "програма" CEL — це один вираз, який обраховується до одного значення. Вирази CEL зазвичай короткі "одноразові", що добре вбудовуються в строкові поля ресурсів API Kubernetes.
Вхідні дані для програми CEL — це "змінні". Кожне поле API Kubernetes, яке містить CEL, декларує в документації API, які змінні доступні для використання для цього поля. Наприклад, у полі x-kubernetes-validations[i].rules у CustomResourceDefinitions доступні змінні self і oldSelf, що відносяться до попереднього та поточного стану даних власного ресурсу користувача, які потрібно перевірити за допомогою виразу CEL. Інші поля API Kubernetes можуть оголошувати різні змінні. Дивіться документацію API для полів API, щоб дізнатися, які змінні доступні для цього поля.
Функції CEL, особливості та налаштування мови підтримують відкат панелі управління Kubernetes. Наприклад, опційні значення CEL були введені у Kubernetes 1.29, і лише сервери API цієї версії або новіші прийматимуть запити на запис виразів CEL, які використовують опційні значення CEL. Однак, коли кластер відкочується до версії Kubernetes 1.28, вирази CEL, що використовують "опційні значення CEL", які вже збережені в ресурсах API, продовжуватимуть правильно оцінюватись.
Бібліотеки CEL Kubernetes
Крім спільнотних бібліотек CEL, Kubernetes включає бібліотеки CEL, які доступні у всіх місцях використання CEL в Kubernetes.
Бібліотека списків Kubernetes
Бібліотека списків включає indexOf та lastIndexOf, які працюють аналогічно функціям рядків з такими самими назвами. Ці функції повертають перший або останній індекс елемента у списку.
Бібліотека списків також включає min, max та sum. Сума підтримується для всіх типів чисел, а також для типу тривалості. Мінімум та максимум підтримуються для всіх типів, що можна порівняти.
Також надається функція isSorted для зручності та підтримується для всіх типів, які можна порівняти.
Приклади:
Приклади виразів CEL, що використовують функції бібліотеки списків
Вираз CEL
Призначення
names.isSorted()
Перевірити, що список імен зберігається в алфавітному порядку
items.map(x, x.weight).sum() == 1.0
Перевірити, що "ваги" списку обʼєктів дорівнюють 1.0
Крім функції matches, наданої стандартною бібліотекою CEL, бібліотека регулярних виразів надає функції find та findAll, що дозволяють виконувати ширший спектр операцій з регулярними виразами.
Приклади:
Приклади виразів CEL, що використовують функції бібліотеки регулярних виразів
Для спрощення та безпечної обробки URL надані наступні функції:
isURL(string) перевіряє, чи є рядок рядком дійсним URL з пакетом Go net/url. Рядок повинен бути абсолютним URL.
url(string) URL конвертує рядок в URL або викликає помилку, якщо рядок не є дійсним URL.
Після розбору за допомогою функції url, отриманий обʼєкт URL має наступні методи доступу: getScheme, getHost, getHostname, getPort, getEscapedPath та getQuery.
Приклади:
Приклади виразів CEL, що використовують функції бібліотеки URL
Вираз CEL
Призначення
url('https://example.com:80/').getHost()
Отримати частину хосту 'example.com:80' URL
url('https://example.com/path with spaces/').getEscapedPath()
Щоб зробити обробку IP-адрес простішою і безпечнішою, були додані наступні функції:
isIP(string) перевіряє, чи є рядок дійсною IP-адресою.
ip(string) IP конвертує рядок в обʼєкт IP-адреси або викликає помилку, якщо рядок не є дійсною IP-адресою.
Для обох функцій IP-адреса повинна бути адресою IPv4 або IPv6. Зіставлені з IPv4 IPv6-адреси (наприклад, ::ffff:1.2.3.4) не допускаються. IP-адреси з зонами (наприклад, fe80::1%eth0) не допускаються. Початкові нулі в октетах IPv4-адрес не допускаються.
Після розбору за допомогою функції ip отриманий обʼєкт IP має наступну бібліотеку функцій-членів:
Доступні функції-члени обʼєкта IP-адреси
Функція-член
Тип значення (CEL)
Опис
isCanonical()
bool
Повертає true, якщо IP-адреса знаходиться в канонічній формі. Для кожної IP-адреси існує лише одна канонічна форма, тому поля, що містять IP-адреси в канонічній формі, можна розглядати як рядки при перевірці на рівність або унікальність.
family()
int
Повертає сімейство IP-адреси: 4 для IPv4 та 6 для IPv6.
isUnspecified()
bool
Повертає true, якщо IP-адреса є невизначеною адресою. Це може бути IPv4-адреса "0.0.0.0" або IPv6-адреса "::".
isLoopback()
bool
Повертає true, якщо IP-адреса є loopback адресою. Це може бути IPv4-адреса зі значенням 127.x.x.x або IPv6-адреса зі значенням ::1.
isLinkLocalMulticast()
bool
Повертає true, якщо IP-адреса є локальною груповою адресою каналу (link-local multicast). Це може бути IPv4-адреса зі значенням 224.0.0.x або IPv6-адреса в мережі ff00::/8.
isLinkLocalUnicast()
bool
Повертає true, якщо IP-адреса є локальною індивідуальною адресою каналу (link-local unicast). Це може бути IPv4-адреса зі значенням 169.254.x.x або IPv6-адреса в мережі fe80::/10.
isGlobalUnicast()
bool
Повертає true, якщо IP-адреса є глобальною індивідуальною адресою. Це може бути IPv4-адреса, що не є нулем або 255.255.255.255, або IPv6-адреса, що не є локальною індивідуальною адресою каналу, зворотною адресою або груповою адресою.
Приклади:
Приклади виразів CEL з використанням функцій бібліотеки IP-адрес
Вираз CEL
Призначення
isIP('127.0.0.1')
Повертає true для дійсної IP-адреси.
ip('2001:db8::abcd').isCanonical()
Повертає true для канонічної IPv6-адреси.
ip('2001:DB8::ABCD').isCanonical()
Повертає false, оскільки канонічна форма використовує нижній регістр.
ip('127.0.0.1').family() == 4
Перевіряє сімейство IP-адреси.
ip('::1').isLoopback()
Перевіряє, чи є IP-адреса зворотною (loopback).
ip('192.168.0.1').isGlobalUnicast()
Перевіряє, чи є IP-адреса глобальною індивідуальною адресою.
CIDR надає розширення бібліотеки функцій CEL для розбору нотації CIDR.
cidr
Конвертує рядок у нотації CIDR в представлення мережевої адреси або викликає помилку, якщо рядок не є дійсною нотацією CIDR. CIDR повинен бути підмережею IPv4 або IPv6 з маскою. Ведучі нулі в октетах IPv4-адреси не дозволяються. IPv4-адреси, що відображаються в IPv6 (наприклад, ::ffff:1.2.3.4/24), не дозволяються.
cidr(<рядок>) <CIDR>
Приклади:
cidr('192.168.0.0/16') // повертає IPv4-адресу з маскою CIDR
cidr('::1/128') // повертає IPv6-адресу з маскою CIDR
cidr('192.168.0.0/33') // помилка
cidr('::1/129') // помилка
cidr('192.168.0.1/16') // помилка, тому що є ненульові біти після префікса
isCIDR
Повертає true, якщо рядок є дійсним представленням підмережі з маскою в нотації CIDR. CIDR повинен бути підмережею IPv4 або IPv6 з маскою. Ведучі нулі в октетах IPv4-адреси не дозволяються. IPv4-адреси, що відображаються в IPv6 (наприклад, ::ffff:1.2.3.4/24), не дозволяються.
containsIP / containsCIDR / ip / masked / prefixLength
containsIP: Повертає true, якщо CIDR містить задану IP-адресу. IP-адреса має бути IPv4 або IPv6. Може приймати як аргумент рядок або IP-адресу.
containsCIDR: Повертає true, якщо CIDR містить заданий CIDR. CIDR повинен бути підмережею IPv4 або IPv6 з маскою. Може приймати як аргумент рядок або CIDR.
ip: Повертає представлення IP-адреси CIDR.
masked: Повертає представлення CIDR мережевої адреси з маскованим префіксом. Це можна використовувати для повернення канонічної форми мережі CIDR.
prefixLength: Повертає довжину префікса CIDR в бітах. Це кількість бітів у масці.
Приклади:
Приклади виразів CEL з використанням функцій бібліотеки CIDR
Для виразів CEL в API, де доступна змінна типу Authorizer, авторизатор може використовуватися для виконання перевірок авторизації для принципала (автентифікованого користувача) запиту.
Перевірки ресурсів API виконуються наступним чином:
Вкажіть групу та ресурс для перевірки: Authorizer.group(string).resource(string) ResourceCheck.
Опційно викличте будь-яку комбінацію наступних функцій побудови для подальшого обмеження перевірки авторизації. Зверніть увагу, що ці функції повертають тип отримувача та можуть бути зʼєднані ланцюгом:
ResourceCheck.subresource(string) ResourceCheck
ResourceCheck.namespace(string) ResourceCheck
ResourceCheck.name(string) ResourceCheck
Викличте ResourceCheck.check(verb string) Decision, щоб виконати перевірку авторизації.
Викличте allowed() bool або reason() string, щоб переглянути результат перевірки авторизації.
Не-ресурсна авторизація виконується так:
Вкажіть лише шлях: Authorizer.path(string) PathCheck.
Викличте PathCheck.check(httpVerb string) Decision, щоб виконати перевірку авторизації.
Викличте allowed() bool або reason() string, щоб переглянути результат перевірки авторизації.
Для виконання перевірки авторизації для службового облікового запису:
Authorizer.serviceAccount(namespace string, name string) Authorizer
Приклади виразів CEL, що використовують функції бібліотеки авторизатора
Бібліотека format надає функції для перевірки поширених форматів рядків у Kubernetes. Це корисно у messageExpression правил валідації для надання більш конкретних повідомлень про помилки.
Бібліотека надає функції format() для кожного іменованого формату, а також загальну функцію format.named().
format.named(string) → ?Format: Повертає обʼєкт Format для заданого імені формату, якщо він існує. Інакше повертає optional.none.
format.<formatName>() -> Format: Доступні зручні функції для всіх іменованих форматів. Наприклад, format.dns1123Label() повертає обʼєкт Format для DNS-1123 label.
<Format>.validate(string) -> list<string>?: Перевіряє рядок на відповідність формату. Повертає optional.none, якщо рядок валідний, інакше — список рядків з помилками.
Доступні формати:
Підтримуються наступні назви форматів:
Доступні формати для бібліотеки форматів
Назва формату
Опис
dns1123Label
Перевіряє, чи є рядок валідною DNS-1123 міткою.
dns1123Subdomain
Перевіряє, чи є рядок валідним DNS-1123 піддоменом.
dns1035Label
Перевіряє, чи є рядок валідною DNS-1035 міткою.
qualifiedName
Перевіряє, чи є рядок валідним кваліфікованим іменем.
dns1123LabelPrefix
Перевіряє, чи є рядок валідним префіксом DNS-1123 мітки.
dns1123SubdomainPrefix
Перевіряє, чи є рядок валідним префіксом DNS-1123 піддомену.
dns1035LabelPrefix
Перевіряє, чи є рядок валідним префіксом DNS-1035 мітки.
labelValue
Перевіряє, чи є рядок валідним значенням мітки.
uri
Перевіряє, чи є рядок валідним URI. Використовує той самий патерн, що і isURL, але повертає список помилок.
uuid
Перевіряє, чи є рядок валідним UUID.
byte
Перевіряє, чи є рядок валідним base64-кодованим рядком.
date
Перевіряє, чи є рядок валідною датою у форматі YYYY-MM-DD.
datetime
Перевіряє, чи є рядок валідною датою-часом у форматі RFC3339.
Приклади:
Приклади CEL-виразів з використанням функцій бібліотеки форматів
messageExpression, що повертає конкретні помилки валідації для поля. Якщо поле валідне, validate повертає optional.none, а orValue — порожній список, результатом буде порожній рядок.
quantity(string) Quantity конвертує рядок у кількість або викликає помилку, якщо рядок не є дійсною кількістю.
Після розбору за допомогою функції quantity, отриманий обʼєкт кількості має наступний набір методів:
Набір доступних методів для кількості
Метод
Повертає тип
Опис
isInteger()
bool
Повертає true, якщо asInteger може бути викликано без помилки.
asInteger()
int
Повертає представлення поточного значення як int64, якщо це можливо, або викликає помилку, якщо конвертація призводить до переповнення або втрати точності.
asApproximateFloat()
float
Повертає представлення кількості як float64, що може втратити точність.
sign()
int
Повертає 1, якщо кількість додатня, -1, якщо вона відʼємна, або 0, якщо вона нуль.
add(<Quantity>)
Quantity
Повертає суму двох кількостей.
add(<int>)
Quantity
Повертає суму кількості та цілого числа.
sub(<Quantity>)
Quantity
Повертає різницю між двома кількостями.
sub(<int>)
Quantity
Повертає різницю між кількістю та цілим числом.
isLessThan(<Quantity>)
bool
Повертає true, якщо отримувач менше операнта.
isGreaterThan(<Quantity>)
bool
Повертає true, якщо отримувач більше операнта.
compareTo(<Quantity>)
int
Порівнює отримувача з операндом та повертає 0, якщо вони рівні, 1, якщо отримувач більший або -1, якщо отримувач менший за операнд.
Приклади:
Приклади виразів CEL, що використовують функції бібліотеки кількості
Вираз CEL
Призначення
quantity("500000G").isInteger()
Перевірка, чи конвертація в ціле число викликає помилку.
У Kubernetes v1.34 додано підтримку розбору та порівняння рядків, що відповідають специфікації Semantic Versioning 2.0.0. Докладніше про прийняті патерни дивіться semver.org.
isSemver(string) перевіряє, чи є рядок валідною семантичною версією.
semver(string) конвертує рядок у обʼєкт Semver або повертає помилку.
Додатковий булевий аргумент normalize можна передати у isSemver та semver. Якщо true, нормалізація прибирає префікс "v", додає 0 для minor та patch, якщо вказано лише major або major.minor, і прибирає ведучі нулі.
Після розбору через функцію semver отриманий обʼєкт Semver має такі функції-члени:
Доступні функції-члени обʼєкту Semver
Функція-член
Тип (CEL)
Опис
major()
int
Повертає номер основної версії (major).
minor()
int
Повертає номер другорядної версії (minor).
patch()
int
Повертає номер версії виправлення (patch).
isLessThan(<Semver>)
bool
Повертає true, якщо поточна версія менша за аргумент.
isGreaterThan(<Semver>)
bool
Повертає true, якщо поточна версія більша за аргумент.
compareTo(<Semver>)
int
Порівнює поточну версію з аргументом: повертає 0, якщо рівні, 1 — якщо поточна більша, -1 — якщо менша.
Приклади:
Приклади CEL-виразів з використанням функцій бібліотеки semver
Деякі поля API Kubernetes містять повністю перевірені типи CEL-виразів. Наприклад, Правила валідації власних ресурсів повністю перевірені за типом.
Деякі поля API Kubernetes містять частково перевірені типи CEL-виразів. Частково перевірений вираз — це вираз, в якому деякі змінні статично типізовані, а інші — динамічно типізовані. Наприклад, в CEL-виразах ValidatingAdmissionPolicies, змінна request має тип, але змінна object динамічно типізована. У звʼязку з цим вираз, що містить request.namex, не пройде перевірку типів, оскільки поле namex не визначене. Однак object.namex пройде перевірку типів навіть тоді, коли поле namex не визначене для типів ресурсів, на які посилається object, оскільки object динамічно типізований.
Макрос has() у CEL можна використовувати у виразах CEL для перевірки наявності поля змінної з динамічною типізацією перед спробою отримати доступ до значення цього поля. Наприклад:
Використовуйте has() для перевірки наявності поля. Не використовуйте has() для перевірки наявності ключа в map. Наприклад, не пишіть has(object.metadata.labels['example.com/environment']). Для перевірки ключів у map використовуйте оператор in. Наприклад:
has(object.metadata.labels) && 'example.com/environment' in object.metadata.labels
Цей вираз перевіряє, що metadata.labels присутній перед перевіркою наявності ключа example.com/environment у map.
Інтеграція системи типів
Таблиця, що показує взаємозвʼязок між типами OpenAPIv3 та CEL
Тип OpenAPIv3
Тип CEL
'object' з Properties
object / "тип повідомлення" (type(<object>) обчислюється як selfType<uniqueNumber>.path.to.object.from.self
'object' з AdditionalProperties
map
'object' з x-kubernetes-embedded-type
object / "тип повідомлення", 'apiVersion', 'kind', 'metadata.name' і 'metadata.generateName' включені в схему
'object' з x-kubernetes-preserve-unknown-fields
object / "тип повідомлення", невідомі поля НЕ доступні у виразі CEL
x-kubernetes-int-or-string
обʼєднання int або string, self.intOrString < 100 || self.intOrString == '50%' обчислюється як true для 50 і "50%"
'array'
list
'array' з x-kubernetes-list-type=map
list з базованими на map рівноправністю та унікальними ключами
'array' з x-kubernetes-list-type=set
list з базованими на set рівноправністю та унікальними елементами
Порівняння рівності для масивів з x-kubernetes-list-type типу set або map ігнорує порядок елементів. Наприклад, [1, 2] == [2, 1] якщо масиви представляють значення Kubernetes set.
Конкатенація для масивів з x-kubernetes-list-type використовує семантику типу списку:
set
X + Y виконує обʼєднання, де позиції елементів у X зберігаються, а не перетинаючі елементи у Y додаються, зберігаючи їх частковий порядок.
map
X + Y виконує обʼєднання, де позиції ключів у X зберігаються, але значення перезаписуються значеннями у Y, коли ключові множини X і Y перетинаються. Елементи у Y з неперетинаючими ключами додаються, зберігаючи їх частковий порядок.
Екранування
Тільки імена властивостей ресурсів Kubernetes форми [a-zA-Z_.-/][a-zA-Z0-9_.-/]* доступні з CEL. Доступні імена властивостей екрануються згідно з наступними правилами при доступі у виразі:
Коли ви екрануєте будь-яке з ЗАРЕЗЕРВОВАНИХ ключових слів CEL, збіг повинен точно відповідати імені властивості та використовувати екранування з підкресленням (наприклад, int у слові sprint не буде екрановано, і це не буде необхідно).
Приклади екранування:
Приклади екранованих ідентифікаторів CEL
імʼя властивості
правило з екранованим імʼям властивості
namespace
self.__namespace__ > 0
x-prop
self.x__dash__prop > 0
redact__d
self.redact__underscores__d > 0
string
self.startsWith('kube')
Обмеження ресурсів
CEL не є повноцінною мовою Тюрінга і пропонує різноманітні засоби безпеки для обмеження часу виконання. Функції обмеження ресурсів CEL забезпечують зворотний звʼязок розробникам щодо складності виразів та допомагають захистити сервер API від надмірного споживання ресурсів під час оцінювання. Ці функції використовуються для запобігання надмірного споживання ресурсів сервера API під час виконання CEL.
Ключовим елементом функцій обмеження ресурсів є одиниця вартості, яку CEL визначає як спосіб відстеження використання ЦП. Одиниці вартості незалежні від системного навантаження та апаратного забезпечення. Одиниці вартості також є детермінованими; для будь-якого заданого виразу CEL та вхідних даних, оцінка виразу інтерпретатором CEL завжди призведе до однакової вартості.
Багато з основних операцій CEL мають фіксовані витрати. Найпростіші операції, такі як порівняння (наприклад, <), мають вартість 1. Деякі мають вищу фіксовану вартість, наприклад, оголошення літералів списку мають фіксовану базову вартість 40 одиниць вартості.
Виклики функцій, реалізованих у рідному коді, оцінюються на основі часової складності операції. Наприклад, операції, що використовують регулярні вирази, такі як match та find, оцінюються з використанням приблизної вартості length(regexString)*length(inputString). Приблизна вартість відображає найгірший випадок часової складності реалізації RE2 в Go.
Бюджет вартості під час виконання
Усі вирази CEL, які оцінюються Kubernetes, обмежені бюджетом вартості під час виконання. Бюджет вартості під час виконання — це оцінка фактичного використання ЦП, що обчислюється шляхом інкрементування лічильника одиниць вартості під час інтерпретації виразу CEL. Якщо інтерпретатор CEL виконає занадто багато інструкцій, бюджет вартості під час виконання буде перевищено, виконання виразу буде зупинено і результатом стане помилка.
Деякі ресурси Kubernetes визначають додатковий бюджет вартості під час виконання, який обмежує виконання декількох виразів. Якщо загальна вартість виразів перевищує бюджет, виконання виразів буде зупинено і результатом стане помилка. Наприклад, валідація власного ресурсу користувача має бюджет вартості під час виконання за одну валідацію для всіх Правил Валідації, які оцінюються для валідації власного ресурсу.
Оцінювані обмеження вартості
Для деяких ресурсів Kubernetes, сервер API також може перевірити, чи не буде найгірший випадок оціненого часу виконання виразів CEL надто дорогим для виконання. Якщо так, сервер API запобігає записуванню виразу CEL у ресурсі API, відхиляючи операції створення або оновлення, що містять вираз CEL у ресурсі API. Ця функція пропонує сильнішу гарантію, що вирази CEL, записані у ресурс API, будуть оцінені під час виконання без перевищення бюджету вартості під час виконання.
2.6 - Політика застарівання Kubernetes
Цей документ описує політику застарівання для різних аспектів системи.
Kubernetes — це велика система з багатьма компонентами та багатьма учасниками. Як і в будь-якому такому програмному забезпеченні, набір функцій природно розвивається з часом, і іноді функцію може знадобитися видалити. Це може включати API, прапорець або навіть всю функцію. Щоб уникнути порушення роботи наявних користувачів, Kubernetes дотримується політики застарівання для аспектів системи, які підлягають видаленню.
Застарівання частин API
Оскільки Kubernetes є системою, що керується API, API еволюціонував з часом, віддзеркалюючи постійно змінюване розуміння проблемної області. API Kubernetes фактично є набором API, які називаються "групами API", і кожна група API має свою незалежну версію. Версії API поділяються на 3 основні треки, кожен з яких має різні політики застарівання:
Приклад
Трек
v1
GA (загальнодоступна, стабільна)
v1beta1
Beta (попередній випуск, перед GA)
v1alpha1
Alpha (експериментальна)
Конкретний випуск Kubernetes може підтримувати будь-яку кількість груп API та будь-яку кількість версій кожного з них.
Наступні правила регулюють застарівання елементів API. Це включає:
Ресурси REST (також відомі як обʼєкти API)
Поля ресурсів REST
Анотації на ресурсах REST, включаючи "бета" анотації, але не включаючи "альфа" анотації
Перелічувані або постійні значення
Структури конфігурації компонентів
Ці правила застосовуються між офіційними випусками, а не між довільними внесками коду в основну гілку або гілки випусків.
Правило №1: Елементи API можуть бути видалені лише шляхом інкрементування версії групи API.
Після того, як елемент API був доданий до групи API у певній версії, він не може бути видалений з цієї версії або суттєво змінений, незалежно від треку.
Примітка:
З історичних причин є 2 "монолітні" групи API — "core" (без назви групи) і "extensions". Ресурси будуть поступово переміщені з цих застарілих груп API до більш доменно-специфічних груп API.
Правило №2: Обʼєкти API повинні мати можливість переходу між версіями API в даному випуску без втрати інформації, за винятком випадків, коли цілі ресурси REST не існують у деяких версіях.
Наприклад, обʼєкт може бути записаний як v1, потім прочитаний як v2 і перетворений на v1, і отриманий ресурс v1 буде ідентичний оригіналу. Представлення у v2 може відрізнятися від v1, але система повинна вміти конвертувати між ними в обидва боки. Крім того, будь-яке нове поле, додане у v2, повинно мати можливість обміну на v1 і назад, що означає, що v1 можливо доведеться додати еквівалентне поле або представити його як анотацію.
Правило №3: Версія API в даному треку не може бути застарілою на користь менш стабільної версії API.
GA версії API можуть замінювати бета та альфа версії API.
Бета версії API можуть замінювати попередні бета та альфа версії API, але не можуть замінювати GA версії API.
Альфа версії API можуть замінювати попередні альфа версії API, але не можуть замінювати GA або бета версії API.
Правило №4а: Тривалість життя API визначається рівнем стабільності API
GA версії API можуть бути позначені як застарілі, але не можуть бути видалені в межах основної версії Kubernetes
Бета версії API застарівають не раніше ніж через 9 місяців або 3 мінорних випуски після впровадження (що довше), і більше не обслуговуються через 9 місяців або 3 мінорних випуски після застарівання (що довше)
Альфа версії API можуть бути видалені в будь-якому випуску без попереднього повідомлення про застарівання
Це гарантує, що підтримка бета API охоплює максимальний підтримуваний розрив версій у 2 випуски, і що API не застоюються на нестабільних бета версіях, накопичуючи продуктивне використання, яке буде порушене, коли підтримка бета API закінчиться.
Примітка:
Зараз немає планів щодо основної версії Kubernetes, що видаляє GA API.
Примітка:
До тих пір, поки #52185 не буде вирішено, жодні версії API, які були віднесені до зберігання, не можуть бути видалені. Обслуговування REST точок доступу для цих версій може бути відключено (відповідно до графіків застарівання в цьому документі), але API сервер повинен залишатися здатним декодувати/конвертувати раніше збережені дані зі сховища.
Правило №4б: "Бажана" версія API та "версія зберігання" для даної групи можуть не просуватися до того, як буде зроблено випуск, що підтримує як нову версію, так і попередню версію.
Користувачі повинні мати можливість оновитися до нової версії Kubernetes, а потім повернутися до попередньої версії, не конвертуючи нічого до нової версії API або уникаючи порушень (якщо вони явно не використовували функції, доступні лише в новішій версії). Це особливо очевидно у збереженому представленні обʼєктів.
Все це найкраще ілюструється прикладами. Уявіть собі випуск Kubernetes, версія X, який вводить нову групу API. Новий випуск Kubernetes виходить приблизно кожні 4 місяці (3 на рік). Наступна таблиця описує, які версії API підтримуються в ряді наступних випусків.
Випуск
Версії API
Бажана/Версія зберігання
Примітки
X
v1alpha1
v1alpha1
X+1
v1alpha2
v1alpha2
v1alpha1 видалено. Необхідні дії див. у примітках до випуску.
X+2
v1beta1
v1beta1
v1alpha2 видалено. Необхідні дії див. у примітках до випуску.
X+3
v1beta2, v1beta1 (застаріла)
v1beta1
v1beta1 застаріла. Необхідні дії див. у примітках до випуску.
X+4
v1beta2, v1beta1 (застаріла)
v1beta2
X+5
v1, v1beta1 (застаріла), v1beta2 (застаріла)
v1beta2
v1beta2 застаріла. Необхідні дії див. у примітках до випуску.
X+6
v1, v1beta2 (застаріла)
v1
v1beta1 видалено. Необхідні дії див. у примітках до випуску.
X+7
v1, v1beta2 (застаріла)
v1
X+8
v2alpha1, v1
v1
v1beta2 видалено. Необхідні дії див. у примітках до випуску.
X+9
v2alpha2, v1
v1
v2alpha1 видалено. Необхідні дії див. у примітках до випуску.
X+10
v2beta1, v1
v1
v2alpha2 видалено. Необхідні дії див. у примітках до випуску.
X+11
v2beta2, v2beta1 (застаріла), v1
v1
v2beta1 застаріла. Необхідні дії див. у примітках до випуску.
v2beta1 видалено. Необхідні дії див. у примітках до випуску.
X+15
v2, v1 (застаріла)
v2
v2beta2 видалено. Необхідні дії див. у примітках до випуску.
REST ресурси (або обʼєкти API)
Розглянемо гіпотетичний REST ресурс з назвою Widget, який був присутній у версії API v1 у наведеній вище хронології і який потрібно визнати застарілим. Ми документуємо та оголошуємо про його застарівання синхронно з випуском X+1. Ресурс Widget все ще існує у версії API v1 (застарілий), але не у v2alpha1. Ресурс Widget продовжує існувати та функціонувати у випусках до, та включно з, X+8. Лише у випуску X+9, коли API v1 виходить з використання, ресурс Widget перестає існувати та його віповідна поведінка видаляється.
Починаючи з Kubernetes v1.19, виконання запиту до застарілої точки доступу REST API:
Повертає заголовок Warning (як визначено у RFC7234, Розділ 5.5) у відповіді API.
Додає "k8s.io/deprecated":"true" анотацію до події аудиту, зареєстрованої для запиту.
Встановлює метрику apiserver_requested_deprecated_apis gauge у значення 1 у процесі kube-apiserver. Метрика має мітки group, version, resource, subresource, які можна поєднати з метрикою apiserver_request_total, і мітку removed_release, яка вказує випуск Kubernetes, в якому API більше не буде обслуговуватися. Наступний запит Prometheus повертає інформацію про запити, зроблені до застарілих API, які будуть видалені у версії v1.22:
Як і REST ресурси в цілому, так і окреме поле, яке було присутнє у версії API v1, має існувати та функціонувати до видалення API v1. На відміну від ресурсів в цілому, API v2 можуть вибрати інше представлення для поля, допоки є можливість виконувати перехід між версіями в обидва боки. Наприклад, поле v1 з назвою "magnitude", яке було застарілим, може називатися "deprecatedMagnitude" в API v2. Коли v1 врешті буде видалено, застаріле поле може бути видалене з v2.
Перераховані або константні значення
Як і для REST ресурсу в цілому, так і його полів, константне значення, яке підтримувалося в API v1, має існувати та функціонувати до видалення API v1.
Структури конфігурацій компонентів
Конфігурації компонентів версіонуються та керуються аналогічно до REST ресурсів.
Майбутні роботи
З часом Kubernetes запровадить більш детальні версії API, і тоді ці правила будуть скориговані за потреби.
Застарівання прапорця або CLI
Система Kubernetes складається з кількох різних програм, які співпрацюють між собою. Іноді випуск Kubernetes може видаляти прапорці або команди CLI (загалом "елементи CLI") у цих програмах. Програми природно діляться на дві основні групи — програми для користувачів і програми для адміністраторів, які трохи відрізняються своїми політиками застарівання. Якщо прапорець явно не позначено або задокументовано як "alpha" або "beta", він вважається стабільним (GA).
Елементи CLI фактично є частиною API до системи, але оскільки вони не версіонуються так само, як REST API, правила застарівання наступні:
Правило №5а: Елементи CLI компонентів для користувачів (наприклад, kubectl) повинні функціонувати після оголошення їх застарівання не менше ніж:
GA: 12 місяців або 2 випуски (залежно від того, що довше)
Beta: 3 місяці або 1 випуск (залежно від того, що довше)
Alpha: 0 випусків
Правило №5б: Елементи CLI компонентів для адміністраторів (наприклад, kubelet) повинні функціонувати після оголошення їх застарівання не менше ніж:
GA: 6 місяців або 1 випуск (залежно від того, що довше)
Beta: 3 місяці або 1 випуск (залежно від того, що довше)
Alpha: 0 випусків
Правило №5в: Елементи командного інтерфейсу (CLI) не можуть бути застарілими на користь менш стабільних елементів CLI.
Схоже на Правило №3 для API, якщо елемент інтерфейсу командного рядка замінюється альтернативною реалізацією, наприклад, перейменуванням наявного елемента або переходом на використання конфігурації, отриманої з файлу, замість аргументу командного рядка, ця рекомендована альтернатива повинна мати той самий або вищий рівень стабільності.
Правило №6: Застарілі елементи CLI повинні видавати попередження (можливо, такі, що відключаються) при використанні.
Застарівання функціонала або поведінки
Час від часу випуск Kubernetes потребує визнання застарілим певного функціонала або поведінки системи, яка не контролюється API або CLI. У цьому випадку правила застарівання такі:
Правило №7: Застарілі функції повинні функціонувати не менше 1 року після оголошеного застарівання.
Якщо функцію або поведінку замінює альтернативна реалізація, яка вимагає роботи для переходу, повинні бути зусилля спростити перехід, якщо це можливо. Якщо альтернативна реалізація контролюється організацією Kubernetes, застосовуються наступні правила:
Правило №8: Функцію або поведінку не можна визнати застарілою на користь альтернативної реалізації, яка менш стабільна.
Наприклад, загальнодоступну функцію не можна визнати застарілою на користь бета-заміщення. Проєкт Kubernetes, однак, закликає користувачів переходити на альтернативні реалізації навіть до досягнення ними того самого рівня зрілості. Це особливо важливо для дослідження нових використань функції або отримання раннього зворотного звʼязку щодо заміщення.
Альтернативні реалізації іноді можуть бути зовнішніми інструментами або продуктами, наприклад, функція може перейти від kubelet до середовища виконання контейнерів, яке не контролюється проєктом Kubernetes. У таких випадках правило не може бути застосоване, але повинні бути зусилля, щоб забезпечити наявність шляху переходу, який не компрометує рівень зрілості компонентів. У прикладі з середовищами виконання контейнерів, зусилля можуть включати спроби забезпечити те, що популярні середовища виконання контейнерів мають версії, які пропонують такий самий рівень стабільності під час впровадження цієї заміни.
Правила застарівання для функцій та поведінки не означають, що всі зміни в системі керуються цією політикою. Ці правила застосовуються тільки до значних, видимих для користувача поведінок, які впливають на правильність роботи програм, що працюють на Kubernetes або впливають на адміністрування кластерів Kubernetes, і які повністю видаляються.
Виняток з вищезазначеного правила — це функціональні можливості. Функціональні можливості — це пари ключ=значення, які дозволяють користувачам увімкнути/вимкнути експериментальні функції.
Функціональні можливості призначені для охоплення життєвого циклу розробки функції — вони не призначені для API, що мають існувати довгий час. Таким чином, очікується, що вони будуть застарілі та видалені після того, як функція стане GA або буде відкинута.
Під час руху функції через стадії, повʼязані функціональні можливості, змінюються. Життєвий цикл функції, збігається з їх відповідними функціональними можливостями, такий:
Alpha: функціональні можливості стандартно вимкнені та можуть бути увімкнені користувачем.
Beta: функціональні можливості стандартно увімкнені та можуть бути вимкнені користувачем.
GA: функціональні можливості застарілі (див. "Застарівання") і стають нечинними.
GA, вікно застарівання завершено: функціональні можливості видаляються, і виклики до них більше не приймаються.
Застарівання
Функції можуть бути видалені на будь-якому етапі життєвого циклу до GA. Коли функції видаляються перед виходом GA, їхні повʼязані функціональні можливості також застарівають.
Якщо виконується спроба вимкнути нечинні функціональні можливості, виклик не вдається, щоб уникнути непідтримуваних сценаріїв, які в іншому випадку можуть працювати мовчки.
У деяких випадках видалення функцій до виходу GA вимагає значного часу. Функціональні можливості можуть залишатися чинними до тих пір, поки повʼязана з ними функція не буде повністю видалена, після чого самі функціональні можливості можуть бути визнані застарілими.
Коли видалення функціональних можливостей для GA-функції також вимагає значного часу, виклики до функціональних можливостей можуть залишатися чинними, якщо функціональні можливості не впливають на функцію і не викликають помилок.
Функції, які мають бути вимкнені користувачами, повинні включати механізм для вимкнення функції в повʼязаних функціональних можливостях.
Версіонування для функціональних можливостей відрізняється від раніше обговорених компонентів, тому правила застарівання такі:
Правило №9: Функціональні можливості повинні бути визнані застарілими, коли відповідна функція, якою вони керують, переходить на етап життєвого циклу наступним чином. Функціональні можливості повинні функціонувати не менше ніж:
Від бета-функції до GA: 6 місяців або 2 випуски (залежно від того, що довше)
Від бета-функції до EOL: 3 місяці або 1 випуск (залежно від того, що довше)
Від альфа-функції до EOL: 0 випусків
Правило №10: Застарілі функціональні можливості повинні відповідати попередженням при використанні. Коли функціональні можливості застарівають, вони повинні бути задокументовані як в примітках про випуски, так і в відповідній довідці CLI. Як попередження, так і документація повинні вказувати, чи є функціональні можливості нечинними.
Застарівання метрики
Кожен компонент панелі управління Kubernetes використовує метрики (зазвичай за допомогою точки доступу /metrics), які зазвичай обробляються адміністраторами кластера. Не всі метрики однакові: деякі метрики широко використовуються як показники рівня сервісу (SLI) або для визначення SLO, тому вони мають більшу важливість. Інші метрики мають більш експериментальний характер або використовуються переважно у процесі розробки Kubernetes.
Відповідно, метрики поділяються на три класи стабільності (ALPHA, BETA, STABLE); це впливає на видалення метрики під час випуску Kubernetes. Ці класи визначаються важливістю метрики. Правила для застарівання та видалення метрики такі:
Правило №11а: Метрики для відповідного класу стабільності повинні функціонувати не менше ніж:
STABLE: 4 випуски або 12 місяців (що довше)
BETA: 2 випуски або 8 місяців (що довше)
ALPHA: 0 випусків
Правило №11б: Метрики, після їх оголошеного застарівання, повинні функціонувати не менше ніж:
STABLE: 3 випуски або 9 місяців (що довше)
BETA: 1 випуск або 4 місяці (що довше)
ALPHA: 0 випусків
Застарілі метрики будуть мати текст опису, у якому буде префікс з повідомленням про застарівання '(Застаріло з x.y)', і під час реєстрації метрики буде запис в лог з попередженням. Подібно до їх стабільних незастарілих аналогів, застарілі метрики будуть автоматично зареєстровані в точці доступу метрик і, отже, будуть видимими.
У наступному випуску (коли deprecatedVersion метрики дорівнює current_kubernetes_version - 3), застаріла метрика стане прихованою метрикою. На відміну від їх застарілих аналогів, приховані метрики більше не будуть автоматично реєструватися в точці доступу метрик (таким чином, вони будуть приховані). Однак їх можна буде явно увімкнути через прапорець командного рядка (--show-hidden-metrics-for-version=). Це надає адміністраторам кластера можливість виходу зі складностей з міграцією від застарілої метрики, якщо вони не змогли відреагувати на раніше надані попередження щодо застарівання. Приховані метрики повинні бути видалені після одного випуску.
Винятки
Жодна політика не може охопити кожну можливу ситуацію. Ця політика є живим документом і буде розвиватися з часом. На практиці будуть ситуації, які не підпадають під цю політику чітко або для яких ця політика стає серйозною перешкодою. Такі ситуації слід обговорювати з SIGs та керівниками проєкту, щоб знайти найкращі рішення для конкретних випадків, завжди памʼятаючи, що Kubernetes прагне бути стабільною системою, яка, наскільки це можливо, ніколи не підводить користувачів. Винятки завжди будуть оголошені в усіх відповідних повідомленням про випуски.
2.7 - Посібник з міграції від застарілих API
Під час еволюції API Kubernetes періодично переглядаються або оновлюються. Коли API розвиваються, старий API стає застарілим і, зрештою, вилучається. Ця сторінка містить інформацію, яку вам потрібно знати у випадку міграції від застарілих версій API на новіші та стабільніші версії API.
Вилучені API в розрізі версій
v1.32
У випуску v1.32 перестали обслуговуватися наступні застарілі версії API:
Ресурси контролю потоку
Версія API flowcontrol.apiserver.k8s.io/v1beta3 FlowSchema та PriorityLevelConfiguration більше не обслуговуються починаючи з v1.32.
Перенесіть маніфести та клієнти API на використання версії API flowcontrol.apiserver.k8s.io/v1, доступної з версії v1.29.
Усі наявні збережені обʼєкти доступні через новий API
Значні зміни у flowcontrol.apiserver.k8s.io/v1:
Поле spec.limited.nominalConcurrencyShares PriorityLevelConfiguration має стандартне значення 30, коли не вказане, і явне значення 0 не змінюється на 30.
v1.29
У випуску v1.29 перестали обслуговуватися наступні застарілі версії API:
Ресурси контролю потоку
Версія API flowcontrol.apiserver.k8s.io/v1beta2 FlowSchema та PriorityLevelConfiguration більше не обслуговується з версії v1.29.
Перенесіть маніфести та клієнти API на використання версії API flowcontrol.apiserver.k8s.io/v1, доступної з версії v1.29, або версії API flowcontrol.apiserver.k8s.io/v1beta3, доступної з версії v1.26.
Усі наявні збережені обʼєкти доступні через новий API
Значні зміни в flowcontrol.apiserver.k8s.io/v1:
Поле spec.limited.assuredConcurrencyShares PriorityLevelConfiguration перейменоване на spec.limited.nominalConcurrencyShares і має стандартне значення 30, коли не вказане, і явне значення 0 не змінюється на 30.
Значні зміни в flowcontrol.apiserver.k8s.io/v1beta3:
Поле spec.limited.assuredConcurrencyShares PriorityLevelConfiguration перейменоване на spec.limited.nominalConcurrencyShares
v1.27
Випуск v1.27 припинив обслуговування наступних застарілих версій API:
CSIStorageCapacity
Версія API CSIStorageCapacity storage.k8s.io/v1beta1 більше не обслуговується з версії v1.27.
Перенесіть маніфести та клієнти API на версію API storage.k8s.io/v1, доступну з версії v1.24.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Немає помітних змін
v1.26
Випуск v1.26 припинив обслуговування наступних застарілих версій API:
Ресурси керування потоком
Версія API FlowSchema та PriorityLevelConfiguration flowcontrol.apiserver.k8s.io/v1beta1 більше не обслуговується з версії v1.26.
Перенесіть маніфести та клієнти API на версію API flowcontrol.apiserver.k8s.io/v1beta2.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Немає помітних змін
HorizontalPodAutoscaler
Версія API HorizontalPodAutoscaler autoscaling/v2beta2 більше не обслуговується з версії v1.26.
Перенесіть маніфести та клієнти API на версію API autoscaling/v2, доступну з версії v1.23.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Випуск v1.25 припинив обслуговування наступних застарілих версій API:
CronJob
Версія API CronJob batch/v1beta1 більше не обслуговується з версії v1.25.
Перенесіть маніфести та клієнти API на версію API batch/v1, доступну з версії v1.21.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Немає помітних змін
EndpointSlice
Версія API EndpointSlice discovery.k8s.io/v1beta1 більше не обслуговується з версії v1.25.
Перенесіть маніфести та клієнти API на версію API discovery.k8s.io/v1, доступну з версії v1.21.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Помітні зміни в discovery.k8s.io/v1:
використовуйте поле nodeName для кожного Endpoint замість застарілого поля topology["kubernetes.io/hostname"]
використовуйте поле zone для кожного Endpoint замість застарілого поля topology["topology.kubernetes.io/zone"]
topology замінено полем deprecatedTopology, яке не доступне для запису у v1
Event
Версія API Event events.k8s.io/v1beta1 більше не обслуговується з версії v1.25.
Перенесіть маніфести та клієнти API на версію API events.k8s.io/v1, доступну з версії v1.19.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Помітні зміни в events.k8s.io/v1:
type обмежено до Normal та Warning
involvedObject перейменовано в regarding
action, reason, reportingController та reportingInstance є обовʼязковими при створенні нових events.k8s.io/v1 Events
використовуйте eventTime замість застарілого поля firstTimestamp (яке перейменовано в deprecatedFirstTimestamp та не допускається в нових events.k8s.io/v1 Events)
використовуйте series.lastObservedTime замість застарілого поля lastTimestamp (яке перейменовано в deprecatedLastTimestamp та не допускається в нових **events.k8ерсіях API events.k8s.io/v1 Events)
використовуйте series.count замість застарілого поля count (яке перейменовано в deprecatedCount та не допускається в нових events.k8s.io/v1 Events)
використовуйте reportingController замість застарілого поля source.component (яке перейменовано в deprecatedSource.component та не допускається в нових events.k8s.io/v1 Events)
використовуйте reportingInstance замість застарілого поля source.host (яке перейменовано в deprecatedSource.host та не допускається в нових events.k8s.io/v1 Events)
HorizontalPodAutoscaler
Версія API HorizontalPodAutoscaler autoscaling/v2beta1 більше не обслуговується з версії v1.25.
Перенесіть маніфести та клієнти API на версію API autoscaling/v2, доступну з версії v1.23.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Версія API PodDisruptionBudget policy/v1beta1 більше не обслуговується з версії v1.25.
Перенесіть маніфести та клієнти API на версію API policy/v1, доступну з версії v1.21.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Помітні зміни в policy/v1:
пустий spec.selector ({}), записаний до policy/v1 PodDisruptionBudget, вибирає всі теки в просторі імен (у policy/v1beta1 пустий spec.selector не вибирав жодні теки). Неустановлений spec.selector вибирає жодні теки в обох версіях API.
PodSecurityPolicy
PodSecurityPolicy в версії API policy/v1beta1 більше не обслуговується з версії v1.25, і контролер допуску PodSecurityPolicy буде видалено.
RuntimeClass в версії API node.k8s.io/v1beta1 більше не обслуговується з версії v1.25.
Перенесіть маніфести та клієнти API на версію API node.k8s.io/v1, доступну з версії v1.20.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Немає помітних змін
v1.22
Випуск v1.22 припинив обслуговування наступних застарілих версій API:
Ресурси вебхуків
Версія API admissionregistration.k8s.io/v1beta1 для MutatingWebhookConfiguration та ValidatingWebhookConfiguration більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API admissionregistration.k8s.io/v1, доступну з версії v1.16.
Усі наявні обʼєкти, які зберігаються, доступні через нові API
Помітні зміни:
стандартно webhooks[*].failurePolicy змінено з Ignore на Fail для v1
стандартно webhooks[*].matchPolicy змінено з Exact на Equivalent для v1
стандартно webhooks[*].timeoutSeconds змінено з 30s на 10s для v1
поле webhooks[*].sideEffects стандартно видалено, і тепер воно обовʼязкове,
і дозволяється лише None та NoneOnDryRun для v1
стандартно видалено значення поля webhooks[*].admissionReviewVersions та робиться обовʼязковим для v1 (підтримувані версії для AdmissionReview - v1 та v1beta1)
поле webhooks[*].name повинно бути унікальним в списку для обʼєктів, створених через admissionregistration.k8s.io/v1
CustomResourceDefinition
Версія API apiextensions.k8s.io/v1beta1 для CustomResourceDefinition більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API apiextensions.k8s.io/v1, доступну з версії v1.16.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Помітні зміни:
поле spec.scope тепер не має станадртного значення Namespaced і повинно бути явно вказано
поле spec.version вилучено в v1; використовуйте замість цього spec.versions
поле spec.validation вилучено в v1; використовуйте замість цього spec.versions[*].schema
поле spec.subresources вилучено в v1; використовуйте замість цього spec.versions[*].subresources
поле spec.additionalPrinterColumns вилучено в v1; використовуйте замість цього spec.versions[*].additionalPrinterColumns
spec.conversion.webhookClientConfig переміщено в spec.conversion.webhook.clientConfig в v1
spec.conversion.conversionReviewVersions переміщено в spec.conversion.webhook.conversionReviewVersions в v1
поле spec.versions[*].schema.openAPIV3Schema тепер обовʼязкове при створенні обʼєктів CustomResourceDefinition для v1, і повинно бути структурною схемою
spec.preserveUnknownFields: true заборонено при створенні обʼєктів CustomResourceDefinition для v1; воно повинно бути вказано у визначеннях схем як x-kubernetes-preserve-unknown-fields: true
В елементах additionalPrinterColumns поле JSONPath перейменовано в jsonPath в v1
(виправлення #66531)
APIService
Версія API apiregistration.k8s.io/v1beta1 для APIService більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API apiregistration.k8s.io/v1, доступну з версії v1.10.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Немає помітних змін
TokenReview
Версія API authentication.k8s.io/v1beta1 для TokenReview більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API authentication.k8s.io/v1, доступну з версії v1.6.
Немає помітних змін
Ресурси SubjectAccessReview
Версія API authorization.k8s.io/v1beta1 для LocalSubjectAccessReview, SelfSubjectAccessReview, SubjectAccessReview та SelfSubjectRulesReview більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API authorization.k8s.io/v1, доступну з версії v1.6.
Помітні зміни:
Поле spec.group перейменовано на spec.groups в v1 (виправляє #32709)
CertificateSigningRequest
Версія API certificates.k8s.io/v1beta1 для CertificateSigningRequest більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API certificates.k8s.io/v1, доступну з версії v1.19.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Помітні зміни в certificates.k8s.io/v1:
Для API-клієнтів, що запитують сертифікати:
Поле spec.signerName тепер обовʼязкове
(див. відомі підписувачи Kubernetes), і запити на kubernetes.io/legacy-unknown не дозволяються бути створеними через API certificates.k8s.io/v1
Поле spec.usages тепер обовʼязкове, не може містити дубльованих значень та повинно містити лише відомі використання
Для API-клієнтів, що схвалюють або підписують сертифікати:
status.conditions не може містити дублюються типи
status.conditions[*].status тепер обовʼязкове
status.certificate повинно бути в кодуванні PEM та містити лише блоки CERTIFICATE
Lease
Версія API coordination.k8s.io/v1beta1 для Lease більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API coordination.k8s.io/v1, доступну з версії v1.14.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Немає помітних змін
Ingress
Версії API extensions/v1beta1 та networking.k8s.io/v1beta1 для Ingress більше не обслуговуються з версії v1.22.
Перенесіть маніфести та клієнти API на версію API networking.k8s.io/v1, доступну з версії v1.19.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Помітні зміни:
Поле spec.backend перейменовано на spec.defaultBackend
Поле serviceName бекенду перейменовано на service.name
Числові поля servicePort бекенду перейменовані на service.port.number
Рядкові поля servicePort бекенду перейменовані на service.port.name
pathType тепер обовʼязковий для кожного вказаного шляху. Варіанти — Prefix, Exact, та ImplementationSpecific. Для відповідності невизначеній поведінці v1beta1 використовуйте ImplementationSpecific.
IngressClass
Версія API networking.k8s.io/v1beta1 для IngressClass більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API networking.k8s.io/v1, доступну з версії v1.19.
Усі наявні обʼєкти, які зберігаються, доступні через новий API
Немає помітних змін
Ресурси RBAC
Версія API rbac.authorization.k8s.io/v1beta1 для ClusterRole, ClusterRoleBinding,
Role та RoleBinding більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API rbac.authorization.k8s.io/v1, доступну з версії v1.8.
Усі наявні обʼєкти, які зберігаються, доступні через нові API
Немає помітних змін
PriorityClass
Версія API scheduling.k8s.io/v1beta1 для PriorityClass більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API scheduling.k8s.io/v1, доступну з версії v1.14.
Усі наявні обʼєкти, які зберігаються, доступні через новий API.
Немає помітних змін.
Ресурси зберігання
Версія API storage.k8s.io/v1beta1 для CSIDriver, CSINode, StorageClass та VolumeAttachment більше не обслуговується з версії v1.22.
Перенесіть маніфести та клієнти API на версію API storage.k8s.io/v1
CSIDriver доступний у storage.k8s.io/v1 починаючи з версії v1.19.
CSINode доступний у storage.k8s.io/v1 починаючи з версії v1.17.
StorageClass доступний у storage.k8s.io/v1 починаючи з версії v1.6.
VolumeAttachment доступний у storage.k8s.io/v1 з версії v1.13.
Усі наявні обʼєкти, які зберігаються, доступні через нові API.
Немає помітних змін.
v1.16
Випуск v1.16 припинив обслуговування наступних застарілих версій API:
Мережева політика
Версія API extensions/v1beta1 для NetworkPolicy більше не обслуговується з версії v1.16.
Перенесіть маніфести та клієнти API на версію API networking.k8s.io/v1, доступну з версії v1.8.
Усі наявні обʼєкти, які зберігаються, доступні через новий API.
DaemonSet
Версії API extensions/v1beta1 та apps/v1beta2 для DaemonSet більше не обслуговуються з версії v1.16.
Перенесіть маніфести та клієнти API на версію API apps/v1, доступну з версії v1.9.
Усі наявні обʼєкти, які зберігаються, доступні через новий API.
Помітні зміни:
spec.templateGeneration видалено.
spec.selector тепер є обовʼязковим і незмінним після створення; використовуйте наявні мітки шаблону як селектор для безшовного оновлення.
spec.updateStrategy.type тепер стандартно встановлено на RollingUpdate
(стандартно в extensions/v1beta1 було OnDelete).
Deployment
Версії API extensions/v1beta1, apps/v1beta1 та apps/v1beta2 для Deployment більше не обслуговуються з версії v1.16.
Перенесіть маніфести та клієнти API на версію API apps/v1, доступну з версії v1.9.
Усі наявні обʼєкти, які зберігаються, доступні через новий API.
Помітні зміни:
spec.rollbackTo видалено.
spec.selector тепер є обовʼязковим і незмінним після створення; використовуйте наявні мітки шаблону як селектор для безшовного оновлення.
spec.progressDeadlineSeconds тепер стандартно встановлено на 600 секунд
(стандартно в extensions/v1beta1 було без крайнього терміну).
spec.revisionHistoryLimit тепер стандартно встановлено на 10
(стандартно в apps/v1beta1 було 2, стандартно в extensions/v1beta1 було зберігати всі).
maxSurge та maxUnavailable тепер стандартно встановлено на 25%
(стандартно в extensions/v1beta1 було 1).
StatefulSet
Версії API apps/v1beta1 та apps/v1beta2 для StatefulSet більше не обслуговуються з версії v1.16.
Перенесіть маніфести та клієнти API на версію API apps/v1, доступну з версії v1.9.
Усі наявні обʼєкти, які зберігаються, доступні через новий API.
Помітні зміни:
spec.selector тепер є обовʼязковим і незмінним після створення; використовуйте наявні мітки шаблону як селектор для безшовного оновлення.
spec.updateStrategy.type тепер стандартно встановлено на RollingUpdate (в apps/v1beta1 було OnDelete).
ReplicaSet
Версії API extensions/v1beta1, apps/v1beta1 та apps/v1beta2 для ReplicaSet більше не обслуговуються з версії v1.16.
Перенесіть маніфести та клієнти API на версію API apps/v1, доступну з версії v1.9.
Усі наявні обʼєкти, які зберігаються, доступні через новий API.
Помітні зміни:
spec.selector тепер є обовʼязковим і незмінним після створення; використовуйте наявні мітки шаблону як селектор для безшовного оновлення.
PodSecurityPolicy
Версія API extensions/v1beta1 для PodSecurityPolicy більше не обслуговується з версії v1.16.
Перенесіть маніфести та клієнти API на версію API policy/v1beta1, доступну з версії v1.10.
Зауважте, що версія API policy/v1beta1 для PodSecurityPolicy буде видалена у версії v1.25.
Що робити
Тестування з вимкненими застарілими API
Ви можете протестувати свої кластери, запустивши API сервер зі конкретними вимкненими версіями API, щоб змоделювати майбутні видалення. Додайте наступний прапорець до аргументів запуску API сервера:
Це перетворення може використовувати не ідеальні стандартні значення. Щоб дізнатися більше про конкретний ресурс, зверніться до довідника API Kubernetes.
Примітка:
Інструмент kubectl convert не стандартно встановлюється, хоча раніше він був частиною самого kubectl. Для отримання додаткової інформації ви можете прочитати питання про застарілість та видалення для вбудованої підкоманди.
Щоб дізнатися, як налаштувати kubectl convert на вашому компʼютері, відвідайте сторінку, яка відповідає вашій операційній системі:
Linux,
macOS або
Windows.
2.8 - Точки доступу для моніторингу стану API Kubernetes
API сервер Kubernetes надає точки доступу API для індикації поточного стану API сервера. Ця сторінка описує ці точки доступу API та пояснює, як ви можете їх використовувати.
Точки доступу API для моніторингу стану
API сервер Kubernetes надає 3 точки доступу API (healthz, livez і readyz) для індикації поточного стану API сервера. Точка доступу healthz є застарілою (з Kubernetes v1.16), і ви повинні використовувати більш конкретні точки доступу livez та readyz. Точку доступу livez можна використовувати з прапорцем--livez-grace-period, щоб вказати тривалість запуску. Для належного завершення роботи ви можете вказати прапорець--shutdown-delay-duration з точкою доступу /readyz. Машини, що перевіряють healthz/livez/readyz API сервера, повинні покладатися на HTTP-код статусу. Код статусу 200 вказує, що API сервер є healthy/live/ready, залежно від викликаної точки доступу.
Ці точки доступу відповідають принципу роботи HTTP-проб Kubernetes:
livez: використовуйте цей параметр, щоб визначити, чи потрібно перезапустити API-сервер. Якщо /livez повертає код статусу помилки (наприклад, 500), API-сервер, ймовірно, перебуває в стані, який неможливо відновити, наприклад, у стані блокування, і потребує перезапуску.
readyz: використовуйте це, щоб визначити, чи готовий API-сервер приймати трафік. Якщо /readyz повертає код статусу помилки, це означає, що сервер все ще ініціалізується або тимчасово не може обслуговувати запити (наприклад, чекає на доступність etcd), і трафік слід перенаправити від нього.
Більш докладні опції, показані нижче, призначені для використання людьми-операторами для налагодження їх кластера або розуміння стану API сервера.
Наступні приклади покажуть, як ви можете взаємодіяти з точками доступу моніторингу стану API.
Для всіх точок доступу ви можете використовувати параметр verbose, щоб вивести перевірки та їхній стан. Це може бути корисно для оператора-людини для налагодження поточного стану API сервера, це не призначено для використання машинами:
curl -k https://localhost:6443/livez?verbose
або з віддаленого хосту з автентифікацією:
kubectl get --raw='/readyz?verbose'
Вивід буде виглядати наступним чином:
[+]ping ok
[+]log ok
[+]etcd ok
[+]poststarthook/start-kube-apiserver-admission-initializer ok
[+]poststarthook/generic-apiserver-start-informers ok
[+]poststarthook/start-apiextensions-informers ok
[+]poststarthook/start-apiextensions-controllers ok
[+]poststarthook/crd-informer-synced ok
[+]poststarthook/bootstrap-controller ok
[+]poststarthook/rbac/bootstrap-roles ok
[+]poststarthook/scheduling/bootstrap-system-priority-classes ok
[+]poststarthook/start-cluster-authentication-info-controller ok
[+]poststarthook/start-kube-aggregator-informers ok
[+]poststarthook/apiservice-registration-controller ok
[+]poststarthook/apiservice-status-available-controller ok
[+]poststarthook/kube-apiserver-autoregistration ok
[+]autoregister-completion ok
[+]poststarthook/apiservice-openapi-controller ok
healthz check passed
API сервер Kubernetes також підтримує виключення конкретних перевірок. Параметри запиту також можна комбінувати, як у цьому прикладі:
[+]ping ok
[+]log ok
[+]etcd excluded: ok
[+]poststarthook/start-kube-apiserver-admission-initializer ok
[+]poststarthook/generic-apiserver-start-informers ok
[+]poststarthook/start-apiextensions-informers ok
[+]poststarthook/start-apiextensions-controllers ok
[+]poststarthook/crd-informer-synced ok
[+]poststarthook/bootstrap-controller ok
[+]poststarthook/rbac/bootstrap-roles ok
[+]poststarthook/scheduling/bootstrap-system-priority-classes ok
[+]poststarthook/start-cluster-authentication-info-controller ok
[+]poststarthook/start-kube-aggregator-informers ok
[+]poststarthook/apiservice-registration-controller ok
[+]poststarthook/apiservice-status-available-controller ok
[+]poststarthook/kube-apiserver-autoregistration ok
[+]autoregister-completion ok
[+]poststarthook/apiservice-openapi-controller ok
[+]shutdown ok
healthz check passed
Індивідуальні перевірки стану
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [alpha]
Кожна індивідуальна перевірка стану надає HTTP точку доступу і може бути перевірена індивідуально. Схема для індивідуальних перевірок стану — /livez/<healthcheck-name> або /readyz/<healthcheck-name>, де livez і readyz можуть бути використані для індикації, чи ви хочете перевірити liveness або readiness API сервера відповідно. Шлях <healthcheck-name> можна знайти, використовуючи прапорець verbose вище та шлях між [+] та ok. Ці індивідуальні перевірки стану не повинні використовуватися машинами, але можуть бути корисні для оператора-людини для налагодження системи:
На цій сторінці наведено огляд автентифікації в Kubernetes, з акцентом на автентифікацію в Kubernetes API.
Користувачі в Kubernetes
У всіх кластерах Kubernetes є дві категорії користувачів: службові облікові записи, які керуються Kubernetes, і звичайні користувачі.
Припускається, що незалежна від кластера служба керує звичайними користувачами наступними способами:
адміністратор розповсюджує приватні ключі
сховище користувачів, таке як Keystone або Google Accounts
файл зі списком імен користувачів та паролів
У цьому відношенні Kubernetes не має обʼєктів, які представляють звичайні облікові записи користувачів. Звичайні користувачі не можуть бути додані до кластера через API виклик.
Хоча звичайного користувача не можна додати через API виклик, будь-який користувач, який предʼявляє дійсний сертифікат, підписаний центром сертифікації (CA) кластера, вважається автентифікованим. У цій конфігурації Kubernetes визначає імʼя користувача з поля загального імені (CN) у сертифікаті (наприклад, "/CN=bob"). Після цього підсистема контролю доступу на основі ролей (RBAC) визначає, чи авторизований користувач для виконання певної операції з ресурсом.
На відміну від цього, службові облікові записи є користувачами, якими керує Kubernetes API. Вони привʼязані до певних просторів імен і створюються автоматично API сервером або вручну через API виклики. Службові облікові записи привʼязані до набору облікових даних, збережених як Secrets, які монтуються в Podʼи, що дозволяє процесам всередині кластера взаємодіяти з Kubernetes API.
API запити привʼязані або до звичайного користувача, або до службово облікового запису, або обробляються як анонімні запити. Це означає, що кожен процес всередині або поза кластером, від користувача, який вводить kubectl на робочій станції, до kubelets на вузлах, до членів панелі управління, повинен автентифікуватися при виконанні запитів до API сервера, або бути обробленим як анонімний користувач.
Якщо ви намагаєтеся автентифікуватися і це вдається, API сервер автоматично позначає вас як члена спеціальної групи system:authenticated.
Стратегії автентифікації
Kubernetes використовує клієнтські сертифікати, токени на предʼявника (bearer tokens) або проксі для автентифікації (authenticating proxy) для автентифікації API запитів через втулки автентифікації. Під час виконання HTTP запитів до API сервера втулки намагаються асоціювати наступні атрибути із запитом:
Імʼя користувача: рядок, який ідентифікує кінцевого користувача. Загальноприйняті значення можуть бути kube-admin або jane@example.com.
UID: рядок, який ідентифікує кінцевого користувача та намагається бути більш стабільним і унікальним, ніж імʼя користувача.
Групи: набір рядків, кожен з яких вказує на членство користувача в певній логічній групі користувачів. Загальноприйняті значення можуть бути system:masters або devops-team.
Додаткові поля: елемент map рядків для отримання переліку рядків, що містить додаткову інформацію, яку авторизатори можуть вважати корисною.
Примітка:
Усі значення є непрозорими для системи автентифікації та мають значення лише при інтерпретації авторизатором.
Анонімні запити
Коли увімкнено, запити, які не відхиляються іншими налаштованими методами автентифікації, розглядаються як анонімні запити та отримують імʼя користувача system:anonymous і групу system:unauthenticated.
Наприклад, на сервері з налаштованою автентифікацією за допомогою токенів та увімкненим анонімним доступом, запит з недійсним токеном автентифікації отримає помилку 401 Unauthorized. Запит без токена автентифікації буде розглядатися як анонімний запит.
Анонімний доступ стандартно ввімкнено, якщо використовується режим авторизації, відмінний від AlwaysAllow; його можна вимкнути, передавши опцію командного рядка --anonymous-auth=false серверу API. Вбудовані авторизатори ABAC та RBAC вимагають явної авторизації користувача system:anonymous або групи system:unauthenticated; якщо у вас є застарілі правила політики (з Kubernetes версії 1.5 або раніше), ці застарілі правила, що надають доступ користувачеві * або групі *, не дозволяють автоматично надавати доступ анонімним користувачам.
Налаштування анонімної автентифікації
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [stable](стандартно увімкнено)
AuthenticationConfiguration можна використовувати для налаштування анонімного автентифікатора. Якщо ви встановили поле anonymous у файлі AuthenticationConfiguration, ви не можете встановити прапорець --anonymous-auth.
Основна перевага налаштування анонімного автентифікатора за допомогою конфігураційного файлу автентифікації полягає в тому, що, крім увімкнення та вимкнення анонімної автентифікації, ви також можете налаштувати, які точки доступу підтримують анонімну автентифікацію.
Ось приклад конфігураційного файлу автентифікації:
---## УВАГА: це приклад конфігурації.# Не використовуйте його для вашого власного кластера!#apiVersion:apiserver.config.k8s.io/v1kind:AuthenticationConfigurationanonymous:enabled:trueconditions:- path:/livez- path:/readyz- path:/healthz
У наведеній конфігурації лише точки доступу /livez, /readyz і /healthz доступні для анонімних запитів. Будь-які інші точки доступу будуть недоступні, навіть якщо це дозволено конфігурацією RBAC.
Методи автентифікації
Ви можете одночасно ввімкнути кілька методів автентифікації. Зазвичай вам слід використовувати принаймні два методи:
Коли увімкнено кілька модулів автентифікаторів, перший модуль, який успішно автентифікує запит, перериває подальшу оцінку. API сервер не гарантує порядок виконання автентифікаторів.
X.509 клієнтські сертифікати
Будь-який клієнт Kubernetes, який надає дійсний клієнтський сертифікат, підписаний центром сертифікації (CA) кластера client trust, вважається автентифікованим. У цій конфігурації Kubernetes визначає імʼя користувача з поля commonName в subject сертифіката (наприклад, commonName=bob представляє користувача з іменем користувача «bob»). Звідти механізми авторизації Kubernetes визначають, чи дозволено користувачеві виконувати певну операцію над ресурсом.
Автентифікація клієнтського сертифіката вмикається шляхом передачі опції --client-ca-file=<SOMEFILE> на сервер API. Ця опція налаштовує довірений центр сертифікації клієнта кластера. Посилання на файл повинно містити один або декілька центрів сертифікації, які сервер API може використовувати для перевірки клієнтських сертифікатів. Якщо клієнтський сертифікат представлений і перевірений, загальна назва субʼєкта використовується як імʼя користувача для запиту. Клієнтські сертифікати також можуть вказувати на членство користувача в групах за допомогою полів організації сертифіката. Щоб включити кілька членств у групах для користувача, додайте кілька полів організації в сертифікат.
Дивіться Управління сертифікатами, щоб дізнатися, як створити клієнтський сертифікат, або ознайомтеся з коротким прикладом далі на цій сторінці.
Сертифікати клієнтів, сумісні з Kubernetes
Ви можете предʼявити дійсний сертифікат, виданий CA в ланцюжку довіри, який API-сервер приймає для клієнтських сертифікатів, і використовувати його для автентифікації в Kubernetes. Сертифікат повинен бути дійсним; API-сервер перевіряє це на основі атрибутів X.509 notBefore і notAfter, а сертифікат повинен мати розширене використання ключа, що включає автентифікацію клієнта (ClientAuth).
Примітка:
Kubernetes 1.36 не підтримує відкликання сертифікатів. Будь-який виданий сертифікат залишається дійсним до закінчення терміну його дії.
Відповідність імені користувача
Kubernetes очікує клієнтський сертифікат, що містить атрибут commonName (OID 2.5.4.3), який використовується як імʼя користувача субʼєкта.
Відповідність ідентифікаторів користувачів
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [beta](стандартно увімкнено)
Щоб скористатися цією функцією, сертифікат повинен містити атрибут 1.3.6.1.4.1.57683.2, а також має бути увімкнено можливістьAllowParsingUserUIDFromCertAuth (стандартно увімкнено).
Kubernetes може аналізувати опціональний UID користувача з сертифіката. UID відрізняється від імені користувача; це непрозоре значення, значення якого визначається особою, яка запросила сертифікат, або тим, хто встановив правила затвердження сертифіката.
Наприклад, UID може бути 1042 (просте ціле число) в одному кластері, але інший сертифікат може використовувати d3f77937-ec82-4f16-8010-61821abe315a (UUID) як UID.
Ось приклад, що пояснює, що це означає. Якщо у вас є сертифікат із загальною назвою «Ada Lovelace», а сертифікат також має атрибут uid (OID 0.9.2342.19200300.100.1.1) із uid, встановленим на «aaking1815», Kubernetes вважає, що імʼя користувача клієнта — «Ada Lovelace»; Kubernetes ігнорує атрибут uid, оскільки це не OID, специфічний для CNCF, який шукає Kubernetes. Якщо ви хочете, щоб aaking1815 розпізнавався Kubernetes як UID, його потрібно встановити як значення атрибуту OID 1.3.6.1.4.1.57683.2 в субʼєкті сертифіката.
Відповідність групі
Ви можете віднести користувача до груп, статично включивши інформацію про групи до сертифіката. Для кожної групи, членом якої є користувач, додайте назву групи як організацію (OID 2.5.6.4) до субʼєкта вашого сертифіката. Щоб включити кілька членств у групах для одного користувача, додайте кілька організацій до суб'єкта сертифіката (порядок не має значення). Для прикладу користувача розпізнаваним іменем для сертифіката може бути CN=Ada Lovelace,O=Users,O=Staff,O=Programmers, що розмістить її в групах «Programmers», «Staff», «system:authenticated» та «Users».
Внесення інформації про групу в сертифікат є необовʼязковим; якщо ви не вказали жодної групи в сертифікаті, користувач буде членом тільки групи «system:authenticated».
Сертифікати клієнтів вузлів
Kubernetes може використовувати той самий підхід для ідентифікації вузлів; вузли є клієнтами сервера API Kubernetes, на яких запущено kubelet (також, хоча це менш актуально в даному випадку, сервер API зазвичай є клієнтом кожного вузла). Наприклад: вузол "server-1a-antarctica42" з доменним імʼям "server-1a-antarctica42.cluster.example" може використовувати сертифікат, виданий "CN=system:node:server-1a-antarctica/42,O=system:nodes". Імʼя користувача вузла тоді буде "system:node:server-1a-antarctica/g42", а вузол буде членом «system:authenticated» і «system:nodes».
Kubelet використовує сертифікат і приватний ключ вузла для автентифікації на сервері API кластера.
Примітка:
Ідентифікатори машин для вузлів не є такими самими, як ServiceAccounts.
Приклад
Ви можете використовувати openssl для створення запиту на підписання сертифіката:
# У цьому прикладі передбачається, що ви вже маєте приватний ключ alovelace.pem.openssl req -new -key alovelace.pem -out alovelace-csr.pem -subj "/CN=alovelace/O=app1/O=app2"
Це створить запит на підписання для імені користувача «alovelace», що належить до двох груп, «app1» та «app2». Потім ви можете підписати цей запит на підписання за допомогою сертифікаційного центру довіри клієнта вашого кластера, щоб отримати сертифікат, який можна використовувати для автентифікації клієнта у вашому кластері.
Bootstrap токени
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.18 [stable]
Для спрощення початкового налаштування нових кластерів, Kubernetes включає тип токена на предʼявника (bearer token), який керується динамічно, так званий Bootstrap Token. Ці токени зберігаються як Secrets у просторі імен kube-system, де ними можна динамічно керувати та створювати. Менеджер контролерів містить контролер TokenCleaner, який видаляє bootstrap токени в міру їх завершення.
Токени мають форму [a-z0-9]{6}.[a-z0-9]{16}. Перший компонент є ID токена, а другий компонент є Secret токена. Ви вказуєте токен у HTTP заголовку наступним чином:
Authorization: Bearer 781292.db7bc3a58fc5f07e
Ви повинні увімкнути Bootstrap Token Authenticator з прапорцем --enable-bootstrap-token-auth на API сервері. Ви повинні увімкнути контролер TokenCleaner за допомогою аргументу командного рядка --controllers для kube-controller-manager. Це робиться за допомогою чогось типу --controllers=*,tokencleaner. kubeadm зробить це за вас, якщо ви використовуєте його для початкового налаштування кластера.
Автентифікатор автентифікує як system:bootstrap:<Token ID>. Він включений у групу system:bootstrappers. Імена користувачів та групи навмисно обмежені, щоб перешкоджати користувачам використовувати ці токени після початкового налаштування. Імена користувачів та групи можна використовувати (і використовуються kubeadm) для створення відповідних політик авторизації для підтримки початкового налаштування кластера.
Детальнішу інформацію про автентифікатор Bootstrap Token та контролери, а також про керування цими токенами за допомогою kubeadm, дивіться у Bootstrap Tokens.
Додавання токена на предʼявника в запит
При використанні автентифікації за допомогою токена на предʼявника з HTTP-клієнта, API-сервер очікує заголовок Authorization із значенням Bearer <token>. Токен на предʼявника повинен бути послідовністю символів, яку можна ввести в значення заголовка HTTP, використовуючи лише засоби кодування та цитування HTTP. Наприклад: якщо токен на предʼявника має вигляд 31ada4fd-adec-460c-809a-9e56ceb75269, то в заголовку HTTP він буде виглядати так, як показано нижче.
Службовий обліковий запис є автоматично увімкненим автентифікатором, який використовує підписані токени на предʼявника (bearer tokens) для перевірки запитів. Втулок приймає два необовʼязкові прапорці:
--service-account-key-file Файл, що містить PEM-кодовані x509 RSA або ECDSA приватні або публічні ключі, що використовуються для перевірки токенів службових облікових записів. Вказаний файл може містити кілька ключів, і прапорець може бути вказаний кілька разів з різними файлами. Якщо не вказано, використовується --tls-private-key-file.
--service-account-lookup Якщо увімкнено, токени, які видаляються з API, будуть відкликані.
Службові облікові записи зазвичай створюються автоматично API сервером та асоціюються з Podʼами, які працюють у кластері через ServiceAccountКонтролер допуску. Токени на предʼявника (bearer tokens) монтуються в Podʼи у відомих місцях, що дозволяє процесам всередині кластера взаємодіяти з API сервером. Облікові записи можуть бути явно асоційовані з Podʼами, використовуючи поле serviceAccountName у PodSpec.
Примітка:
serviceAccountName зазвичай опускається, оскільки це робиться автоматично.
apiVersion:apps/v1# ця apiVersion актуальна станом з Kubernetes 1.9kind:Deploymentmetadata:name:nginx-deploymentnamespace:defaultspec:replicas:3template:metadata:# ...spec:serviceAccountName:bob-the-botcontainers:- name:nginximage:nginx:1.14.2
Токени на предʼявника службових облікових записів (bearer tokens) є цілком дійсними для використання за межами кластера і можуть бути використані для створення ідентичностей для тривалих завдань, які бажають взаємодіяти з API Kubernetes. Щоб вручну створити службовий обліковий запис, використовуйте команду kubectl create serviceaccount (NAME). Це створює службовий обліковий запис у поточному просторі імен.
Підписаний JWT може бути використаний як токен на предʼявника (bearer token) для автентифікації як вказаний службовий обліковий запис. Дивіться вище для інформації про те, як токен включається у запит. Зазвичай ці токени монтуються в Podʼи для доступу до API сервера всередині кластера, але можуть бути використані й ззовні кластера.
Службові облікові записи автентифікуються з імʼям користувача system:serviceaccount:(NAMESPACE):(SERVICEACCOUNT), і належать групам system:serviceaccounts та system:serviceaccounts:(NAMESPACE).
Попередження:
Оскільки токени службових облікових записів також можуть зберігатися в обʼєктах Secret API, будь-який користувач з правами на запис до Secrets може запитати токен, і будь-який користувач з правами на читання до тих Secrets може автентифікуватися як службовий обліковий запис. Будьте обережні при наданні дозволів на службові облікові записи та можливості читання або запису для Secrets.
Інтеграція з іншими протоколами автентифікації (наприклад: LDAP, SAML, Kerberos, альтернативні схеми X.509) може бути здійснена за допомогою проксі-сервера автентифікації або шляхом інтеграції з веб-хуком автентифікації.
Ви також можете використовувати будь-який власний метод, який видає клієнтські сертифікати X.509 клієнтам, за умови, що API-сервер довірятиме дійсним сертифікатам. Прочитайте Клієнтські сертифікати X.509, щоб дізнатися, як створити сертифікат.
Якщо ви випускаєте сертифікати для клієнтів, ви (як адміністратор хмарної платформи) повинні переконатися, що термін дії сертифіката та інші ваші проєктні рішення забезпечують належний рівень безпеки.
Автентифікація з JSON Web Token
Ви можете налаштувати Kubernetes для автентифікації користувачів за допомогою токенів, сумісних із JSON Web Token (JWT). Механізм автентифікації JWT використовується для токенів ServiceAccount, які видає сам Kubernetes, а також його можна використовувати для інтеграції з іншими джерелами ідентифікації.
Система автентифікації намагається проаналізувати необроблений токен ID і перевірити, чи він підписаний налаштованим емітентом. Для токенів, випущених зовні, відкритий ключ для перевірки підпису отримується з публічної точки доступу емітента за допомогою OIDC discovery.
Мінімальний допустимий JWT повинен містити наступні твердження:
{"iss":"https://example.com",// має збігатися з issuer.url
"aud":["my-app"],// принаймні один з елементів в issuer.audiences повинен збігатися з твердженням "aud" в наданих JWT.
"exp":1234567890,// закінчення терміну дії токена у вигляді часу Unix (кількість секунд, що минули з 1 січня 1970 року UTC)
"<username-claim>":"user"// це твердження для імені користувача, налаштоване в claimMappings.username.claim або claimMappings.username.expression
}
Тип селектора JWT egress
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [beta](стандартно увімкнено)
Поле egressSelectorType у конфігурації емітента JWT дозволяє вказати, який селектор egress слід використовувати для надсилання всього трафіку, повʼязаного з емітентом (виявлення, JWKS, розподілені заявки тощо). Для цієї функції необхідно ввімкнути функцію StructuredAuthenticationConfigurationEgressSelector.
Токени OpenID Connect
OpenID Connect — це варіант OAuth2, підтримуваний деякими провайдерами OAuth2, зокрема Microsoft Entra ID, Salesforce та Google. Головне розширення протоколу OAuth2 полягає в додатковому полі, яке повертається разом із токеном доступу, називається ID Token. Цей токен є JSON Web Token (JWT) з добре відомими полями, такими як електронна пошта користувача, підписаними сервером.
Для ідентифікації користувача автентифікатор використовує id_token (а не access_token) з відповіді токена OAuth2 як токен носія. Дивіться вище для того, як токен включається у запит.
sequenceDiagram
participant user as Користувач
participant idp as Провайдер ідентичності
participant kube as kubectl
participant api as Сервер API
user ->> idp: 1. Вхід до Провайдера ідентичності
activate idp
idp -->> user: 2. Надання access_token, id_token та refresh_token
deactivate idp
activate user
user ->> kube: 3. Виклик kubectl з --token, що є id_token АБО додавання токенів до .kube/config
deactivate user
activate kube
kube ->> api: 4. Authorization: Bearer...
deactivate kube
activate api
api ->> api: 5. Чи є підпис JWT дійсним?
api ->> api: 6. Чи не минув термін дії JWT? (iat+exp)
api ->> api: 7. Чи авторизований користувач?
api -->> kube: 8. Авторизовано: Виконання дії та повернення результату
deactivate api
activate kube
kube --x user: 9. Повернення результату
deactivate kube
Увійдіть до свого провайдера ідентифікації.
Ваш провайдер ідентифікації надасть вам access_token, id_token та refresh_token.
При використанні kubectl використовуйте свій id_token з аргументом командного рядка --token або додайте його безпосередньо до свого kubeconfig.
kubectl надсилає ваш id_token у заголовку Authorization до сервера API.
Сервер API перевіряє, чи є підпис JWT дійсним.
Перевіряє, чи не минув термін дії id_token.
Виконує перевірку вимог та/або користувача, якщо з AuthenticationConfiguration налаштовані вирази CEL.
Переконується, що користувач авторизований.
Після авторизації сервер API повертає відповідь kubectl.
kubectl надає зворотній звʼязок користувачу.
Оскільки всі дані, необхідні для верифікації вашої особи, містяться в id_token, Kubernetes не потрібно "дзвонити додому" до провайдера ідентичності. У моделі, де кожен запит є stateless, це забезпечує дуже масштабоване рішення для автентифікації. Це має кілька викликів:
Kubernetes не має "вебінтерфейсу" для ініціювання процесу автентифікації. Немає оглядача або інтерфейсу для збору облікових даних, тому вам потрібно спочатку автентифікуватися у свого провайдера ідентичності.
id_token не можна відкликати, він схожий на сертифікат, тому він повинен бути короткостроковим (лише кілька хвилин), що може бути дуже незручним, оскільки потрібно отримувати новий токен кожні кілька хвилин.
Для автентифікації в панелі управління Kubernetes, ви повинні використовувати команду kubectl proxy або зворотний проксі, який вставляє id_token.
Налаштування сервера API
Використання аргументів командного рядка
Щоб увімкнути втулок, налаштуйте наступні аргументи командного рядка на сервері API:
Параметр
Опис
Приклад
Обовʼязковий
--oidc-issuer-url
URL провайдера, який дозволяє серверу API знаходити публічні ключі підпису. Приймаються лише URL-адреси, що використовують схему https://. Це зазвичай URL виявлення провайдера, змінений на порожній шлях
Якщо URL виявлення OIDC провайдера https://accounts.provider.example/.well-known/openid-configuration, значення повинно бути https://accounts.provider.example
Так
--oidc-client-id
Ідентифікатор клієнта, для якого мають бути видані всі токени.
kubernetes
Так
--oidc-username-claim
JWT вимога для використання як імені користувача. Стандартно sub, яке очікується що має бути унікальним ідентифікатором кінцевого користувача. Адміністратори можуть вибрати інші вимоги, такі як email або name, залежно від свого провайдера. Однак, вимоги, відмінні від email, будуть мати префікс URL провайдера, щоб уникнути зіткнень назв з іншими втулками.
sub
Ні
--oidc-username-prefix
Префікс, доданий до вимог імені користувача, щоб уникнути зіткнень з наявними іменами (наприклад, користувачами system:). Наприклад, значення oidc: створить імена користувачів, такі як oidc:jane.doe. Якщо цей аргумент не вказано, і значення --oidc-username-claim відрізняється від email, стандартний префікс ( Issuer URL )#, де ( Issuer URL ) — це значення --oidc-issuer-url. Значення - можна використовувати для відключення всіх префіксів.
oidc:
Ні
--oidc-groups-claim
JWT вимога для використання як групи користувача. Якщо вимога присутня, вона повинна бути масивом рядків.
groups
Ні
--oidc-groups-prefix
Префікс, доданий до вимог груп, щоб уникнути зіткнень з наявними назвами (наприклад, групами system:). Наприклад, значення oidc: створить назви груп, такі як oidc:engineering та oidc:infra.
oidc:
Ні
--oidc-required-claim
Пара ключ=значення, яка описує обовʼязкову вимогу в ID Token. Якщо встановлено, вимога перевіряється на наявність в ID Token з відповідним значенням. Повторіть цей аргумент, щоб вказати кілька вимог.
claim=value
Ні
--oidc-ca-file
Шлях до сертифіката для ЦС, який підписав вебсертифікат вашого провайдера ідентичності. Стандартно використовується кореневий ЦС хосту.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [stable](стандартно увімкнено)
Підхід з використанням конфігураційного файлу дозволяє налаштовувати декілька JWT автентифікаторів, кожен з унікальними issuer.url та issuer.discoveryURL. Конфігураційний файл навіть дозволяє використовувати CEL вирази для зіставлення тверджень на атрибути користувача, а також для перевірки тверджень та інформації про користувача. API сервер також автоматично перезавантажує автентифікатори при зміні конфігураційного файлу. Ви можете використовувати метрику apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds для моніторингу часу останнього перезавантаження конфігурації сервером API.
Необхідно вказати шлях до конфігураційного файлу автентифікації використовуючи аргумент командного рядка --authentication-config для сервера API. Якщо ви хочете використовувати аргументи командного рядка замість конфігураційного файлу, вони продовжать працювати як раніше. Щоб отримати нові можливості, такі як налаштування декількох автентифікаторів, встановлення декількох аудиторій для одного видавця, перейдіть на використання конфігураційного файлу.
Для Kubernetes версії v1.36, формат файлу структурованої конфігурації автентифікації є на рівні бета-версії, і механізм використання цієї конфігурації також є на рівні бета-версії. За умови, що ви не вимкнули спеціально функційну можливістьStructuredAuthenticationConfiguration для вашого кластера, ви можете увімкнути структуровану автентифікацію, вказавши аргумент командного рядка --authentication-config для kube-apiserver. Приклад файлу конфігурації структурованої автентифікації наведено нижче.
Примітка:
Якщо ви вкажете --authentication-config разом з будь-якими аргументами командного рядка --oidc-*, це є некоректною конфігурацією. У цій ситуації сервер API повідомить про помилку й одразу завершить роботу. Якщо ви хочете перейти на використання структурованої конфігурації автентифікації, вам потрібно видалити аргументи командного рядка --oidc-* і використовувати конфігураційний файл замість них.
---## УВАГА: це приклад конфігурації.# Не використовуйте це для вашого кластера!#apiVersion:apiserver.config.k8s.io/v1kind:AuthenticationConfiguration# список автентифікаторів для автентифікації користувачів Kubernetes за допомогою токенів, що відповідають стандарту JWT.# максимальна кількість дозволених автентифікаторів – 64.jwt:- issuer:# URL має бути унікальним для всіх автентифікаторів.# URL не повинен конфліктувати з видавцем, налаштованим у --service-account-issuer.url:https://example.com# Те ж саме, що і --oidc-issuer-url.# discoveryURL, якщо вказано, замінює URL, що використовується для отримання інформації про виявлення,# замість використання "{url}/.well-known/openid-configuration".# Точно вказане значення використовується, тому "/.well-known/openid-configuration"# має бути включено у discoveryURL, якщо це потрібно.## Поле "issuer" у отриманій інформації про виявлення має збігатися з полем "issuer.url"# в AuthenticationConfiguration і буде використовуватися для перевірки твердження "iss" у наданих JWT.# Це для сценаріїв, коли точки доступу well-known та jwks розміщені в іншому# місці, ніж видавець (наприклад, локально в кластері).# discoveryURL має відрізнятися від URL, якщо вказано, і має бути унікальним для всіх автентифікаторів.discoveryURL:https://discovery.example.com/.well-known/openid-configuration# PEM-кодовані сертифікати CA, які використовуються для перевірки підключення при отриманні# інформації про виявлення. Якщо не вказано, буде використовуватися системний перевіряючий.# Те саме значення, що і вміст файлу, на який посилається аргумент командного рядка --oidc-ca-file.certificateAuthority:<PEM-кодовані сертифікати CA># audiences – це набір прийнятних аудиторій, для яких повинен бути виданий JWT.# Принаймні один з елементів повинен збігатися з твердженням "aud" у наданих JWT.audiences:- my-app# Те ж саме, що і --oidc-client-id.- my-other-app# це повинно бути встановлено на "MatchAny", коли вказано кілька аудиторій.audienceMatchPolicy:MatchAny# egressSelectorType є індикатором того, який селектор виходу має використовуватися для надсилання всього трафіку, повʼязаного з# цим видавцем (виявлення, JWKS, розподілені твердження тощо). Якщо не вказано, не використовується жоден спеціальний набір.# Перед використанням поля egressSelectorType необхідно увімкнути функцію# StructuredAuthenticationConfigurationEgressSelector.# Коли вказано, допустимі варіанти - "controlplane" і "cluster". Це відповідає асоційованим# значенням у --egress-selector-config-file.# - controlplane: для трафіку, призначеного для контрольної площини.# - cluster: для трафіку, призначеного для системи, що керується Kubernetes.egressSelectorType:<egress-selector-type># правила, що застосовуються для перевірки тверджень токена для автентифікації користувачів.claimValidationRules:# Те ж саме, що і --oidc-required-claim key=value.- claim:hdrequiredValue:example.com# Замість claim та requiredValue, ви можете використовувати expression для перевірки твердження.# expression – це вираз CEL, який оцінюється до булевого значення.# всі вирази повинні бути true для успішної перевірки.- expression:'claims.hd == "example.com"'# Повідомлення налаштовує повідомлення про помилку, яке відображається в логах сервера API, коли перевірка не вдається.message:вимога hd має бути встановлена на example.com- expression:'claims.exp - claims.nbf <= 86400'message:загальний час життя токена не повинен перевищувати 24 годиниclaimMappings:# username представляє опцію для атрибута імені користувача.# Це єдиний обовʼязковий атрибут.username:# Те ж саме, що і --oidc-username-claim. Взаємовиключно з username.expression.claim:"sub"# Те ж саме, що і --oidc-username-prefix. Взаємовиключно з username.expression.# якщо username.claim встановлено, username.prefix обовʼязково має бути встановлено.# Встановіть значення "" явно, якщо префікс не потрібен.prefix:""# Взаємовиключно з username.claim і username.prefix.# expression – це вираз CEL, який оцінюється як рядок.## 1. Якщо у виразі username.expression використовується 'claims.email', то 'claims.email_verified' має бути використано у# username.expression або extra[*].valueExpression або claimValidationRules[*].expression.# Приклад виразу правила валідації вимоги, який автоматично збігається з валідацією# застосовується, коли username.claim має значення 'email' - 'claims.?email_verified.orValue(true) == true'.# Явно порівнюючи значення з true, ми дозволяємо перевірці типів побачити, що результат буде булевим, і# щоб переконатися, що небулевий email_verified буде перехоплено під час виконання.# 2. Якщо імʼя користувача, що оцінюється на основі виразу username.expression, є порожнім рядком, запит на автентифікацію# запит не буде виконано.expression:'claims.username + ":external-user"'# groups представляє опцію для атрибута групи.groups:# Те ж саме, що і --oidc-groups-claim. Взаємовиключно з groups.expression.claim:"sub"# Те ж саме, що і --oidc-groups-prefix. Взаємовиключно з groups.expression.# якщо groups.claim встановлено, groups.prefix обовʼязково має бути встановлено.# Встановіть значення "" явно, якщо префікс не потрібен.prefix:""# Взаємовиключно з groups.claim і groups.prefix.# expression – це вираз CEL, який оцінюється як рядок або список рядків.expression:'claims.roles.split(",")'# uid представляє опцію для атрибута унікального ідентифікатора.uid:# Взаємовиключно з uid.expression.claim:"sub"# Взаємовиключно з uid.claim.# expression – це вираз CEL, який оцінюється як рядок.expression:'claims.uid'# екстра атрибути для додавання до обʼєктв UserInfo. Ключі мають бути у вигляді шляху з префіксом домену та бути унікальними.extra:- key:"example.com/tenant"# valueExpression – це вираз CEL, який оцінюється як рядок або список рядків.valueExpression:'claims.tenant'# правила валідації, що застосовуються до фінального обʼєкта користувача.userValidationRules:# expression – це вираз CEL, який оцінюється до булевого значення.# всі вирази повинні бути true для успішної перевірки.- expression:"!user.username.startsWith('system:')"# message налаштовує повідомлення про помилку, яке відображається в логах сервера API, коли перевірка не вдається.message:'неможна використовувате це імʼя користувача, зарезервовано префіксом system:'- expression:"user.groups.all(group, !group.startsWith('system:'))"message:'неможна використовувате цю назву групи, зарезервовано префіксом system:'
Вираз правил валідації твердження (claim)
jwt.claimValidationRules[i].expression представляє вираз, який буде оцінений CEL. Вирази CEL мають доступ до вмісту корисного навантаження токена, організованого у змінну CEL claims.
claims - це карта імен тверджень (як рядків) до значень тверджень (будь-якого типу).
Вираз правила валідації користувача
jwt.userValidationRules[i].expression представляє вираз, який буде оцінений CEL. Вирази CEL мають доступ до вмісту userInfo, організованого у змінну CEL user. Зверніться до UserInfo API документації для отримання схеми user.
Вираз зіставлення твердження
jwt.claimMappings.username.expression, jwt.claimMappings.groups.expression, jwt.claimMappings.uid.expressionjwt.claimMappings.extra[i].valueExpression представляє вираз, який буде оцінений CEL. Вирази CEL мають доступ до вмісту корисного навантаження токена, організованого у змінну CEL claims. claims — зіствлення імен тверджень (як рядків) до значень тверджень (будь-якого типу).
apiVersion:apiserver.config.k8s.io/v1kind:AuthenticationConfigurationjwt:- issuer:url:https://example.comaudiences:- my-appclaimMappings:username:expression:'claims.username + ":external-user"'groups:expression:'claims.roles.split(",")'uid:expression:'claims.sub'extra:# key - рядок, який буде використано як додатковий атрибут key.# key має бути шляхом з префіксом домену (наприклад, example.org/foo). Всі символи перед першим "/" повинні бути дійсними# субдомену, як визначено в RFC 1123. Всі символи після першого "/" повинні# бути дійсними символами HTTP-шляху, як визначено в RFC 3986.# k8s.io, kubernetes.io та їх субдомени зарезервовані для використання в Kubernetes і не можуть бути використані.# ключ має бути рядковим та унікальним для всіх додаткових атрибутів.- key:'example.com/tenant'valueExpression:'claims.tenant'userValidationRules:- expression:"!user.username.startsWith('system:')"# вибарз буде оцінений як true, тоож валідація пройде успішно.message: 'username cannot used reserved system:prefix'
apiVersion:apiserver.config.k8s.io/v1kind:AuthenticationConfigurationjwt:- issuer:url:https://example.comaudiences:- my-appclaimValidationRules:- expression:'claims.hd == "example.com"'# маркер нижче не має цього твердження, тому перевірка не вдасться.message:the hd claim must be set to example.comclaimMappings:username:expression:'claims.username + ":external-user"'groups:expression:'claims.roles.split(",")'uid:expression:'claims.sub'extra:- key:'example.com/tenant'valueExpression:'claims.tenant'userValidationRules:- expression:"!user.username.startsWith('system:')"# tвибарз буде оцінений як true, тоож валідація пройде успішно.message: 'username cannot used reserved system:prefix'
Токен із зазначеною вище AuthenticationConfiguration не зможе автентифікуватись, оскільки твердження hd не має значення example.com. Сервер API поверне помилку 401 Unauthorized.
apiVersion:apiserver.config.k8s.io/v1kind:AuthenticationConfigurationjwt:- issuer:url:https://example.comaudiences:- my-appclaimValidationRules:- expression:'claims.hd == "example.com"'message:the hd claim must be set to example.comclaimMappings:username:expression:'"system:" + claims.username'# це призведе до додавання префіксу "system:" до імені користувача і не пройде перевірку.groups:expression:'claims.roles.split(",")'uid:expression:'claims.sub'extra:- key:'example.com/tenant'valueExpression:'claims.tenant'userValidationRules:- expression:"!user.username.startsWith('system:')"# імʼя користувача буде system:foo, а вираз матиме значення false, тому перевірка не вдасться.message: 'username cannot used reserved system:prefix'
який не пройде перевірку користувача, оскільки ім’я користувача починається з system:. Сервер API поверне помилку 401 Unauthorized.
Обмеження
Розподілені твердження не працюють через вирази CEL.
Kubernetes не надає постачальника ідентифікаційних даних OpenID Connect. Ви можете скористатися наявним загальнодоступним постачальником ідентифікаційних даних OpenID Connect або запустити власного постачальника ідентифікаційних даних, який підтримує протокол OpenID Connect.
Для того, щоб провайдер ідентифікації працював з Kubernetes, він повинен:
Публічний ключ для перевірки підпису отримується з публічної точки доступу видавця за допомогою OIDC discovery. Якщо ви використовуєте файл конфігурації автентифікації, провайдер ідентифікації не обовʼязково має публічно відкривати точку доступу discovery. Ви можете розмістити точку доступу discovery в іншому місці, ніж видавець (наприклад, локально в кластері) і вказати issuer.discoveryURL у файлі конфігурації.
Працювати через TLS з не застарілими шифрами
Мати сертифікат, підписаний ЦС (навіть якщо ЦС не комерційний або самопідписний)
Зауваження щодо вимоги #3 вище, яка вимагає сертифікат, підписаний центром сертифікації. Якщо ви розгортаєте власного постачальника посвідчень, ви ПОВИННІ мати сертифікат вебсервера вашого постачальника посвідчень, підписаний сертифікатом з прапорцем CA, встановленим у значення TRUE, навіть якщо він самопідписний. Це повʼязано з тим, що реалізація TLS-клієнта GoLang дуже сувора до стандартів перевірки сертифікатів. Якщо у вас немає під рукою центру сертифікації, ви можете створити простий центр сертифікації і підписану пару з сертифіката і ключа за допомогою стандартних інструментів генерації сертифікатів.
Використання kubectl
Варіант 1 — Автентифікатор OIDC
Перший варіант — використання автентифікатора kubectl oidc, який встановлює id_token як токен на предʼявника для всіх запитів і оновлює токен після закінчення його терміну дії. Після того, як ви увійшли до свого провайдера, використовуйте kubectl, щоб додати ваші id_token, refresh_token, client_id та client_secret для налаштування втулка.
Провайдери, які не повертають id_token як частину відповіді на оновлення токена, не підтримуються цим втулком і повинні використовувати Варіант 2 (вказуючи --token).
kubectl config set-credentials USER_NAME \
--auth-provider=oidc \
--auth-provider-arg=idp-issuer-url=( issuer url )\
--auth-provider-arg=client-id=( your client id )\
--auth-provider-arg=client-secret=( your client secret )\
--auth-provider-arg=refresh-token=( your refresh token )\
--auth-provider-arg=idp-certificate-authority=( path to your ca certificate )\
--auth-provider-arg=id-token=( your id_token )
Як приклад, запустіть наведену нижче команду після автентифікації у постачальника ідентифікаційної інформації:
Після закінчення терміну дії вашого id_tokenkubectl спробує оновити ваш id_token за допомогою ваших refresh_token і client_secret, зберігаючи нові значення для refresh_token і id_token у вашому .kube/config.
Варіант 2 — Використання аргумента командного рядка --token
Команда kubectl дозволяє передати токен за допомогою аргумента командного рядка --token. Скопіюйте та вставте id_token у цей параметр:
kubectl --token=eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL21sYi50cmVtb2xvLmxhbjo4MDQzL2F1dGgvaWRwL29pZGMiLCJhdWQiOiJrdWJlcm5ldGVzIiwiZXhwIjoxNDc0NTk2NjY5LCJqdGkiOiI2RDUzNXoxUEpFNjJOR3QxaWVyYm9RIiwiaWF0IjoxNDc0NTk2MzY5LCJuYmYiOjE0NzQ1OTYyNDksInN1YiI6Im13aW5kdSIsInVzZXJfcm9sZSI6WyJ1c2VycyIsIm5ldy1uYW1lc3BhY2Utdmlld2VyIl0sImVtYWlsIjoibXdpbmR1QG5vbW9yZWplZGkuY29tIn0.f2As579n9VNoaKzoF-dOQGmXkFKf1FMyNV0-va_B63jn-_n9LGSCca_6IVMP8pO-Zb4KvRqGyTP0r3HkHxYy5c81AnIh8ijarruczl-TK_yF5akjSTHFZD-0gRzlevBDiH8Q79NAr-ky0P4iIXS8lY9Vnjch5MF74Zx0c3alKJHJUnnpjIACByfF2SCaYzbWFMUNat-K1PaUk5-ujMBG7yYnr95xD-63n8CO8teGUAAEMx6zRjzfhnhbzX-ajwZLGwGUBT4WqjMs70-6a7_8gZmLZb2az1cZynkFRj2BaCkVT3A2RrjeEwZEtGXlMqKJ1_I2ulrOVsYx01_yD35-rw get nodes
Автентифікація за допомогою вебхука
Вебхук автентивікації Kubernetes — є механізмом який здійснює виклик HTTP для перевірки токенів на предʼявника.
Щодо налаштування API-сервера:
--authentication-token-webhook-config-file — файл конфігурації, який описує, як отримати доступ до віддаленого сервісу вебхука.
--authentication-token-webhook-cache-ttl — як довго кешувати рішення щодо автентифікації. Стандартно дві хвилини.
--authentication-token-webhook-version визначає, чи використовувати authentication.k8s.io/v1beta1 або authentication.k8s.io/v1
обʼєкти TokenReview для надсилання/отримання інформації від вебхука. Стандартно v1beta1.
Файл конфігурації використовує формат файлу kubeconfig. У файлі clusters посилається на віддалений сервіс, а
users посилається на вебхук API-сервера. Приклад:
# Версія API KubernetesapiVersion:v1# Тип обʼєкта APIkind:Config# clusters посилається на віддалений сервіс.clusters:- name:name-of-remote-authn-servicecluster:certificate-authority:/path/to/ca.pem # ЦС для перевірки віддаленого сервісу.server:https://authn.example.com/authenticate# URL віддаленого сервісу для запиту. 'https' рекомендовано для промислового застосування.# users посилається на конфігурацію вебхука API-сервера.users:- name:name-of-api-serveruser:client-certificate:/path/to/cert.pem# сертифікат для використання втулком вебхукаclient-key:/path/to/key.pem # ключ, що відповідає сертифікату# файли kubeconfig потребують контексту. Надати один для API-сервера.current-context:webhookcontexts:- context:cluster:name-of-remote-authn-serviceuser:name-of-api-servername:webhook
Коли клієнт намагається автентифікуватись на API-сервері за допомогою токена на предʼявника, як розглядалось вище, вебхук автентифікації надсилає POST-запит з JSON-серіалізованим обʼєктом TokenReview, що містить токен для віддаленого сервісу.
Зверніть увагу, що обʼєкти API вебхука підпадають під ті ж правила сумісності версій, що й інші обʼєкти API Kubernetes. Виконавці повинні перевірити поле apiVersion запиту, щоб забезпечити правильну десеріалізацію, і повинні відповідати обʼєктом TokenReview тієї ж версії, що й запит.
API-сервер Kubernetes типово надсилає запити authentication.k8s.io/v1beta1 для зворотної сумісності. Щоб отримувати запити authentication.k8s.io/v1, API-сервер повинен бути запущений з параметром --authentication-token-webhook-version=v1.
{"apiVersion": "authentication.k8s.io/v1","kind": "TokenReview","spec": {# Непрозорий токен на прежʼявника носія, надісланий на API-сервер"token": "014fbff9a07c...",# Необовʼязковий список ідентифікаторів аудиторії для сервера, якому був представлений токен.# Автентифікатори токенів, що враховують аудиторію (наприклад, OIDC автентифікатори токенів)# повинні перевірити, що токен був призначений для принаймні однієї з аудиторій у цьому списку,# і повернути перетин цього списку та дійсних аудиторій для токена в статусі відповіді.# Це гарантує, що токен дійсний для автентифікації на сервері, якому він був представлений.# Якщо аудиторії не надані, токен повинен бути перевірений для автентифікації на API-сервері Kubernetes."audiences": ["https://myserver.example.com","https://myserver.internal.example.com"]}}
{"apiVersion": "authentication.k8s.io/v1beta1","kind": "TokenReview","spec": {# Непрозорий токен на предʼявника, надісланий на API-сервер"token": "014fbff9a07c...",# Необовʼязковий список ідентифікаторів аудиторії для сервера, якому був представлений токен.# Автентифікатори токенів, що враховують аудиторію (наприклад, OIDC автентифікатори токенів)# повинні перевірити, що токен був призначений для принаймні однієї з аудиторій у цьому списку,# і повернути перетин цього списку та дійсних аудиторій для токена в статусі відповіді.# Це гарантує, що токен дійсний для автентифікації на сервері, якому він був представлений.# Якщо аудиторії не надані, токен повинен бути перевірений для автентифікації на API-сервері Kubernetes."audiences": ["https://myserver.example.com","https://myserver.internal.example.com"]}}
Віддалений сервіс повинен заповнити поле status запиту, щоб вказати на успішність входу. Поле spec тіла відповіді ігнорується та може бути опущене. Віддалений сервіс повинен повернути відповідь, використовуючи ту ж версію API TokenReview, яку він отримав. Успішна перевірка маркера носія буде виглядати так:
{"apiVersion": "authentication.k8s.io/v1","kind": "TokenReview","status": {"authenticated": true,"user": {# Обовʼязково"username": "janedoe@example.com",# Необовʼязково"uid": "42",# Необовʼязкові членства у групах"groups": ["developers","qa"],# Необовʼязкова додаткова інформація, надана автентифікатором.# Це не повинно містити конфіденційних даних, оскільки це може бути записано в логах# або обʼєктах API та доступно для вебхуків допуску."extra": {"extrafield1": ["extravalue1","extravalue2"]}},# Необовʼязковий список, який можуть повернути автентифікатори токенів, що враховують аудиторію,# містить аудиторії зі списку `spec.audiences`, для яких токен був дійсним.# Якщо це опущено, токен вважається дійсним для автентифікації на API-сервері Kubernetes."audiences": ["https://myserver.example.com"]}}
{"apiVersion": "authentication.k8s.io/v1beta1","kind": "TokenReview","status": {"authenticated": true,"user": {# Обовʼязково"username": "janedoe@example.com",# Необовʼязково"uid": "42",# Необовʼязкові членства у групах"groups": ["developers","qa"],# Необовʼязкова додаткова інформація, надана автентифікатором.# Це не повинно містити конфіденційних даних, оскільки це може бути записано в логах# або обʼєктах API та доступно для вебхуків допуску."extra": {"extrafield1": ["extravalue1","extravalue2"]}},# Необовʼязковий список, який можуть повернути автентифікатори токенів, що враховують аудиторію,# містить аудиторії зі списку `spec.audiences`, для яких токен був дійсним.# Якщо це опущено, токен вважається дійсним для автентифікації на API-сервері Kubernetes."audiences": ["https://myserver.example.com"]}}
{"apiVersion": "authentication.k8s.io/v1","kind": "TokenReview","status": {"authenticated": false,# Необовʼязково включати деталі, чому автентифікація не вдалася.# Якщо помилка не вказана, API поверне загальне повідомлення Unauthorized.# Поле error ігнорується, коли authenticated=true."error": "Credentials are expired"}}
{"apiVersion": "authentication.k8s.io/v1beta1","kind": "TokenReview","status": {"authenticated": false,# Необовʼязково включати деталі, чому автентифікація не вдалася.# Якщо помилка не вказана, API поверне загальне повідомлення Unauthorized.# Поле error ігнорується, коли authenticated=true."error": "Credentials are expired"}}
Автентифікація через зворотний проксі-сервер
Попередження:
Якщо у вас є центр сертифікації (CA), який також використовується в іншому контексті, не довіряйте цьому центру сертифікації для ідентифікації проксі-клієнтів, що проходять автентифікацію, якщо ви не розумієте ризики та механізми захисту використання цього CA.
API-сервер може бути налаштований для ідентифікації користувачів на основі значень заголовків запиту, таких як X-Remote-User. Цей механізм призначений для використання в комбінації з проксі-сервером автентифікації, який встановлює значення заголовка запиту.
Використання зворотного проксі-сервера автентифікації відрізняється від імітації користувача. При імітації користувача один користувач надсилає запит до сервера API, щоб той розглядав цей запит як такий, що надсилається іншим користувачем. При використанні зворотного проксі-сервера автентифікації сервер API довіряє своєму прямому клієнту, який надає інформацію про особу, що надсилає оригінальний запит.
Для запобігання підробці заголовків, проксі-сервер автентифікації повинен представити дійсний клієнтський сертифікат на API-сервер для перевірки за допомогою вказаного CA перед тим, як заголовки запиту будуть перевірені.
Не використовуйте CA, який використовується в іншому контексті, якщо ви не розумієте ризики та механізми захисту використання CA.
Інтеграція статичного файлу токенів
Сервер API зчитує статичні токени на предʼявника з файлу, якщо в командному рядку вказано опцію --token-auth-file=<SOMEFILE>. У Kubernetes 1.36 токени діють необмежений час, і список токенів не можна змінити без перезапуску сервера API.
Файл токенів — це CSV-файл, що містить щонайменше 3 стовпці: токен, імʼя користувача, ідентифікатор користувача, а також список опціональних імен груп, розділених комами.
Примітка:
Якщо у вас більше однієї групи, стовпець повинен бути у подвійних лапках, наприклад:
token,user,uid,"group1,group2,group3"
Використання статичного файлу токенів підходить для токенів, які за своєю природою є довговічними, статичними і, можливо, ніколи не будуть замінені. Це також корисно, коли клієнт є локальним для певного сервера API в панелі управління, наприклад, агент моніторингу.
Якщо ви використовуєте цей метод під час створення кластера, а потім переходите на інший метод автентифікації, який буде використовуватися в довгостроковій перспективі, вам слід деактивувати токен, який використовувався для завантаження (для цього потрібно перезапустити кожен API-сервер).
В інших випадках, особливо коли важлива дуже швидка ротація токенів, проєкт Kubernetes рекомендує використовувати автентифікатор токенів webhook замість цього механізму.
Імперсонізація користувачів
Імперсонізація користувача надає метод, за допомогою якого користувач може діяти від імені іншого користувача через заголовки імперсонізації.
Конфігурація за допомогою аргументів командного рядка
Ви можете використовувати наступні аргументи командного рядка, щоб налаштувати спосіб автентифікації клієнтів панеллю управління вашого кластера.
У довідці командного рядка для API-сервера
більш детально описані всі відповідні аргументи командного рядка.
Конфігурація анонімної автентифікації
--anonymous-auth
Контролює, чи можуть клієнти, які не пройшли автентифікацію, надсилати запити через захищений порт API-сервера. Анонімні запити мають імʼя користувача system:anonymous та імʼя групи system:unauthenticated. Див. також анонімні запити.
Конфігурація токенів Bootstrap
--enable-bootstrap-token-auth
Якщо встановлено цей прапорець, для автентифікації можна використовувати токени Bootstrap.
Конфігурація автентифікації сертифікатів
--client-ca-file
Шлях до довірених анкерів для перевірки ідентичності клієнта, коли клієнти використовують автентифікацію сертифікатів X.509.
Конфігурація OIDC
--oidc-ca-file
Шлях до довірчих анкерів для перевірки ідентичності клієнта, коли клієнти використовують OIDC.
--oidc-client-id
Ідентифікатор клієнта для клієнта OpenID Connect.
--oidc-username-claim
Імʼя заявки JWT для вказання імені користувача. Заявка, яка використовується як імʼя користувача. Імʼя заявки у стандартному варіанті — sub, оскільки це має бути унікальний ідентифікатор кінцевого користувача. Ви можете вибрати інші заявки, наприклад email або name. Для заявок, відмінних від sub або email, kube-apiserver додає префікс до імені групи (щоб уникнути конфліктів імен).
--oidc-username-prefix
Префікс, що додається до заявки на імʼя користувача, щоб запобігти конфліктам з наявними іменами (такими як system: користувачі). Наприклад, значення oidc: створить імена користувачів, такі як oidc:jane.doe. Якщо цей аргумент не вказано, а --oidc-username-claim має значення, відмінне від email, префікс приймає стандартне значення ( Issuer URL )#, де ( Issuer URL ) — це значення --oidc-issuer-url. Ви можете вказати значення префікса як -, щоб вимкнути додавання префікса до імені користувача.
--oidc-groups-claim
Імʼя власного запиту OpenID Connect для визначення груп користувачів. Запит у токені повинен бути масивом рядків. Немає стандартного значення.
--oidc-groups-prefix
Префікс, що додається до запитів груп, щоб запобігти конфліктам з наявними іменами (такими як групи system:). Наприклад, значення oidc: створить імена груп, такі як oidc:engineering та oidc:infra. Префікс за замовчуванням — oidc:
--oidc-issuer-url
URL-адреса емітента OpenID. Схема URL-адреси повинна бути https. Якщо URL-адреса виявлення OIDC емітента — https://accounts.provider.example/.well-known/openid-configuration, значення має бути https://accounts.provider.example.
--oidc-required-claim
Заява, яка повинна бути присутня в токені, перш ніж Kubernetes автентифікує клієнта. Формат — key=value. Цей аргумент можна вказати більше ніж один раз.
Визначає аудиторію автентифікації для токенів службового облікового запису.
--service-account-extend-token-expiration
Цей прапорець увімкне передбачуване подовження терміну дії службового облікового запису під час генерації токена, що сприяє безпечному переходу від старих токенів до функції привʼязаних токенів службового облікового запису. Див. автентифікація службових облікових даних.
--service-account-issuer
Ідентифікатор емітента токена службового облікового запису. Емітент підтверджує цей ідентифікатор у запиті iss кожного виданого токена. Kubernetes рекомендує використовувати тут URL-адресу зі схемою, встановленою на https.
--service-account-jwks-uri
Перезаписує URI для JSON Web Key Set у документі виявлення, який обслуговується за адресою /.well-known/openid-configuration
--service-account-key-file
Шлях до файлу, що містить PEM-кодовані відкриті або закриті ключі X.509 (RSA або ECDSA), які використовуються для перевірки токенів ServiceAccount. Зазначений файл може містити кілька ключів, і ви можете вказати аргумент кілька разів з різними шляхами.
--service-account-lookup
Якщо true, сервер API перевіряє наявність токенів ServiceAccount в etcd як частину автентифікації.
--service-account-max-token-expiration
Максимальний термін дії токена, створеного емітентом токенів службового облікового запису, у вигляді рядка тривалості Kubernetes.
--service-account-signing-endpoint
Шлях до сокета, на якому прослуховує зовнішній підписувач JWT. Ви можете використовувати це для інтеграції із зовнішнім підписувачем токенів.
--service-account-signing-key-file
Шлях до файлу, що містить поточний приватний ключ емітента токенів службового облікового запису. Зміни, внесені до цього файлу під час роботи API-сервера, не перечитуються.
Конфігурація статичних токенів
--token-auth-file
Шлях до файлу конфігурації для статичних токенів на предʼявника. Зміни, внесені до цього файлу під час роботи API-сервера, не перечитуються.
Конфігурація автентифікації веб-хука
--authentication-token-webhook-cache-ttl
Як довго (у вигляді специфікації тривалості Kubernetes) сервер API повинен зберігати в кеші результати HTTP-викликів для перевірки токенів.
--authentication-token-webhook-config-file
Шлях до конфігурації клієнта у форматі kubeconfig, яка визначає, як API-сервер автентифікується під час виконання HTTP-викликів. Зміни, внесені до цього файлу під час роботи API-сервера, не перечитуються.
--authentication-token-webhook-version
Версія API TokenReview, яка використовується під час виконання HTTP-викликів для перевірки токенів.
Web request authentication configuration
Увага:
Перед тим, як вказати ці аргументи командного рядка, слід прочитати документацію про налаштування [проксі-сервера автентифікації] (#authenticating-proxy), оскільки там міститься важлива інформація щодо безпеки, якої необхідно дотримуватися.
--requestheader-client-ca-file
Обовʼязково. Шлях до пакета сертифікатів у форматі PEM, що містить довірені анкери для перевірки автентичності ідентичності проксі-сервера. Перед перевіркою заголовків запиту на наявність імен користувачів необхідно предʼявити дійсний сертифікат клієнта і перевірити його на відповідність вимогам центрів сертифікації, зазначених у вказаному файлі.
--requestheader-allowed-names
Необовʼязково. Розділений комами список значень загальних імен (CN). Якщо встановлено, перед перевіркою заголовків запиту на наявність імен користувачів необхідно предʼявити дійсний сертифікат клієнта із CN у вказаному списку. Якщо поле порожнє, допускаються будь-які CN.
--requestheader-username-headers
Обовʼязково; нечутливий до регістру. Імена заголовків, які слід перевірити, в зазначеному порядку, для ідентифікації користувача. Перший заголовок, що містить значення, використовується як ім'я користувача.
--requestheader-group-headers
Необов'язково; нечутливий до регістру. Імена заголовків, які слід перевірити, в зазначеному порядку, для груп користувача. Рекомендується використовувати X-Remote-Group. Усі значення у всіх зазначених заголовках використовуються як імена груп.
--requestheader-extra-headers-prefix
Необовʼязково; не чутливий до регістру. Префікси заголовків, які слід шукати для визначення додаткової інформації про користувача. Рекомендується використовувати X-Remote-Extra-. Додаткові дані зазвичай використовуються налаштованими втулками авторизації. Усі заголовки, що починаються з будь-якого із зазначених префіксів, мають префікс видалений. Решта імені заголовка перетворюється на нижній регістр і декодується у процентному форматі і стає додатковим ключем, а значення заголовка є додатковим значенням.
Конфігурація за допомогою файлу конфігурації
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [stable](стандартно увімкнено)
Коли ви вказуєте аргумент командного рядка --authentication-config для kube-apiserver, API-сервер завантажує файл за вказаним вами шляхом і використовує вміст цього файлу для налаштування автентифікації.
Вміст цього файлу можна змінювати під час роботи API-сервера, і в цьому випадку API-сервер повторно зчитує файл.
Примітка:
Зміни до цього файлу повинні вноситися атомарним способом (наприклад: запис у тимчасовий файл партнера, а потім перейменування тимчасового файлу для заміни цього файлу).
Ось приклад файлу конфігурації (структурованої) автентифікації Kubernetes:
---## УВАГА: це приклад конфігурації.# Перевірте та виправте її перед використанням у власному кластері!#apiVersion:apiserver.config.k8s.io/v1kind:AuthenticationConfigurationanonymous:enabled:false
Втулки облікових даних client-go
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.22 [stable]
k8s.io/client-go та інструменти, які використовують його, такі як kubectl та kubelet, можуть виконувати зовнішню команду для отримання облікових даних користувача.
Ця функція призначена для клієнтських інтеграцій з протоколами автентифікації, які не підтримуються на рівні k8s.io/client-go (LDAP, Kerberos, OAuth2, SAML та ін.). Вутулок реалізує логіку, специфічну для протоколу, а потім повертає непрозорі облікові дані для використання. Майже всі випадки використання втулків автентифікації потребують наявності компоненту на стороні сервера з підтримкою автентифікації токенів webhook, щоб інтерпретувати формат облікових даних, який генерується клієнтським втулком.
Примітка:
У попередніх версіях kubectl вбудовано підтримувалися автентифікація в AKS та GKE, але це більше не актуально.
Приклад використання
У гіпотетичному сценарії використання організація запускає зовнішню службу, яка обмінює облікові дані LDAP на підписані токени, специфічні для користувача. Служба також може відповідати на запити автентифікатора токенів webhook, щоб перевірити токени. Користувачам буде потрібно встановити втулок автентифікації на своїй робочій станції.
Для автентифікації в API:
Користувач видає команду kubectl.
Вутулок облікових даних запитує користувача облікові дані LDAP, обмінює облікові дані зовнішньою службою на токен.
Вутулок облікових даних повертає токен client-go, який використовує його як токен власника на сервері API.
apiVersion:v1kind:Configusers:- name:my-useruser:exec:# Команда для виконання. Обовʼязково.command:"example-client-go-exec-plugin"# Версія API, яку слід використовувати при декодуванні ресурсу ExecCredentials. Обовʼязково.## Версія API, що повертається втулком, ПОВИННА відповідати версії, вказаній тут.## Щоб інтегруватися з інструментами, які підтримують кілька версій (наприклад, client.authentication.k8s.io/v1beta1),# встановіть змінну середовища, передайте аргумент інструменту, що вказує, яку версію очікує втулка виконання,# або прочитайте версію з обʼєкта ExecCredential у змінній середовища KUBERNETES_EXEC_INFO.apiVersion:"client.authentication.k8s.io/v1"# Змінні середовища, що встановлюються під час виконання втулку. Необовʼязково.env:- name:"FOO"value:"bar"# Аргументи, які передаються під час виконання втулку. Необовʼязково.args:- "arg1"- "arg2"# Текст, який показуєтсья користувачу, коли виконуваний файл не знайдено. Необовʼязково.installHint:| example-client-go-exec-plugin потрібно для автентифікації
в поточному кластері. Його можна встановити:
На macOS: brew install example-client-go-exec-plugin
На Ubuntu: apt-get install example-client-go-exec-plugin
На Fedora: dnf install example-client-go-exec-plugin
...# Чи надавати інформацію про кластер, яка може містити# дуже великі дані сертифікату CA, цьому втулка виконання як частину KUBERNETES_EXEC_INFO# змінної середовища.provideClusterInfo:true# Угода між втулком виконання та стандартним введенням/виведенням. Якщо# угода не може бути виконана, цей втулок виконання не буде запущено, та буде# повернено помилку. Допустимі значення: "Never" (цей втулок виконання ніколи не використовує стандартний ввід),# "IfAvailable" (цей втулок виконання хоче використовувати стандартний ввід, якщо він доступний),# або "Always" (цей втулок виконання вимагає стандартний ввід для роботи). Обовʼязково.interactiveMode:Neverclusters:- name:my-clustercluster:server:"https://172.17.4.100:6443"certificate-authority:"/etc/kubernetes/ca.pem"extensions:- name:client.authentication.k8s.io/exec# зарезервоване імʼя розширення для кожної конфігурації виконання кластераextension:arbitrary:configthis:може бути надано через змінну середовища KUBERNETES_EXEC_INFO при встановленні provideClusterInfoyou:["можете","покласти","будь-що","тут"]contexts:- name:my-clustercontext:cluster:my-clusteruser:my-usercurrent-context:my-cluster
apiVersion:v1kind:Configusers:- name:my-useruser:exec:# Команда для виконання. Обовʼязково.command:"example-client-go-exec-plugin"# Версія API, яку слід використовувати при декодуванні ресурсу ExecCredentials. Обовʼязково.## Версія API, повернута втулком, ПОВИННА відповідати версії, вказаній тут.## Щоб інтегруватися з інструментами, які підтримують кілька версій (наприклад, client.authentication.k8s.io/v1),# встановіть змінну середовища, перед ```yamlapiVersion:"client.authentication.k8s.io/v1beta1"# Змінні середовища, що встановлюються під час виконання втулку. Необовʼязково.env:- name:"FOO"value:"bar"# Аргументи, які передаються під час виконання втулку. Необовʼязково.args:- "arg1"- "arg2"# Текст, який показується користувачу, коли виконуваний файл не знайдено. Необовʼязково.installHint:| example-client-go-exec-plugin потрібно для автентифікації
в поточному кластері. Його можна встановити:
На macOS: brew install example-client-go-exec-plugin
На Ubuntu: apt-get install example-client-go-exec-plugin
На Fedora: dnf install example-client-go-exec-plugin
...# Чи надавати інформацію про кластер, яка може містити# дуже великі дані сертифікату CA, цьому втулку виконання як частину KUBERNETES_EXEC_INFO# змінної середовища.provideClusterInfo:true# Угода між втулком виконання та стандартним введенням/виведенням. Якщо# угода не може бути виконана, цей втулок виконання не буде запущено, а буде# повернено помилку. Допустимі значення: "Never" (цей втулок виконання ніколи не використовує стандартний ввід),# "IfAvailable" (цей втулок виконання хоче використовувати стандартний ввід, якщо він доступний),# або "Always" (цей втулок виконання вимагає стандартний ввід для роботи). Необовʼязково.# Стандартно - "IfAvailable".interactiveMode:Neverclusters:- name:my-clustercluster:server:"https://172.17.4.100:6443"certificate-authority:"/etc/kubernetes/ca.pem"extensions:- name:client.authentication.k8s.io/exec# зарезервоване імʼя розширення для кожної конфігурації виконання кластераextension:arbitrary:configthis:може бути надано через змінну середовища KUBERNETES_EXEC_INFO при встановленні provideClusterInfoyou:["можете","покласти","будь-що","тут"]contexts:- name:my-clustercontext:cluster:my-clusteruser:my-usercurrent-context:my-cluster
Відносні шляхи до команд інтерпретуються відносно теки файлу конфігурації. Якщо KUBECONFIG встановлено на /home/jane/kubeconfig, а команда виконання — ./bin/example-client-go-exec-plugin, то виконується бінарний файл /home/jane/bin/example-client-go-exec-plugin.
- name:my-useruser:exec:# Шлях відносно теки kubeconfigcommand:"./bin/example-client-go-exec-plugin"apiVersion:"client.authentication.k8s.io/v1"interactiveMode:Never
Формати вводу та виводу
Виконана команда виводить обʼєкт ExecCredential у stdout. k8s.io/client-go автентифікується в Kubernetes API, використовуючи отримані облікові дані в status. Виконана команда отримує обʼєкт ExecCredential на вхід через змінну середовища KUBERNETES_EXEC_INFO. Цей вхід містить корисну інформацію, таку як очікувана версія API поверненого обʼєкта ExecCredential та чи може втулок використовувати stdin для взаємодії з користувачем.
Під час запуску з інтерактивної сесії (тобто термінал), stdin може бути наданий прямо втулку. Втулки повинні використовувати поле spec.interactive вхідного обʼєкта ExecCredential зі змінної середовища KUBERNETES_EXEC_INFO для визначення, чи був наданий stdin. Вимоги втулка до stdin (тобто чи stdin є необовʼязковим, строго обовʼязковим або ніколи не використовується для успішного запуску втулка) вказується за допомогою поля user.exec.interactiveMode у kubeconfig (див. таблицю нижче для дійсних значень). Поле user.exec.interactiveMode є необовʼязковим у client.authentication.k8s.io/v1beta1 і обовʼязковим у client.authentication.k8s.io/v1.
Значення interactiveMode
Значення interactiveMode
Значення
Never
Цей втулок виконання ніколи не потребує використання стандартного вводу, і тому втулок виконання буде запущений незалежно від того, чи доступний стандартний ввід для введення користувача.
IfAvailable
Цей втулок виконання хоче використовувати стандартний ввід, якщо він доступний, але може працювати, якщо стандартний ввід недоступний. Тому втулок виконання буде запущений незалежно від наявності введення з стандартного вводу. Якщо стандартний ввід доступний для введення користувача, він буде наданий цьому втулку виконання.
Always
Цей втулок виконання потребує стандартний ввід для роботи, і тому втулок виконання буде запущений лише тоді, коли стандартний ввід доступний для введення користувача. Якщо стандартний ввід недоступний для введення користувача, втулок виконання не буде запущений, і виконавець втулку поверне помилку.
Для використання облікових даних токена власника, втулок повертає токен у статусі ExecCredential
Альтративно, можна повернути PEM-кодований сертифікат клієнта та ключ для використання TLS-автентифікації клієнта. Якщо втулок повертає різний сертифікат та ключ при наступному виклику, k8s.io/client-go закриє існуючі зʼєднання з сервером, щоб змусити новий TLS-обмін.
Якщо вказано, що clientKeyData та clientCertificateData повинні бути присутніми.
clientCertificateData може містити додаткові проміжні сертифікати для відправки на сервер.
Додатково відповідь може включати термін дії облікового запису, форматований як
RFC 3339 мітка часу.
Наявність або відсутність терміну дії має такий вплив:
Якщо термін дії включений, токен власника та TLS-облікові дані кешуються до
моменту закінчення строку дії, або якщо сервер відповідає з кодом стану HTTP 401,
або при завершенні процесу.
Якщо термін дії відсутній, токен власника та TLS-облікові дані кешуються до
моменту, коли сервер відповідає з кодом стану HTTP 401 або до моменту завершення процесу.
Щоб дозволити втулку виконання отримувати інформацію, що специфічна для кластера, встановіть provideClusterInfo у поле user.exec в kubeconfig. Втулок потім отримає цю інформацію, специфічну для кластера, у змінній середовища KUBERNETES_EXEC_INFO. Інформацію з цієї змінної середовища можна використовувати для виконання логіки отримання облікових даних, специфічних для кластера. Наступний маніфест ExecCredential описує зразок інформації для кластера.
{"apiVersion":"client.authentication.k8s.io/v1","kind":"ExecCredential","spec":{"cluster":{"server":"https://172.17.4.100:6443","certificate-authority-data":"LS0t...","config":{"arbitrary":"config","this":"can be provided via the KUBERNETES_EXEC_INFO environment variable upon setting provideClusterInfo","you":["can","put","anything here"]},"interactive":true}}
{"apiVersion":"client.authentication.k8s.io/v1beta1","kind":"ExecCredential","spec":{"cluster":{"server":"https://172.17.4.100:6443","certificate-authority-data":"LS0t...","config":{"arbitrary":"config","this":"can be provided via the KUBERNETES_EXEC_INFO environment variable upon setting provideClusterInfo","you":["can","put","anything","here"]}},"interactive":true}}
Доступ API до інформації про автентифікацію для клієнта
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.28 [stable]
Ви можете використовувати API SelfSubjectReview, щоб дізнатися, як ваш кластер Kubernetes показує вашу інформацію про автентифікацію, щоб ідентифікувати вас як клієнта. Це працює незалежно від того, чи автентифікуєтеся ви як користувач (зазвичай представляючи реальну особу), чи як обліковий запис ServiceAccount.
У типовому кластері Kubernetes усі автентифіковані користувачі можуть створювати SelfSubjectReviews. Доступ до цього надається вбудованою роллю system:basic-userClusterRole.
Можливість клієнта дізнатися свою власну ідентичність є надзвичайно корисною під час усунення несправностей у складному потоці автентифікації, який використовується в кластері Kubernetes; наприклад, якщо ви використовуєте [автентифікацію за допомогою токена веб-хука](/docs/reference/access-authn-authz/authentication/# webhook-token-authentication) або [проксі-сервер автентифікації] (/docs/reference/access-authn-authz/authentication/#authenticating-proxy).
Якщо ви хочете запитати це в командному рядку, див. [Доступ CLI до інформації про автентифікацію] (#self-subject-review-cli).
HTTP-доступ до інформації про автентифікацію
SelfSubjectReviews не має полів, які можна налаштувати. Отримавши запит, сервер API Kubernetes заповнює статус атрибутами користувача і повертає його користувачеві. Це не зберігає іменований ресурс у вашому кластері: ви не можете отримати SelfSubjectReview, і він видаляється після завершення вашого запиту POST.
Приклад запиту (тіло буде SelfSubjectReview):
POST /apis/authentication.k8s.io/v1/selfsubjectreviews
Сервер API Kubernetes заповнює userInfo після застосування всіх механізмів автентифікації, включаючи імперсонацію. Якщо ви або проксі-сервер автентифікації виконуєте SelfSubjectReview з використанням імперсонації, ви бачите деталі та властивості користувача, від імені якого було виконано автентифікацію.
У цьому прикладі відповіді не показано всі доступні поля; не всі механізми автентифікації заповнюють кожне доступне поле. Дивіться довідку про API SelfSubjectReview, щоб дізнатися, які поля доступні.
Ось ще один приклад, який також містить поля uid та extra:
Дані в цих опціональних полях походять з вашої інтеграції автентифікації або з бази даних користувачів, яку вона використовує. Імʼя користувача, UID, додаткова інформація та всі групи з іменами, що не починаються з system:, походять з джерел поза Kubernetes.
Під час запиту до API Kubernetes через HTTP ви можете вимагати відповідь у форматі JSON або YAML, використовуючи заголовок HTTP Accept:, наприклад:
3.2 - Автентифікація за допомогою Bootstrap-токенів
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.18 [stable]
Bootstrap-токени — це простий токен на предʼявника, який призначений для використання під час створення нових кластерів або приєднання нових вузлів до наявного кластера. Він був створений для підтримки kubeadm, але може використовуватися в інших контекстах для користувачів, які бажають створювати кластери без kubeadm. Також він призначений для роботи, через політику RBAC, з kubelet TLS Bootstrapping.
Огляд Bootstrap-токенів
Bootstrap-токени визначені як певний тип secretʼів (bootstrap.kubernetes.io/token), що знаходяться в просторі імен kube-system. Ці secret читаються Bootstrap Authenticator з API Server. Протерміновані токени видаляються контролером TokenCleaner у Controller Manager. Токени також використовуються для створення підпису для конкретного ConfigMap, який використовується у процесі "виявлення" через контролер BootstrapSigner.
Формат токена
Bootstrap-токени мають форму abcdef.0123456789abcdef. Більш формально, вони повинні відповідати регулярному виразу [a-z0-9]{6}\.[a-z0-9]{16}.
Перша частина токена — це "ID токена" і вважається публічною інформацією. Вона використовується, коли потрібно посилатися на токен без розкриття секретної частини, яка використовується для автентифікації. Друга частина — це "Секрет токена" і нею треба ділитися тільки з довіреними сторонами.
Увімкнення автентифікації за допомогою Bootstrap-токенів
Автентифікатор Bootstrap Token можна увімкнути за допомогою наступного прапорця на API-сервері:
--enable-bootstrap-token-auth
Після увімкнення, токени для завантаження можуть використовуватися як облікові дані токена на предʼявника для автентифікації запитів до API-сервера.
Authorization: Bearer 07401b.f395accd246ae52d
Токени автентифікуються як імʼя користувача system:bootstrap:<token id> і є членами групи system:bootstrappers. Додаткові групи можуть бути вказані в секреті токена.
Протерміновані токени можуть бути автоматично видалені шляхом увімкнення контролера tokencleaner у Controller Manager.
--controllers=*,tokencleaner
Формат Secretʼу Bootstrap-токена
Кожен дійсний токен підтримується секретом у просторі імен kube-system. Повний документ проєктування можна знайти тут.
Ось як виглядає цей Secret.
apiVersion:v1kind:Secretmetadata:# Назва МАЄ бути у формі "bootstrap-token-<token id>"name:bootstrap-token-07401bnamespace:kube-system# Тип МАЄ бути 'bootstrap.kubernetes.io/token'type:bootstrap.kubernetes.io/tokenstringData:# Опис, зрозумілий людині. Необовʼязково.description:"Стандартний bootstrap-токен, згенерований 'kubeadm init'."# ID та секрет токена. Обовʼязково.token-id:07401btoken-secret:f395accd246ae52d# Термін дії. Необовʼязково.expiration:2017-03-10T03:22:11Z# Дозволені використання.usage-bootstrap-authentication:"true"usage-bootstrap-signing:"true"# Додаткові групи для автентифікації токена. Мають починатися з "system:bootstrappers:"auth-extra-groups:system:bootstrappers:worker,system:bootstrappers:ingress
Тип секрету має бути bootstrap.kubernetes.io/token, а назва має бути bootstrap-token-<token id>. Він також повинен знаходитися в просторі імен kube-system.
Члени usage-bootstrap-* вказують, для чого цей секрет призначений. Значення має бути встановлено в true, щоб увімкнути відповідне використання.
usage-bootstrap-authentication вказує, що токен може використовуватися для автентифікації до API-сервера як токен-носій.
usage-bootstrap-signing вказує, що токен може використовуватися для підпису ConfigMap cluster-info, як описано нижче.
Поле expiration контролює термін дії токена. Протерміновані токени відхиляються при спробі автентифікації та ігноруються під час підпису ConfigMap. Значення терміну дії кодується як абсолютний UTC-час за стандартом RFC3339. Увімкніть контролер tokencleaner, щоб автоматично видаляти протерміновані токени.
Управління токенами за допомогою kubeadm
Ви можете використовувати інструмент kubeadm для управління токенами на запущеному кластері. Деталі дивіться в документації kubeadm token.
Підпис ConfigMap
Окрім автентифікації, токени можуть використовуватися для підпису ConfigMap. Це використовується на ранніх етапах процесу завантаження кластера до того, як клієнт довіряє API-серверу. Підписаний ConfigMap може бути автентифікований спільним токеном.
Увімкніть підпис ConfigMap, увімкнувши контролер bootstrapsigner у Controller Manager.
--controllers=*,bootstrapsigner
ConfigMap, який підписується, це cluster-info у просторі імен kube-public. Типовий процес полягає в тому, що клієнт читає цей ConfigMap без автентифікації та ігноруючи помилки TLS. Потім він перевіряє коректність ConfigMap, переглядаючи підпис, вбудований у ConfigMap.
Елемент kubeconfig у ConfigMap є конфігураційним файлом, який містить лише інформацію про кластер. Ключовим моментом, що передається, є certificate-authority-data. Це може бути розширено в майбутньому.
Підпис є підписом JWS, що використовує "відокремлений" режим. Щоб перевірити підпис, користувач має закодувати вміст kubeconfig відповідно до правил JWS (закодовано base64, відкидаючи будь-які кінцеві =). Цей закодований вміст потім використовується для формування повного JWS шляхом вставки його між 2 крапками. Ви можете перевірити JWS, використовуючи схему HS256 (HMAC-SHA256) з повним токеном (наприклад, 07401b.f395accd246ae52d) як спільний секрет. Користувачі повинні перевірити, що використовується HS256.
Попередження:
Будь-яка сторона з токеном завантаження може створити дійсний підпис для цього токена. Коли використовується підпис ConfigMap, не рекомендується ділитися одним токеном з багатьма клієнтами, оскільки скомпрометований клієнт може потенційно провести атаку "людина посередині" на іншого клієнта, який покладається на підпис для завантаження довіри TLS.
Деталі механізмів авторизації Kubernetes і підтримувані режими авторизації.
Авторизація в Kubernetes відбувається після автентифікації. Зазвичай клієнт, що робить запит, має бути автентифікований (увійти в систему), перш ніж його запит може бути дозволений; однак, Kubernetes також дозволяє анонімні запити за деяких обставин.
Авторизація запитів до API в Kubernetes відбувається всередині API-сервера. API-сервер оцінює всі атрибути запиту щодо всіх політик, потенційно також звертаючись до зовнішніх сервісів, і потім дозволяє або відхиляє запит.
Усі частини запиту до API повинні бути дозволені деяким механізмом авторизації, щоб він міг продовжити виконання. Іншими словами: стандартно доступ заборонений.
Примітка:
Контроль доступу і політики, що залежать від конкретних полів конкретних видів обʼєктів, обробляються контролерами допуску.
Контроль допуску в Kubernetes відбувається після завершення авторизації (і, отже, тільки коли рішення про авторизацію було дозволити запит).
Коли налаштовано кілька модулів авторизації, кожен перевіряється по черзі. Якщо будь-який авторизатор схвалює або відхиляє запит, це рішення негайно повертається і жоден інший авторизатор не перевіряється. Якщо всі модулі не мають думки щодо запиту, то запит відхиляється. Загальний вердикт "відхилено" означає, що API-сервер відхиляє запит і відповідає зі статусом HTTP 403 (Forbidden).
Атрибути запиту, що використовуються для авторизації
Kubernetes розглядає тільки наступні атрибути запиту до API:
user — Рядок user, наданий під час автентифікації.
group — Список імен груп, до яких належить автентифікований користувач.
extra — Map довільних рядкових ключів з рядковими значеннями, надана шаром автентифікації.
API — Вказує, чи є запит запитом на ресурс API.
Request path — Шлях до різних нересурсних точок доступу, таких як /api або /healthz.
API request verb — Дієслова API, такі як get, list, create, update, patch, watch, delete і deletecollection, використовуються для запитів до ресурсів. Щоб визначити дієслово запиту для точки доступу API ресурсу, дивіться дієслова запитів та авторизація.
HTTP request verb — Методи HTTP в нижньому регістрі, такі як get, post, put і delete, використовуються для нересурсних запитів.
Resource — Ідентифікатор або імʼя ресурсу, до якого здійснюється доступ (тільки для запитів до ресурсів). Для запитів до ресурсів, що використовують дієслова get, update, patch і delete, ви повинні надати імʼя ресурсу.
Subresource — Субесурс, до якого здійснюється доступ (тільки для запитів до ресурсів). Це може бути стандартний субресурс (наприклад, status або scale) або синтетичний субресурс, який використовується для детальної авторизації.
Namespace — Простір імен обʼєкта, до якого здійснюється доступ (тільки для запитів до ресурсів у просторі імен).
API group — Група API, до якої здійснюється доступ (тільки для запитів до ресурсів). Порожній рядок позначає основнугрупу API.
Дієслова запиту та авторизація
Нересурсні запити
Запити до точок доступу, відмінних від /api/v1/... або /apis/<group>/<version>/..., вважаються нересурсними запитами та використовують метод HTTP як дієслово в нижньому регістрі. Наприклад, виконання запиту GET за допомогою HTTP до точок доступу, таких як /api або /healthz, буде використовувати get як дієслово.
Ресурсні запити
Щоб визначити дієслово запиту для точки доступу API ресурсу, Kubernetes показує використаний HTTP метод і розглядає, чи діє запит на індивідуальний ресурс чи на колекцію ресурсів:
HTTP метод
дієслово запиту
POST
create
GET, HEAD
get (для індивідуальних ресурсів), list (для колекцій, включаючи повний вміст обʼєктів), watch (для спостереження за індивідуальним ресурсом або колекцією ресурсів)
PUT
update
PATCH
patch
DELETE
delete (для індивідуальних ресурсів), deletecollection (для колекцій)
Увага:
Дієслова get, list та watch можуть повертати повні деталі ресурсу. В плані доступу до повернених даних вони є еквівалентними. Наприклад, list для secrets розкриє атрибути data будь-яких повернених ресурсів.
Іноді Kubernetes перевіряє авторизацію для додаткових дозволів, використовуючи спеціалізовані дієслова. Наприклад:
Синтетичні субресурси, такі як resourceclaims/binding та resourceclaims/driver у групі API resource.k8s.io.
Дієслова, що враховують вузол, такі як associated-node:update, associated-node:patch, arbitrary-node:update та arbitrary-node:patch для оновлень драйвера DRA resourceclaims/status.
Контекст авторизації
Kubernetes очікує атрибути, які є загальними для запитів до REST API. Це означає, що авторизація в Kubernetes працює з наявними системами контролю доступу на рівні організації або
хмарного провайдера, які можуть обробляти інші API крім Kubernetes API.
Режими авторизації
API-сервер Kubernetes може авторизувати запит, використовуючи один з декількох режимів авторизації:
AlwaysAllow
Цей режим дозволяє всі запити, що несе ризики для безпеки. Використовуйте цей режим авторизації тільки якщо вам не потрібна авторизація для ваших запитів до API (наприклад, для тестування).
AlwaysDeny
Цей режим блокує всі запити. Використовуйте цей режим авторизації тільки для тестування.
Режим ABAC в Kubernetes визначає парадигму управління доступом, згідно з якою права доступу надаються користувачам за допомогою політик, які обʼєднують атрибути разом. Політики можуть використовувати будь-який тип атрибутів (атрибути користувача, атрибути ресурсу, обʼєкта, середовища тощо).
Kubernetes RBAC — це метод регулювання доступу до компʼютерних або мережевих ресурсів на основі ролей окремих користувачів в організації. У цьому контексті доступ — це можливість окремого користувача виконувати певне завдання, наприклад, переглядати, створювати або змінювати файл. В цьому режимі Kubernetes використовує групу API rbac.authorization.k8s.io для прийняття рішень щодо авторизації, що дозволяє вам динамічно налаштовувати політики дозволів через API Kubernetes.
Node
Спеціальний режим авторизації, який надає дозволи для kubeletʼів на основі запланованих до запуску Podʼів. Щоб дізнатися більше про режим авторизації вузла, див. Авторизація вузла.
Webhook
Kubernetes режим webhook для авторизації робить синхронний HTTP-виклик, блокуючи запит до тих пір, поки віддалений HTTP-сервіс не відповість на нього. Ви можете написати власне програмне забезпечення для обробки виклику або використовувати рішення з екосистеми.
Ви не повинні використовувати режим AlwaysAllow на кластері Kubernetes, де API сервер доступний публічно з інтернету.
Група system:masters
Група system:masters є вбудованою групою Kubernetes, яка надає необмежений доступ до сервера API. Будь-який користувач, призначений до цієї групи, має повні привілеї адміністратора кластера, обходячи будь-які обмеження авторизації, що накладаються механізмами RBAC або Webhook. Не додавайте користувачів до цієї групи. Якщо вам потрібно надати користувачеві права cluster-admin, ви можете створити ClusterRoleBinding до вбудованої cluster-admin ClusterRole.
Ви повинні вибрати один з двох підходів до конфігурації: задати обидва шляхи --authorization-config і налаштувати вебхук авторизації за допомогою аргументів командного рядка --authorization-mode та --authorization-webhook-* не допускається. Якщо ви спробуєте це зробити, API сервер повідомить про помилку під час запуску та одразу завершить роботу.
Ви вказуєте шлях до конфігурації авторизації за допомогою аргументу командного рядка --authorization-config.
Якщо ви хочете використовувати параметри командного рядка замість конфігураційного файлу, це також є дійсним і підтримуваним підходом. Деякі можливості авторизації (наприклад: кілька вебхуків, політика відмови вебхука та правила попередньої фільтрації) доступні тільки при використанні конфігураційного файлу авторизації.
Приклад конфігурації
---## НЕ ВИКОРИСТОВУЙТЕ КОНФІГУРАЦІЮ ТАК, ЯК ВОНА Є. ЦЕ ПРИКЛАД.#apiVersion:apiserver.config.k8s.io/v1kind:AuthorizationConfigurationauthorizers:* type:Webhook# Назва, що використовується для опису авторизатора# Це явно використовується в механізмі моніторингу для метрик# Примітка:# - Перевірка цього поля схожа на перевірку міток K8s на сьогодні.# Обовʼязково, немає стандартного значенняname:webhookwebhook:# Тривалість кешування відповідей 'authorized' від вебхука# авторизатора.# Те саме, що і встановлення прапорця `--authorization-webhook-cache-authorized-ttl`.# Стандартно: 5m0sauthorizedTTL:30s# Якщо встановлено в false, 'authorized' відповіді від вебхука не кешуються# і вказаний authorizedTTL ігнорується/не має ефекту.# Те саме, що і встановлення прапорця `--authorization-webhook-cache-authorized-ttl` в `0`.# Примітка: Встановлення authorizedTTL в `0` призводить до використання його стандартного значення.# Стандартне: truecacheAuthorizedRequests:true# Тривалість кешування відповідей 'unauthorized' від вебхука# авторизатора.# Те саме, що і встановлення прапорця `--authorization-webhook-cache-unauthorized-ttl`.# Стандартно: 30 сunauthorizedTTL:30s# Якщо встановлено в false, 'unauthorized' відповіді від вебхука не кешуються# і вказаний unauthorizedTTL ігнорується/не має ефекту.# Те саме, що і встановлення прапорця `--authorization-webhook-cache-unauthorized-ttl` в `0`.# Примітка: Встановлення unauthorizedTTL в `0` призводить до використання його стандартного значення.# Стандартне: truecacheUnauthorizedRequests:true# Тайм-аут для запиту вебхука# Максимально допустимий: 30 с# Обовʼязково, немає стандартного значенняtimeout:3s# Версія API для SubjectAccessReview в authorization.k8s.io, яка# надсилається до вебхука та очікується від нього.# Те саме, що і встановлення прапорця `--authorization-webhook-version`.# Обовʼязково, немає стандартного значення# Допустимі значення: v1beta1, v1subjectAccessReviewVersion:v1# MatchConditionSubjectAccessReviewVersion визначає версію SubjectAccessReview# за якою оцінюються вирази CEL# Допустимі значення: v1# Обовʼязково, немає стандартного значенняmatchConditionSubjectAccessReviewVersion:v1# Керує рішенням авторизації, коли запит вебхука не вдалося# виконати або отримано некоректну відповідь або помилки під час оцінки# виразів matchConditions.# Допустимі значення:# - NoOpinion: продовжувати до наступних авторизаторів, щоб перевірити, чи дозволяє один з них запит# - Deny: відхиляти запит без консультації з наступними авторизаторами# Обовʼязково, немає стандартного значенняfailurePolicy:DenyconnectionInfo:# Керує тим, як вебхук повинен спілкуватися з сервером.# Допустимі значення:# - KubeConfigFile: використовуйте файл, вказаний у kubeConfigFile для пошуку сервера.# - InClusterConfig: використовуйте конфігурацію внутрішнього кластера для виклику API SubjectAccessReview,# що розміщується kube-apiserver. Цей режим не дозволяється для kube-apiserver.type:KubeConfigFile# Шлях до файлу KubeConfigFile для інформації про підключення# Обовʼязково, якщо connectionInfo.Type є KubeConfigFilekubeConfigFile:/kube-system-authz-webhook.yaml# matchConditions - це список умов, які повинні бути виконані для того, щоб запит було відправлено на цей# вебхук. Порожній список matchConditions підходить для всіх запитів.# Є максимально допустимі 64 умови відповідності.## Логіка точного порівняння така (в порядку):# 1. Якщо принаймні одна matchCondition оцінюється як FALSE, тоді вебхук пропускається.# 2. Якщо ВСІ matchConditions оцінюються як TRUE, тоді вебхук викликається.# 3. Якщо принаймні одна matchCondition оцінюється як помилка (але ні одна не є FALSE):# - Якщо failurePolicy=Deny, тоді вебхук відхиляє запит.# - Якщо failurePolicy=NoOpinion, тоді помилка ігнорується, а вебхук пропускається.matchConditions:# expression - це вираз CEL, який оцінюється для кожного запиту. Повертає булеве значення.# CEL вираз має доступ до вмісту SubjectAccessReview у версії v1.# Якщо версія у SubjectAccessReview в запиті змінної є v1beta1,# вміст буде конвертовано у v1 перед оцінкою виразу CEL.## Документація CEL: https://kubernetes.io/docs/reference/using-api/cel/## лише надсилати запити ресурсівв до вебхука* expression:has(request.resourceAttributes)# лише перехоплювати запити до kube-system* expression:request.resourceAttributes.namespace == 'kube-system'# не перехоплювати запити від службових облікових записів kube-system* expression:"!('system:serviceaccounts:kube-system' in request.user.groups)"* type:Nodename:node* type:RBACname:rbac* type:Webhookname:in-cluster-authorizerwebhook:authorizedTTL:5хвunauthorizedTTL:30сtimeout:3сsubjectAccessReviewVersion:v1failurePolicy:NoOpinionconnectionInfo:type:InClusterConfig
Під час налаштування ланцюжка авторизації за допомогою файлу конфігурації переконайтеся, що всі вузли панелі управління мають однаковий вміст файлу. Зверніть увагу на конфігурацію API сервера при оновленні / зниженні версії вашого кластера. Наприклад, якщо ви оновлюєтеся з Kubernetes 1.35 до Kubernetes 1.36, вам потрібно переконатися, що файл конфігурації має формат, який розуміє Kubernetes 1.36, перш ніж ви оновите кластер. Якщо ви знижуєте версію до 1.35, вам потрібно відповідно налаштувати конфігурацію.
Конфігурація авторизації та перезавантаження
Kubernetes перезавантажує файл конфігурації авторизації, коли API сервер виявляє зміну у файлі, а також за 60-секундним графіком, якщо події змін не спостерігаються.
Примітка:
Ви повинні забезпечити, щоб всі типи авторизаторів, крім вебхука, залишалися незмінними у файлі під час перезавантаження.
Перезавантаження не повинно додавати або видаляти авторизаторів вузла або RBAC (їх можна перевпорядкувати, але не можна додавати або видаляти).
Конфігурація режиму авторизації через командний рядок
Ви можете використовувати наступні режими:
--authorization-mode=ABAC (режим контролю доступу на основі атрибутів)
--authorization-mode=RBAC (режим контролю доступу на основі ролей)
Ви можете вибрати більше одного режиму авторизації; наприклад: --authorization-mode=Node,Webhook
Kubernetes перевіряє модулі авторизації на основі порядку, який ви вказуєте в командному рядку API сервера, тому раніше зазначений модуль має вищий пріоритет для дозволу або відмови в запиті.
Для отримання додаткової інформації про аргументи командного рядка для API сервера, читайте довідник по kube-apiserver.
Підвищення привілеїв через створення або редагування робочих навантажень
Користувачі, які можуть створювати/редагувати Podʼи в просторі імен, або безпосередньо, або через обʼєкт, що дозволяє опосередковане управління робочими навантаженнями, можуть мати можливість підвищити свої привілеї в цьому просторі імен. Потенційні шляхи до підвищення привілеїв включають розширення API Kubernetes та повʼязані з ними контролери.
Увага:
Як адміністратор кластера, будьте обережні, надаючи доступ до створення або редагування робочих навантажень. Деякі деталі того, як вони можуть бути використані не за призначенням, задокументовані в шляхах підвищення привілеїв.
Шляхи підвищення привілеїв
Існують різні способи, за якими зловмисник або ненадійний користувач може отримати додаткові привілеї в межах простору імен, якщо ви дозволяєте їм запускати довільні Podʼи в цьому просторі імен:
Монтування довільних Secretʼів в цьому просторі імен
Може бути використано для доступу до конфіденційної інформації, призначеної для інших робочих навантажень
Може бути використано для отримання токена службового облікового запису більш привілейованого ServiceAccount
Використання довільних службових облікових записів в цьому просторі імен
Може виконувати дії Kubernetes API як інше робоче навантаження (імперсонізація)
Може виконувати будь-які привілейовані дії, які має цей ServiceAccount
Монтування або використання ConfigMaps, призначених для інших робочих навантажень в цьому просторі імен
Може бути використано для отримання інформації, призначеної для інших робочих навантажень, таких як імена хостів баз даних.
Монтування томів, призначених для інших робочих навантажень в цьому просторі імен
Може бути використано для отримання інформації, призначеної для інших робочих навантажень, та її зміни.
Увага:
Як системному адміністратору, вам слід бути обережними при впровадженні власних визначень ресурсів, що дозволяють користувачам вносити зміни у вищезазначених областях. Це може відкрити шляхи до підвищення привілеїв. Розгляньте наслідки цього виду змін при виборі контролю за авторизацією.
Перевірка доступу до API
kubectl надає підкоманду auth can-i для швидкого запиту до рівня авторизації API. Команда використовує API SelfSubjectAccessReview, щоб визначити, чи може поточний користувач виконати
вказану дію, і працює незалежно від режиму авторизації, який використовується.
kubectl auth can-i create deployments --namespace dev
SelfSubjectAccessReview є частиною групи API authorization.k8s.io, яка викладає авторизацію сервера API для зовнішніх служб. Інші ресурси у цій групі включають:
SubjectAccessReview
Перегляд доступу для будь-якого користувача, не лише поточного. Корисно для делегування рішень про авторизацію серверу API. Наприклад, kubelet та API розширень сервери використовують це для визначення доступу користувача до своїх власних API.
LocalSubjectAccessReview
Подібно до SubjectAccessReview, але обмежено для конкретного простору імен.
SelfSubjectRulesReview
Перегляд, який повертає набір дій, які користувач може виконати в межах простору імен. Корисно для користувачів для швидкого узагальнення їх власного доступу, або для інтерфейсів користувача для приховування/відображення дій.
Ці API можна опитати, створивши звичайні ресурси Kubernetes, де поле відповіді status
поверненого обʼєкта є результатом запиту. Наприклад:
Контроль доступу на основі ролей (RBAC) — це метод регулювання доступу до компʼютерних або мережевих ресурсів на основі ролей окремих користувачів у вашій організації.
RBAC авторизація використовує групу API rbac.authorization.k8s.ioгрупа API для прийняття рішень щодо авторизації, дозволяючи вам динамічно налаштовувати політики через Kubernetes API.
Щоб увімкнути RBAC, запустіть API сервер з прапорцем --authorization-config, встановленим на список, розділений комами, що включає RBAC; наприклад:
RBAC API визначає чотири типи обʼєктів Kubernetes: Role, ClusterRole, RoleBinding та ClusterRoleBinding. Ви можете описувати або змінювати обʼєкти RBAC за допомогою таких інструментів, як kubectl, так само як і будь-який інший обʼєкт Kubernetes.
Увага:
Ці обʼєкти за своєю конструкцією накладають обмеження на доступ. Якщо ви вносите зміни до кластера під час навчання, перегляньте розділ запобігання підвищенню привілеїв та початкове налаштування, щоб зрозуміти, як ці обмеження можуть завадити вам вносити деякі зміни.
Role та ClusterRole
RBAC Role або ClusterRole містять правила, які представляють набір дозволів. Дозволи є виключно адитивними (немає правил "заборони").
Role завжди встановлює дозволи в межах певного простору імен; коли ви створюєте Role, ви повинні вказати простір імен, до якого вона належить.
ClusterRole, на відміну, є ресурсом, який не належить до простору імен. Ресурси мають різні назви (Role і ClusterRole), оскільки обʼєкт Kubernetes завжди повинен бути або привʼязаним до простору імен, або не привʼязаним до простору імен; він не може бути одночасно і тим, і іншим.
ClusterRole мають кілька використань. Ви можете використовувати ClusterRole для:
визначення дозволів на ресурси, що належать до простору імен, і надання доступу в межах окремих просторів імен
визначення дозволів на ресурси, що належать до простору імен, і надання доступу до всіх просторів імен
визначення дозволів на ресурси, що належать до кластера
Якщо ви хочете визначити роль в межах простору імен, використовуйте Role; якщо ви хочете визначити роль для всього кластера, використовуйте ClusterRole.
Приклад Role
Ось приклад Role в просторі імен "default", яку можна використовувати для надання доступу на читання до Podʼів:
apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:namespace:defaultname:pod-readerrules:- apiGroups:[""]# "" вказує на основну групу APIresources:["pods"]verbs:["get","watch","list"]
Приклад ClusterRole
ClusterRole може бути використана для надання тих самих дозволів, що й Role. Оскільки ClusterRole стосуються всього кластера, ви також можете використовувати їх для надання доступу до:
ресурсів, що належать до кластера (наприклад, вузли)
точок доступу, що не є ресурсами (наприклад, /healthz)
ресурсів, що належать до простору імен (наприклад, контейнерів), в усіх просторах імен
Наприклад: ви можете використовувати ClusterRole для дозволу конкретному користувачу виконувати kubectl get pods --all-namespaces.
Ось приклад ClusterRole, яку можна використовувати для надання доступу на читання Secretʼів в будь-якому просторі імен або в усіх просторах імен (залежно від того, як вона звʼязана):
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:# "namespace" пропущено, оскільки ClusterRole не привʼязані до простору іменname:secret-readerrules:- apiGroups:[""]## на рівні HTTP, назва ресурсу для доступу до обʼєктів Secret# це "secrets"resources:["secrets"]verbs:["get","watch","list"]
RoleBinding надає дозволи, визначені в ролі, користувачу або групі користувачів та містить список субʼєктів (користувачів, груп або облікових записів сервісів) і посилання на роль, що надається. RoleBinding надає дозволи в межах конкретного простору імен, тоді як ClusterRoleBinding надає доступ на рівні всього кластера.
RoleBinding може посилатися на будь-яку Role в тому ж просторі імен. Альтернативно, RoleBinding може посилатися на ClusterRole і звʼязувати цю ClusterRole з простором імен RoleBinding. Якщо ви хочете звʼязати ClusterRole з усіма просторами імен у вашому кластері, використовуйте ClusterRoleBinding.
Назва обʼєкта RoleBinding або ClusterRoleBinding повинна бути дійсною назвою сегмента шляху.
Приклади RoleBinding
Ось приклад RoleBinding, який надає роль "pod-reader" користувачу "jane" в межах простору імен "default". Це дозволяє "jane" читати Podʼи в просторі імен "default".
apiVersion:rbac.authorization.k8s.io/v1# Це рольове звʼязування дозволяє "jane" читати Podʼи в просторі імен "default".# Ви повинні вже мати роль з назвою "pod-reader" в цьому просторі імен.kind:RoleBindingmetadata:name:read-podsnamespace:defaultsubjects:# Ви можете вказати більше одного "субʼєкта"- kind:Username:jane# "name" чутливе до регіструapiGroup:rbac.authorization.k8s.ioroleRef:# "roleRef" вказує на звʼязування з Role / ClusterRolekind:Role# має бути Role або ClusterRolename:pod-reader# має збігатися з назвою Role або ClusterRole, з якою ви хочете звʼязатиapiGroup:rbac.authorization.k8s.io
RoleBinding також може посилатися на ClusterRole для надання дозволів, визначених у цій ClusterRole, на ресурси в межах простору імен RoleBinding. Такий вид посилання дозволяє визначати набір загальних ролей для всього вашого кластера, а потім використовувати їх у декількох просторах імен.
Наприклад, хоча наступний RoleBinding посилається на ClusterRole, "dave" (субʼєкт, чутливий до регістру) зможе читати Secretʼи лише в просторі імен "development", оскільки простір імен RoleBinding (у його метаданих) — "development".
apiVersion:rbac.authorization.k8s.io/v1# Це рольове звʼязування дозволяє "dave" читати Secretʼи в просторі імен "development".# Ви повинні вже мати ClusterRole з назвою "secret-reader".kind:RoleBindingmetadata:name:read-secrets## Простір імен RoleBinding визначає, де надаються дозволи.# Це надає дозволи лише в просторі імен "development".namespace:developmentsubjects:- kind:Username:dave# Name чутливе до регіструapiGroup:rbac.authorization.k8s.ioroleRef:kind:ClusterRolename:secret-readerapiGroup:rbac.authorization.k8s.io
Приклад ClusterRoleBinding
Щоб надати дозволи на рівні всього кластера, ви можете використовувати ClusterRoleBinding. Наступний ClusterRoleBinding дозволяє будь-якому користувачу з групи "manager" читати Secretʼи в будь-якому просторі імен.
apiVersion:rbac.authorization.k8s.io/v1# Це звʼязування кластерної ролі дозволяє будь-якому користувачу з групи "manager" читати Secretʼи в будь-якому просторі імен.kind:ClusterRoleBindingmetadata:name:read-secrets-globalsubjects:- kind:Groupname:manager# Name чутливе до регіструapiGroup:rbac.authorization.k8s.ioroleRef:kind:ClusterRolename:secret-readerapiGroup:rbac.authorization.k8s.io
Після створення звʼязування ви не можете змінити Role або ClusterRole, на які вони посилаються. Якщо ви спробуєте змінити roleRef звʼязування, ви отримаєте помилку валідації. Якщо ви дійсно хочете змінити roleRef для звʼязування, вам потрібно видалити обʼєкт звʼязування і створити новий.
Існує дві причини для цього обмеження:
Роблячи roleRef незмінним, можна надати комусь дозвіл update на наявний обʼєкт звʼязування, щоб він міг керувати списком субʼєктів, без можливості змінити роль, яка надається цим субʼєктам.
Звʼязування з іншою роллю є принципово іншим звʼязуванням. Вимога видалення/створення нового звʼязування для зміни roleRef гарантує, що весь список субʼєктів у звʼязуванні має намір отримати нову роль (на відміну від можливості випадково змінити лише roleRef без перевірки того, чи всі наявні субʼєкти повинні отримати дозволи нової ролі).
Команда kubectl auth reconcile створює або оновлює файл маніфесту, що містить обʼєкти RBAC, і обробляє видалення та відновлення обʼєктів звʼязування, якщо необхідно змінити роль, на яку вони посилаються. Дивіться використання команд та приклади для отримання додаткової інформації.
Посилання на ресурси
У Kubernetes API більшість ресурсів представлені та доступні за допомогою рядкового представлення їхнього імені обʼєкта, наприклад, pods для Pod. RBAC посилається на ресурси, використовуючи точно таку ж назву, яка зʼявляється в URL для відповідної точки доступу API. Деякі Kubernetes API включають субресурс, такий як логи для Pod. Запит на логи Pod виглядає так:
GET /api/v1/namespaces/{namespace}/pods/{name}/log
У цьому випадку pods є ресурсом простору імен для Pod, а log є субресурсом pods. Щоб представити це в ролі RBAC, використовуйте слеш (/) для розділення ресурсу та субресурсу. Щоб дозволити субʼєкту читати pods і також отримувати доступ до субресурсу log для кожного з цих Pod, напишіть:
Ви також можете посилатися на ресурси за назвою для певних запитів через список resourceNames. Коли зазначено, запити можуть бути обмежені окремими екземплярами ресурсу. Ось приклад, що обмежує субʼєкт лише до get або updateConfigMap з назвою my-configmap:
apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:namespace:defaultname:configmap-updaterrules:- apiGroups:[""]## на рівні HTTP, назва ресурсу для доступу до обʼєктів ConfigMap є "configmaps"resources:["configmaps"]resourceNames:["my-configmap"]verbs:["update","get"]
Примітка:
Ви не можете обмежити запити deletecollection або create верхнього рівня за назвою ресурсу. Для create це обмеження виникає через те, що назва нового обʼєкта може бути невідомою на момент авторизації. Однак обмеження create застосовується тільки до ресурсів верхнього рівня, а не до субресурсів. Наприклад, ви можете використовувати поле resourceNames з pods/exec. Якщо ви обмежуєте list або watch за resourceName, клієнти повинні включати селектор поля metadata.name у свої запити list або watch, що відповідає зазначеному resourceName, щоб отримати авторизацію. Наприклад, kubectl get configmaps --field-selector=metadata.name=my-configmap
Замість того, щоб посилатися на окремі resources, apiGroups і verbs, ви можете використовувати символ підстановки *, щоб посилатися на всі такі обʼєкти. Для nonResourceURLs ви можете використовувати символ підстановки * як суфікс для глобального збігу. Для resourceNames порожній набір означає, що все дозволено. Ось приклад, що дозволяє виконувати будь-яку поточну і майбутню дію для всіх поточних та майбутніх ресурсів в API групі example.com. Це схоже на вбудовану роль cluster-admin.
apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:namespace:defaultname:example.com-superuser# НЕ ВИКОРИСТОВУЙТЕ ЦЮ РОЛЬ, ЦЕ ЛИШЕ ПРИКЛАДrules:- apiGroups:["example.com"]resources:["*"]verbs:["*"]
Увага:
Використання символів підстановки в записах ресурсів і дій може призвести до надмірно широкого доступу до чутливих ресурсів. Наприклад, якщо додано новий тип ресурсу або новий субресурс, або перевірено нову спеціальну дію, запис символу підстановки автоматично надає доступ, що може бути небажаним. Слід застосовувати принцип мінімальних привілеїв, використовуючи конкретні ресурси та дії, щоб забезпечити лише ті дозволи, які необхідні для правильного функціонування робочого навантаження.
Агреговані ClusterRole
Ви можете агрегувати декілька ClusterRole в одну комбіновану ClusterRole. Контролер, який працює як частина панелі управління кластера, слідкує за обʼєктами ClusterRole з встановленим aggregationRule. aggregationRule визначає мітку селектора, яку використовує контролер для вибору інших обʼєктів ClusterRole, що мають бути обʼєднані у поле rules цього обʼєкта.
Увага:
Панель управління перезаписує будь-які значення, які ви вручну вказуєте в полі rules агрегованої ClusterRole. Якщо ви хочете змінити або додати правила, робіть це в обʼєктах ClusterRole, вибраних за допомогою aggregationRule.
Ось приклад агрегованої ClusterRole:
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:monitoringaggregationRule:clusterRoleSelectors:- matchLabels:rbac.example.com/aggregate-to-monitoring:"true"rules:[]# Панель управління автоматично заповнює правила
Якщо ви створюєте нову ClusterRole, що відповідає селектору міток поточної агрегованої ClusterRole, це зміна ініціює додавання нових правил до агрегованої ClusterRole. Ось приклад, що додає правила до ClusterRole "monitoring" шляхом створення іншої ClusterRole з міткою rbac.example.com/aggregate-to-monitoring: true.
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:monitoring-endpointsliceslabels:rbac.example.com/aggregate-to-monitoring:"true"# При створенні ClusterRole "monitoring-endpointslices",# правила нижче будуть додані до ClusterRole "monitoring".rules:- apiGroups:[""]resources:["services","pods"]verbs:["get","list","watch"]- apiGroups:["discovery.k8s.io"]resources:["endpointslices"]verbs:["get","list","watch"]
Стандартні ролі для користувачів використовують агрегацію ClusterRole. Це дозволяє вам, як адміністратору кластера, включати правила для спеціальних ресурсів, таких як ті, що надаються CustomResourceDefinitions або агрегованими API серверами, щоб розширити стандартні ролі.
Наприклад: наступні ClusterRole дозволяють стандартним ролям "admin" і "edit" керувати спеціальним ресурсом з назвою CronTab, тоді як роль "view" може виконувати лише читання ресурсів CronTab. Ви можете припустити, що обʼєкти CronTab називаються "crontabs" в URL, як це бачить API сервер.
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:aggregate-cron-tabs-editlabels:# Додайте ці дозволи до стандартних ролей "admin" і "edit".rbac.authorization.k8s.io/aggregate-to-admin:"true"rbac.authorization.k8s.io/aggregate-to-edit:"true"rules:- apiGroups:["stable.example.com"]resources:["crontabs"]verbs:["get","list","watch","create","update","patch","delete"]---kind:ClusterRoleapiVersion:rbac.authorization.k8s.io/v1metadata:name:aggregate-cron-tabs-viewlabels:# Додайте ці дозволи до стандартної ролі "view".rbac.authorization.k8s.io/aggregate-to-view:"true"rules:- apiGroups:["stable.example.com"]resources:["crontabs"]verbs:["get","list","watch"]
Приклади ролей
Наступні приклади є фрагментами обʼєктів Role або ClusterRole, що показують лише секцію rules.
Дозволити читання ресурсів "pods" у базовій API Group:
rules:- apiGroups:[""]## на рівні HTTP, назва ресурсу для доступу до обʼєктів Pod# є "pods"resources:["pods"]verbs:["get","list","watch"]
Дозволити читання/запис обʼєктів Deployment (на рівні HTTP: обʼєкти з "deployments" у частині ресурсу їх URL) в групах API "apps":
rules:- apiGroups:["apps"]## на рівні HTTP, назва ресурсу для доступу до обʼєктів Deployment# є "deployments"resources:["deployments"]verbs:["get","list","watch","create","update","patch","delete"]
Дозволити читання Podʼів у базовій групі API, а також читання або запис ресурсів Job у групі API "batch":
rules:- apiGroups:[""]## на рівні HTTP, назва ресурсу для доступу до обʼєктів Pod# є "pods"resources:["pods"]verbs:["get","list","watch"]- apiGroups:["batch"]## на рівні HTTP, назва ресурсу для доступу до обʼєктів Job# є "jobs"resources:["jobs"]verbs:["get","list","watch","create","update","patch","delete"]
Дозволити читання ConfigMap з назвою "my-config" (повинно бути повʼязано з RoleBinding, щоб обмежити до одного ConfigMap в одному просторі імен):
rules:- apiGroups:[""]## на рівні HTTP, назва ресурсу для доступу до обʼєктів ConfigMap# є "configmaps"resources:["configmaps"]resourceNames:["my-config"]verbs:["get"]
Дозволити читання ресурсу "nodes" у базовій групі (оскільки Node є кластерним ресурсом, це повинно бути у ClusterRole, повʼязаної з ClusterRoleBinding, щоб бути ефективним):
rules:- apiGroups:[""]## на рівні HTTP, назва ресурсу для доступу до обʼєктів Node# є "nodes"resources:["nodes"]verbs:["get","list","watch"]
Дозволити GET і POST запити до не-ресурсної точки доступу /healthz та всіх субшляхів (повинно бути в ClusterRole, повʼязаній з ClusterRoleBinding, щоб бути ефективним):
rules:- nonResourceURLs:["/healthz","/healthz/*"]# '*' у nonResourceURL є суфіксом для глобального збігуverbs:["get","post"]
Посилання на субʼєктів
RoleBinding або ClusterRoleBinding привʼязує роль до субʼєктів. Субʼєктами можуть бути групи, користувачі або ServiceAccounts.
Kubernetes представляє імена користувачів у вигляді рядків. Це можуть бути: звичайні імена, такі як "alice"; імена в стилі електронної пошти, як "bob@example.com"; або числові ідентифікатори користувачів, представлені у вигляді рядків. Вам, як адміністратору кластера, належить налаштувати модулі автентифікації, щоб автентифікація генерувала імена користувачів у бажаному форматі.
Увага:
Префікс system: зарезервований для використання системою Kubernetes, тому переконайтеся, що випадково не маєте користувачів або груп з іменами, що починаються з system:. Окрім цього спеціального префікса, система авторизації RBAC не вимагає жодного формату для імен користувачів.
У Kubernetes модулі Автентифікатора надають інформацію про групи. Групи, як і користувачі, представлені у вигляді рядків, і цей рядок не має жодних вимог до формату, крім того, що префікс system: зарезервований.
ServiceAccounts мають імена з префіксом system:serviceaccount:, і належать до груп, що мають імена з префіксом system:serviceaccounts:.
Примітка:
system:serviceaccount: (однина) є префіксом для імен користувачів службових облікових записів.
system:serviceaccounts: (множина) є префіксом для імен груп службових облікових записів.
Приклади RoleBinding
Наступні приклади є фрагментами RoleBinding, що показують лише секцію subjects.
API-сервери створюють набір стандартних обʼєктів ClusterRole і ClusterRoleBinding. Багато з них мають префікс system:, що вказує на те, що ресурс безпосередньо керується панеллю управління кластера. Усі стандартні ролі та привʼязки ролей мають мітку kubernetes.io/bootstrapping=rbac-defaults.
Увага:
Будьте обережні при зміні ClusterRole і ClusterRoleBinding з іменами, що мають префікс system:. Зміни цих ресурсів можуть призвести до несправних кластерів.
Автоматичне узгодження
При кожному запуску API-сервер оновлює стандартні ролі кластера, додаючи будь-які відсутні дозволи, та оновлює стандартні привʼязки ролей, додаючи будь-які відсутні субʼєкти. Це дозволяє кластеру виправляти випадкові зміни та допомагає підтримувати ролі та привʼязки ролей в актуальному стані, оскільки дозволи та субʼєкти змінюються у нових випусках Kubernetes.
Щоб відмовитися від цього узгодження, встановіть анотацію rbac.authorization.kubernetes.io/autoupdate на стандартній кластерній ролі або стандартній RoleBinding у значення false. Зверніть увагу, що відсутність стандартних дозволів та субʼєктів може призвести до несправних кластерів.
Автоматичне узгодження стандартно увімкнено, якщо авторизатор RBAC активний.
Ролі виявлення API
Стандартні кластерні привʼязки ролей дозволяють неавторизованим і авторизованим користувачам читати інформацію про API, яка вважається безпечною для публічного доступу (включаючи CustomResourceDefinitions). Щоб вимкнути анонімний неавторизований доступ, додайте прапорець --anonymous-auth=false до конфігурації API-сервера.
Щоб переглянути конфігурацію цих ролей через kubectl, запустіть:
kubectl get clusterroles system:discovery -o yaml
Примітка:
Якщо ви зміните цю ClusterRole, ваші зміни будуть перезаписані при перезапуску API-сервера через Автоматичне узгодження. Щоб уникнути цього перезапису, або не редагуйте роль вручну, або вимкніть Автоматичне узгодження.
Ролі виявлення API Kubernetes RBAC
Стандартна ClusterRole
Стандартна ClusterRoleBinding
Опис
system:basic-user
Група system:authenticated
Дозволяє користувачеві доступ лише для читання базової інформації про себе. До v1.14 ця роль також була стандартно повʼязана з system:unauthenticated.
system:discovery
Група system:authenticated
Дозволяє доступ лише для читання точок доступу виявлення API, необхідних для виявлення та узгодження рівня API. До v1.14 ця роль також була стандартно повʼязана з system:unauthenticated.
system:public-info-viewer
Групи system:authenticated і system:unauthenticated
Дозволяє доступ лише для читання несекретної інформації про кластер. Представлено у Kubernetes v1.14.
Ролі для користувачів
Деякі зі стандартних ClusterRoles не мають префікса system:. Вони включають ролі суперкористувача (cluster-admin), ролі, призначені для надання у всьому кластері за допомогою ClusterRoleBindings, а також ролі, призначені для надання у певних просторах імен простору імен за допомогою RoleBindings (admin, edit, view).
Ролі для користувачів використовують агрегацію ClusterRole, щоб дозволити адміністраторам включати правила для спеціальних ресурсів у ці ClusterRole. Щоб додати правила до ролей admin, edit або view, створіть ClusterRole з однією або кількома з наступних міток:
Дозволяє доступ суперкористувача для виконання будь-якої дії на будь-якому ресурсі. При використанні в ClusterRoleBinding, надає повний контроль над кожним ресурсом у кластері та у всіх просторах імен. При використанні в RoleBinding, надає повний контроль над кожним ресурсом у просторі імен, включаючи сам простір імен.
admin
Немає
Дозволяє доступ адміністратора, призначений для надання в межах простору імен за допомогою RoleBinding.
Якщо використовується в RoleBinding, дозволяє доступ для читання/запису до більшості ресурсів у просторі імен, включаючи можливість створювати ролі та привʼязки ролей у просторі імен. Ця роль не дозволяє доступу для запису до квоти ресурсів або до самого простору імен. Ця роль також не дозволяє доступу для запису до EndpointSlices у кластерах, створених за допомогою Kubernetes v1.22+. Більше інформації доступно у розділі
"Достпу на запису у EndpointSlices".
edit
Немає
Дозволяє доступ для читання/запису до більшості обʼєктів у просторі імен.
Ця роль не дозволяє переглядати або змінювати ролі або привʼязки ролей. Однак ця роль дозволяє доступ до Secretʼів і запуску Podʼів як будь-який ServiceAccount у просторі імен, тому вона може бути використана для отримання рівня доступу API будь-якого ServiceAccount у просторі імен. Ця роль також не дозволяє доступу для запису до EndpointSlices у кластерах, створених за допомогою Kubernetes v1.22+. Більше інформації доступно у розділі "Достпу на запису у EndpointSlices".
view
Немає
Дозволяє доступ лише для читання до більшості обʼєктів у просторі імен. Ця роль не дозволяє переглядати ролі або привʼязки ролей. Ця роль не дозволяє переглядати Secretʼи, оскільки читання вмісту секретів дозволяє доступ до облікових даних ServiceAccount у просторі імен, що дозволило б доступ до API як будь-який ServiceAccount у просторі імен (форма ескалації привілеїв).
Ролі основних компонентів
Стандартна ClusterRole
Стандартна ClusterRoleBinding
Опис
system:kube-scheduler
system:kube-scheduler користувач
Дозволяє доступ до ресурсів, необхідних компоненту планувальника.
system:volume-scheduler
system:kube-scheduler користувач
Дозволяє доступ до ресурсів обʼєму, необхідних компоненту kube-scheduler.
Дозволяє доступ до ресурсів, необхідних для kubelet, включаючи доступ на читання до всіх секретів та доступ на запис до всіх обʼєктів стану Podʼів.
Ви повинні використовувати Node authorizer та втулок допуску NodeRestriction замість ролі system:node та дозволяти надання доступу до API для kubelet на основі Podʼів, які заплановано для запуску на них.
Роль system:node існує лише для сумісності з кластерами Kubernetes, оновленими з версій до v1.8.
system:node-proxier
system:kube-proxy користувач
Дозволяє доступ до ресурсів, необхідних компоненту kube-proxy.
Ролі інших компонентів
Стандартна ClusterRole
Стандартна ClusterRoleBinding
Опис
system:auth-delegator
Немає
Дозволяє делеговані перевірки автентифікації та авторизації. Це зазвичай використовується серверами надбудов API для уніфікованої автентифікації та авторизації.
Дозволяє доступ на читання до точок доступу моніторингу панелі управління (тобто точок доступу перевірки придатності та готовності kube-apiserver (/healthz, /livez, /readyz), індивідуальних точок доступу перевірки стану (/healthz/*, /livez/*, /readyz/*), /metrics), і змушує kube-apiserver враховувати заголовок traceparent, що надається разом із запитами для відстеження. Зверніть увагу, що індивідуальні точки доступу перевірки стану та точка доступу метрик можуть розкривати конфіденційну інформацію.
Ролі для вбудованих контролерів
Менеджер контролерів Kubernetes запускає контролери, які вбудовані в панель управління Kubernetes. Коли його викликають з --use-service-account-credentials, kube-controller-manager запускає кожен контролер використовуючи окремий службовий обліковий запис. Для кожного вбудованого контролера існують відповідні ролі з префіксом system:controller:. Якщо менеджер контролерів не запускається з --use-service-account-credentials, він виконує всі контрольні цикли використовуючи власні облікові дані, які повинні мати всі відповідні ролі. Ці ролі включають:
Запобігання ескалації привілеїв і початкове налаштування
API RBAC запобігає ескалації привілеїв користувачами шляхом редагування ролей або привʼязок ролей. Оскільки це реалізується на рівні API, це застосовується навіть коли авторизатор RBAC не використовується.
Обмеження на створення або оновлення ролей
Ви можете створити/оновити роль, тільки якщо виконується хоча б одна з наступних умов:
Ви вже маєте всі дозволи, що містяться в ролі, в тій же області, що й обʼєкт, який модифікується (кластерний рівень для ClusterRole, у тому ж просторі імен або кластерний рівень для Role).
Вам надано явний дозвіл виконувати дієслово escalate для ресурсу roles або clusterroles в групі API rbac.authorization.k8s.io.
Наприклад, якщо user-1 не має можливості отриамння переліку Secrets на кластерному рівні, він не може створити ClusterRole, що містить цей дозвіл. Щоб дозволити користувачу створювати/оновлювати ролі:
Надайте йому роль, що дозволяє створювати/оновлювати обʼєкти Role або ClusterRole, те що треба.
Надати йому дозвіл включати конкретні дозволи в ролі, які він створює/оновлює:
неявно, надаючи йому ці дозволи (якщо він спробує створити або модифікувати Role або ClusterRole з дозволами, які йому самому не надані, запит до API буде заборонений)
або явно дозволити вказувати будь-які дозволи в Role або ClusterRole, надаючи йому дозвіл виконувати дієслово escalate для ресурсів roles або clusterroles в групі API rbac.authorization.k8s.io.
Обмеження на створення або оновлення привʼязок ролей
Ви можете створити/оновити привʼязку ролі, тільки якщо вже маєте всі дозволи, що містяться в згаданій ролі (в тій же області, що й привʼязка ролі) або якщо вам надано дозвіл виконувати дієслово bind для згаданої ролі. Наприклад, якщо user-1 не має можливості отримувати перелік Secrets на кластерному рівні, він не може створити ClusterRoleBinding для ролі, яка надає цей дозвіл. Щоб дозволити користувачу створювати/оновлювати привʼязки ролей:
Надати йому роль, що дозволяє створювати/оновлювати обʼєкти RoleBinding або ClusterRoleBinding, як необхідно.
Надати йому дозволи, необхідні для привʼязки певної ролі:
неявно, надаючи йому дозволи, що м стяться в ролі.
явно, надаючи йому дозвіл виконувати дієслово bind для певної Role (або ClusterRole).
Наприклад, цей ClusterRole і RoleBinding дозволять user-1 надавати іншим користувачам ролі admin, edit і view у просторі імен user-1-namespace:
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:role-grantorrules:- apiGroups:["rbac.authorization.k8s.io"]resources:["rolebindings"]verbs:["create"]- apiGroups:["rbac.authorization.k8s.io"]resources:["clusterroles"]verbs:["bind"]# пропустіть resourceNames, щоб дозволити привʼязку будь-якої ClusterRoleresourceNames:["admin","edit","view"]---apiVersion:rbac.authorization.k8s.io/v1kind:RoleBindingmetadata:name:role-grantor-bindingnamespace:user-1-namespaceroleRef:apiGroup:rbac.authorization.k8s.iokind:ClusterRolename:role-grantorsubjects:- apiGroup:rbac.authorization.k8s.iokind:Username:user-1
Коли початково налаштовуються перші ролі та привʼязки ролей, необхідно, щоб початковий користувач надав дозволи, які він ще не має. Щоб початково налаштувати ролі та привʼязки ролей:
Використовуйте облікові дані з групою "system:masters", яка стандартно привʼязана до ролі суперкористувача "cluster-admin".
Утиліти командного рядка
kubectl create role
Створює обʼєкт Role, що визначає дозволи в межах одного простору імен. Приклади:
Створити Role з назвою "pod-reader", яка дозволяє користувачам виконувати get, watch і list для pods:
kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods
Створити Role з назвою "pod-reader" зі специфікованими resourceNames:
kubectl create role pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod
Створити Role з назвою "foo" зі специфікованими apiGroups:
kubectl create role foo --verb=get,list,watch --resource=replicasets.apps
Створити Role з назвою "foo" з дозволами на субресурси:
kubectl create role foo --verb=get,list,watch --resource=pods,pods/status
Створити Role з назвою "my-component-lease-holder" з дозволами на отримання/оновлення ресурсу зі специфічною назвою:
kubectl create role my-component-lease-holder --verb=get,list,watch,update --resource=lease --resource-name=my-component
kubectl create clusterrole
Створює ClusterRole. Приклади:
Створити ClusterRole з назвою "pod-reader", яка дозволяє користувачам виконувати get, watch і list для pods:
Типові політики RBAC надають обмежені права компонентам панелі управління, вузлам і контролерам, але не надають жодних дозволів службовим обліковим записам за межами простору імен kube-system (поза межами дозволів, наданих ролями виявлення API).
Це дозволяє надавати конкретні ролі конкретним ServiceAccounts за необхідності. Тонке налаштування привʼязок ролей забезпечує більшу безпеку, але вимагає більше зусиль для адміністрування. Ширші привʼязки можуть надати зайвий (і потенційно ескалуючий) доступ до API ServiceAccounts, але їх легше адмініструвати.
Підходи від найбезпечніших до найменш безпечних:
Надання ролі для службового облікового запису для конкретного застосунку (найкращий варіант)
Це вимагає від застосунку зазначення serviceAccountName в його специфікації Pod, і створення службового облікового запису (через API, маніфест програми, kubectl create serviceaccount, тощо).
Наприклад, надати права лише на читання в межах "my-namespace" службовому обліковому запису "my-sa":
Багато надбудов працюють від імені службового облікового запису "default" у просторі імен kube-system. Щоб дозволити цим надбудовам працювати з правами суперкористувача, надайте права cluster-admin службовому обліковому запису "default" у просторі імен kube-system.
Увага:
Включення цього означає, що в просторі імен kube-system знаходяться Secretʼи, які надають доступ суперкористувача до API вашого кластера.
Надання ролі всім службовим обліковим записам у просторі імен
Якщо ви хочете, щоб усі програми в просторі імен мали роль, незалежно від того, який службовий обліковий запис вони використовують, ви можете надати роль групі службових облікових записів для цього простору імен.
Наприклад, надати права лише на читання в межах "my-namespace" усім службовим обліковим записам у цьому просторі імен:
Надання прав суперкористувача всім службовим обліковим записам у кластері (категорично не рекомендується)
Якщо вам не важливо розподіляти дозволи взагалі, ви можете надати права суперкористувача всім службовим обліковим записам.
Попередження:
Це надає будь-якому застосунку повний доступ до вашого кластера, а також надає будь-якому користувачеві з правами читання Secretʼів (або здатності створювати будь-які Pod) повний доступ до вашого кластера.
Кластери Kubernetes, створені до версії Kubernetes v1.22, включають права запису для EndpointSlices (і зараз визнаних застарілим Endpoints API) у ролях "edit" і "admin". У рамках помʼякшення наслідків CVE-2021-25740, цей доступ не є частиною агрегованих ролей у кластерах, створених із використанням Kubernetes v1.22 або пізніших версій.
Кластери, які були оновлені до Kubernetes v1.22, не підпадають під цю зміну. Оголошення CVE включає вказівки щодо обмеження цього доступу в поточних кластерах.
Якщо ви хочете, щоб нові кластери зберігали цей рівень доступу в агрегованих ролях, ви можете створити наступну ClusterRole:
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:annotations:kubernetes.io/description:|- Add endpoints write permissions to the edit and admin roles. This was
removed by default in 1.22 because of CVE-2021-25740. See
https://issue.k8s.io/103675. This can allow writers to direct LoadBalancer
or Ingress implementations to expose backend IPs that would not otherwise
be accessible, and can circumvent network policies or security controls
intended to prevent/isolate access to those backends.
EndpointSlices were never included in the edit or admin roles, so there
is nothing to restore for the EndpointSlice API.labels:rbac.authorization.k8s.io/aggregate-to-edit:"true"name:custom:aggregate-to-edit:endpoints# виможете змінити це поле, за бажаннямrules:- apiGroups:[""]resources:["endpoints"]verbs:["create","delete","deletecollection","patch","update"]
Оновлення з ABAC
Кластери, що спочатку працювали на старіших версіях Kubernetes, часто використовували дозвільні політики ABAC, включаючи надання повного доступу до API всім службовим обліковим записам.
Типові політики RBAC надають обмежені права компонентам панелі управління, вузлам і контролерам, але не надають жодних дозволів службовим обліковим записам за межами простору імен kube-system (поза межами дозволів, наданих ролями виявлення API).
Хоча це набагато безпечніше, це може бути руйнівним для поточних робочих навантажень, які очікують автоматичного отримання дозволів API. Ось два підходи для управління цим переходом:
Паралельні авторизатори
Запускайте як RBAC, так і ABAC авторизатори, і вкажіть файл політики, що містить стару політику ABAC:
Щоб детально пояснити цей перший параметр командного рядка: якщо раніші авторизатори, такі як Node, відхиляють запит, тоді авторизатор RBAC намагається авторизувати запит до API. Якщо RBAC також відхиляє цей запит до API, тоді запускається авторизатор ABAC. Це означає, що будь-який запит, дозволений будь-якою політикою RBAC або ABAC, буде дозволений.
Коли kube-apiserver запускається з рівнем логування 5 або вище для компонента RBAC (--vmodule=rbac*=5 або --v=5), ви можете побачити відмови RBAC у лозі сервера API (позначені як RBAC). Ви можете використовувати цю інформацію для визначення, які ролі потрібно надати яким користувачам, групам або службовим обліковим записам.
Після того, як ви надали ролі службовим обліковим записам і робочі навантаження працюють без повідомлень про відмову RBAC у логах сервера, ви можете видалити авторизатор ABAC.
Дозвільні права RBAC
Ви можете відтворити дозвільну політику ABAC, використовуючи привʼязки ролей RBAC.
Попередження:
Наступна політика дозволяє ВСІМ службовим обліковим записам діяти як адміністратори кластера. Будь-який застосунок, що працює в контейнері, автоматично отримує облікові дані службового облікового запису і може виконувати будь-яку дію з API, включаючи перегляд секретів і зміну дозволів. Це не рекомендована політика.
Після переходу на використання RBAC, ви повинні налаштувати контроль доступу для вашого кластера, щоб забезпечити відповідність вашим інформаційним вимогам безпеки.
3.5 - Використання авторизації вузлів
Авторизація вузлів — це режим авторизації спеціального призначення, який спеціально авторизує запити API, зроблені kubelet-ами.
Огляд
Авторизатор вузлів дозволяє kubelet-ам виконувати операції з API. Це включає:
Операції читання:
services
endpoints
nodes
pods
secrets, configmaps, persistent volume claims та persistent volumes, що стосуються Podʼів, привʼязаних до вузла kubelet-а
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [stable](стандартно увімкнено)
Kubelets обмежені читанням власних обʼєктів Node і читанням тільки подів, привʼязаних до їхнього вузла.
Операції запису:
вузли та статус вузлів (увімкніть втулок допуску NodeRestriction, щоб обмежити kubelet у зміні свого власного вузла)
поди та статус подів (увімкніть втулок допуску NodeRestriction, щоб обмежити kubelet у зміні подів, привʼязаних до себе)
можливість створювати TokenReview та SubjectAccessReview для делегованої автентифікації/авторизації
У майбутніх випусках авторизатор вузлів може додавати або видаляти дозволи, щоб забезпечити kubelet-и мінімальним набором дозволів, необхідних для правильної роботи.
Для того, щоб бути авторизованими авторизатором вузлів, kubelet-и повинні використовувати облікові дані, які ідентифікують їх як членів групи system:nodes, з іменем користувача system:node:<nodeName>. Цей формат групи та імені користувача відповідає ідентичності, створеній для кожного kubelet-а в рамках TLS початкового запуску kubelet-а.
Значення <nodeName>має точно відповідати імені вузла, як зареєстровано kubelet-ом. Стандартно це імʼя хосту, надане hostname, або замінене за допомогою опції kubelet--hostname-override. Однак, при використанні опції kubelet --cloud-provider, конкретне імʼя хосту може бути визначено постачальником хмарних послуг, ігноруючи локальний hostname та опцію --hostname-override. Для деталей щодо визначення імені хосту kubelet-ом, дивіться довідник з опцій kubelet.
Щоб увімкнути авторизатор вузла, запустіть API server з прапорцем --authorization-config, встановленим у файлі, який містить авторизатор Node; наприклад:
Щоб обмежити обʼєкти API, які можуть писати kubelet-и, увімкніть втулок допуску NodeRestriction шляхом запуску apiserver з --enable-admission-plugins=...,NodeRestriction,....
Обмеження аудиторії токена службового облікового запису
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.33 [beta](стандартно увімкнено)
Коли функціоналну можливість ServiceAccountNodeAudienceRestriction увімкнено і втулок допуску NodeRestriction активний, kubelet може запитувати токени службових облікових записів лише для аудиторій, які вже згадуються в Podʼах на цьому вузлі. Це запобігає отриманню токенів для довільних аудиторій у разі компрометації вузла.
Дозволені аудиторії визначаються з Pod spec:
Стандартна аудиторія API сервера (порожня або налаштована аудиторія API сервера).
Аудиторії, встановлені в джерелах томів токенів службових облікових записів.
Аудиторії, налаштовані в spec.tokenRequests драйвера CSI для будь-якого драйвера CSI, що використовується подом, незалежно від того, чи це вбудовані томи CSI, томи, підтримувані PersistentVolumeClaim, або епhemeral томи.
Ви можете надати kubelet-ам дозвіл на запит токенів для аудиторій, які виходять за межі тих, що згадуються в Pod spec. Коли kubelet запитує токен з аудиторією, яка не знайдена в Pod spec, втулок допуску NodeRestriction перевіряє, чи авторизований kubelet, виконуючи перевірку авторизації з наступними атрибутами:
Атрибут
Значення
Дієслово
request-serviceaccounts-token-audience
Група API
(порожній рядок, що означає основну групу API)
Ресурс
Значення запитуваної аудиторії
Імʼя
Імʼя службового облікового запису
Простір імен
Простір імен службового облікового запису
Ви можете використовувати стандартні правила RBAC для авторизації цих перевірок. Поле resources контролює, які аудиторії дозволені, а поле resourceNames контролює, до яких службових облікових записів застосовується правило.
Наприклад, щоб дозволити kubelet-у запитувати аудиторію my-registry-audience для конкретного службового облікового запису:
Пропуск resourceNames дозволяє аудиторію для будь-якого службового облікового запису. Використання зірочки ("*") для resources дозволяє будь-яку аудиторію:
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:node-audience-unrestrictedrules:- verbs:["request-serviceaccounts-token-audience"]apiGroups:[""]resources:["*"]# будь-яка аудиторія# без resourceNames: будь-який службовий обліковий запис
Привʼязка ClusterRole до групи system:nodes, щоб застосувати його до всіх kubelet-ів:
Це обмеження є частиною втулка допуску NodeRestriction і застосовується лише до ідентичностей вузлів (kubelet-ів). Воно не обмежує, які аудиторії можуть запитувати інші виклики API TokenRequest. Якщо вам потрібно обмежити інших викликів, розгляньте можливість використання ValidatingAdmissionPolicy.
Міркування щодо міграції
Kubelet-и поза групою system:nodes
Kubelet-и, що знаходяться поза групою system:nodes, не будуть авторизовані режимом авторизації Node, і їм потрібно буде продовжувати авторизацію через механізм, який їх наразі авторизує. Вутлок допуску вузлів не буде обмежувати запити від цих kubelet-ів.
Kubelet-и з недиференційованими іменами користувачів
У деяких розгортаннях kubelet-и мають облікові дані, що розміщують їх у групі system:nodes, але не ідентифікують конкретний вузол, з яким вони повʼязані, оскільки вони не мають імені користувача у форматі system:node:.... Ці kubelet-и не будуть авторизовані режимом авторизації Node, і їм потрібно буде продовжувати авторизацію через механізм, який їх наразі авторизує.
Втулок допуску NodeRestriction буде ігнорувати запити від цих kubelet-ів, оскільки стандартна реалізація ідентифікатора вузла не вважатиме це ідентичністю вузла.
3.6 - Режим Webhook
Webhook — це зворотний виклик HTTP: HTTP POST, який відбувається, коли щось стається; просте сповіщення про подію через HTTP POST. Вебзастосунок, що реалізує Webhook, буде надсилати POST повідомлення на URL, коли відбуваються певні події.
Коли вказано режим Webhook, Kubernetes звертається до зовнішнього REST сервісу для визначення привілеїв користувача.
Формат файлу конфігурації
Режим Webhook потребує файл для HTTP конфігурації, що вказується за допомогою прапорця --authorization-webhook-config-file=SOME_FILENAME.
Файл конфігурації використовує формат файлу kubeconfig. У файлі "users" стосується конфігурації webhook API сервера, а "clusters" — до віддаленого сервісу.
Приклад конфігурації, що використовує клієнтську автентифікацію HTTPS:
# Версія Kubernetes APIapiVersion:v1# тип API обʼєктаkind:Config# кластери відносяться до віддаленого сервісуclusters:- name:name-of-remote-authz-servicecluster:# CA для перевірки віддаленого сервісуcertificate-authority:/path/to/ca.pem# URL віддаленого сервісу для запитів. Має використовувати 'https'. Не може включати параметри.server:https://authz.example.com/authorize# користувачі відносяться до конфігурації webhook API сервераusers:- name:name-of-api-serveruser:client-certificate:/path/to/cert.pem# сертифікат для використання webhook втулкомclient-key:/path/to/key.pem # ключ, що відповідає сертифікату# файли kubeconfig вимагають контекст. Вкажіть один для API сервера.current-context:webhookcontexts:- context:cluster:name-of-remote-authz-serviceuser:name-of-api-servername:webhook
Запити корисного навантаження
При ухваленні рішення про авторизацію, API сервер надсилає JSON- серіалізований обʼєкт authorization.k8s.io/v1beta1SubjectAccessReview, що описує дію. Цей обʼєкт містить поля, що описують користувача, який намагається зробити запит, та деталі про ресурс, до якого здійснюється доступ, або атрибути запиту.
Зверніть увагу, що обʼєкти API webhook підлягають тим самим правилам сумісності версій, що й інші обʼєкти API Kubernetes. Імплементатори повинні бути обізнані з менш суворими обіцянками сумісності для бета-обʼєктів і перевіряти поле "apiVersion" запиту для забезпечення правильної десеріалізації. Додатково, API сервер повинен увімкнути групу розширень API authorization.k8s.io/v1beta1 (--runtime-config=authorization.k8s.io/v1beta1=true).
Віддалений сервіс має заповнити поле status запиту і відповісти, дозволяючи або забороняючи доступ. Поле spec у відповіді ігнорується і може бути пропущене. Дозвільна відповідь виглядатиме так:
Перший метод є кращим у більшості випадків і вказує, що webhook авторизації не дозволяє або не має "думки" ("no opinion") щодо запиту, але якщо інші авторизатори налаштовані, вони отримують шанс дозволити запит. Якщо немає інших авторизаторів або жоден з них не дозволяє запит, запит забороняється. Webhook поверне:
{"apiVersion":"authorization.k8s.io/v1beta1","kind":"SubjectAccessReview","status":{"allowed":false,"reason":"user does not have read access to the namespace"}}
Другий метод негайно відмовляє, перериваючи оцінку іншими налаштованими авторизаторами. Це слід використовувати лише вебхуками, які мають детальні знання про повну конфігурацію авторизатора кластера. Webhook поверне:
{"apiVersion":"authorization.k8s.io/v1beta1","kind":"SubjectAccessReview","status":{"allowed":false,"denied":true,"reason":"user does not have read access to the namespace"}}
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [stable](стандартно увімкнено)
При виклику вебхука авторизації Kubernetes передає селектори міток і полів у запиті до вебхука авторизації. Вебхук авторизації може приймати рішення про авторизацію на основі селекторів полів і міток, якщо це необхідно.
Документація API SubjectAccessReview надає вказівки щодо того, як ці поля мають інтерпретуватися і оброблятися вебхуками авторизації, зокрема використанням розібраних вимог замість сирих рядків селекторів та як безпечно обробляти невідомі оператори.
Нересурсні шляхи включають: /api, /apis, /metrics, /logs, /debug, /healthz, /livez, /openapi/v2, /readyz та /version. Клієнти потребують доступу до /api, /api/*, /apis, /apis/*, та /version для визначення, які ресурси та версії присутні на сервері. Доступ до інших нересурсних шляхів може бути заборонений без обмеження доступу до REST API.
Авторизація на основі атрибутів (ABAC) визначає парадигму контролю доступу, за якою права доступу надаються користувачам за допомогою політик, які комбінують атрибути.
Формат файлу політики
Для увімкнення режиму ABAC вказуйте --authorization-policy-file=SOME_FILENAME та --authorization-mode=ABAC при запуску.
Формат файлу — один обʼєкт JSON на рядок. Не повинно бути жодного вкладеного списку або map, тільки один map на рядок.
Кожний рядок — "обʼєкт політики", де такий обʼєкт є map із такими властивостями:
Властивості версіювання:
apiVersion, типу string; допустимі значення "abac.authorization.kubernetes.io/v1beta1". Дозволяє версіювання та конвертацію формату політики.
kind, типу string: допустимі значення "Policy". Дозволяє версіювання та конвертацію формату політики.
Властивість spec встановлена на мапу з такими властивостями:
Властивості зіставлення субʼєкта:
user, типу string; рядок користувача з --token-auth-file. Якщо ви вказуєте user, він повинен збігатися з імʼям користувача автентифікованого користувача.
group, типу string; якщо ви вказуєте group, він повинен збігатися з однією з груп автентифікованого користувача. system:authenticated збігається з усіма автентифікованими запитами. system:unauthenticated збігається з усіма неавтентифікованими запитами.
Властивості зіставлення ресурсу:
apiGroup, типу string; група API.
Наприклад: apps, networking.k8s.io
Маска: * збігається з усіма групами API.
namespace, типу string; простір імен.
Наприклад: kube-system
Маска: * збігається з усіма запитами ресурсів.
resource, типу string; тип ресурсу
Наприклад: pods, deployments
Маска: * збігається з усіма запитами ресурсів.
Властивості зіставлення нересурсів:
nonResourcePath, типу string; шляхи запитів нересурсів.
Наприклад: /version або /apis
Маска:
* збігається з усіма запитами нересурсів.
/foo/* збігається з усіма підшляхами /foo/.
readonly, типу boolean, якщо true, означає, що політика, що зіставляється з ресурсом, застосовується тільки до операцій get, list, та watch, а політика, що зіставляється з нересурсами, застосовується тільки до операції get.
Примітка:
Невстановлена властивість є такою самою, як властивість, що встановлена на нульове значення для свого типу (наприклад, порожній рядок, 0, false). Проте невстановлена властивість має перевагу для зручності читання.
У майбутньому політики можна буде виражати у форматі JSON і керувати ними через REST-інтерфейс.
Алгоритм авторизації
У запиту є атрибути, які відповідають властивостям обʼєкта політики.
Коли отримано запит, визначаються атрибути. Невідомі атрибути встановлюються на нульове значення свого типу (наприклад, порожній рядок, 0, false).
Властивість, встановлена на "*", буде збігатися з будь-яким значенням відповідного атрибута.
Кортеж атрибутів перевіряється на відповідність кожній політиці в файлі політики. Якщо принаймні один рядок відповідає атрибутам запиту, тоді запит авторизований (але може зазнати невдачі під час подальшої перевірки).
Щоб дозволити будь-якому автентифікованому користувачеві зробити щось, створіть політику з властивістю group, встановленою на "system:authenticated".
Щоб дозволити будь-якому неавтентифікованому користувачеві зробити щось, створіть політику з властивістю group, встановленою на "system:unauthenticated".
Щоб дозволити користувачеві зробити все, створіть політику з властивостями apiGroup, namespace, resource та nonResourcePath, встановленими на "*".
Kubectl
Kubectl використовує точки доступу /api та /apis apiserver для виявлення сервісів, які обслуговують типи ресурсів, і перевіряє обʼєкти, надіслані до API за допомогою операцій create/update, використовуючи інформацію про схему, розташовану в /openapi/v2.
При використанні авторизації на основі атрибутів, ці спеціальні ресурси мають бути явно відкриті за допомогою властивості nonResourcePath в політиці (див. приклади нижче):
/api, /api/*, /apis та /apis/* для вибору версії API.
/version для отримання версії сервера через kubectl version.
/swaggerapi/* для операцій create/update.
Щоб перевірити HTTP-виклики, повʼязані з певною операцією kubectl, ви можете збільшити рівень деталізації:
Кожен службовий обліковий запис має відповідне імʼя користувача ABAC, і імʼя цього службового облікового запису генерується згідно з конвенцією щодо найменування:
Створюючи новий простір імен, створюється новий службовий обліковий запис у наступному форматі:
system:serviceaccount:<namespace>:default
Наприклад, якщо ви хочете надати стандартному службовому обліковому запису (у просторі імен kube-system) повні привілеї в API за допомогою ABAC, ви додаєте цей рядок до файлу політики:
apiserver повинен бути перезапущений, щоб використати нові рядки.
3.8 - Контролери допуску в Kubernetes
Ця сторінка надає огляд контролерів допуску.
Контролер допуску — це фрагмент коду, який перехоплює запити до сервера API Kubernetes перед збереженням обʼєкта, але після того, як запит був автентифікований та авторизований.
Кілька важливих функцій Kubernetes вимагають увімкнення контролера допуску, щоб належним чином підтримувати функцію. Як наслідок, сервер API Kubernetes, який не налаштований належним чином з правильним набором контролерів допуску, є неповноцінним сервером, який не буде підтримувати всі функції, які ви очікуєте.
Що це таке?
Контролери допуску є кодов в API server Kubernetes, який перевіряє дані, що надходять на запит на зміну ресурсів.
Контролери допуску застосовуються до запитів на створення, видалення, зміну обʼєктів. Контролери допуску також можуть блокувати нестандартні дієслова, такі як запити на підключення до Podʼа через проксі сервера API. Контролери допуску не блокують (і не можуть) запити на читання (get, watch або list) обʼєктів, оскільки читання оминає шар контролю допуску.
Механізми управління доступом можуть бути валідаційними, модифікуючими або і тими, і іншими. Модифікуючі контролери можуть змінювати дані для ресурсу, який модифікується; валідаційні контролери не можуть.
Контролери допуску в Kubernetes 1.36 складаються зі списку нижче, вбудовані у двійковий файл kube-apiserver і можуть бути налаштовані тільки адміністратором кластера.
Ви можете використовувати ці три контролери допуску, щоб налаштувати поведінку кластера під час допуску.
Етапи контролю допуску
Процес контролю допуску проходить у два етапи. На першому етапі виконуються модифікуючі контролери допуску. На другому етапі виконуються валідаційні контролери допуску. Знову ж таки, деякі контролери є обома.
Якщо будь-який з контролерів на будь-якому етапі відхиляє запит, весь запит негайно відхиляється, і користувачу повертається помилка.
Нарешті, окрім іноді модифікації обʼєкта, про який йдеться, контролери допуску можуть іноді мати побічні ефекти, тобто змінювати повʼязані ресурси в процесі обробки запиту. Збільшення використання квоти є класичним прикладом того, чому це необхідно. Будь-який такий побічний ефект потребує відповідного процесу рекламації або узгодження, оскільки даний контролер допуску не знає напевно, що даний запит пройде через всі інші контролери допуску.
Порядок цих викликів можна побачити нижче.
Навіщо вони мені потрібні?
Кілька важливих функцій Kubernetes вимагають увімкнення контролера доступу, щоб належним чином підтримувати функцію. Як наслідок, сервер API Kubernetes, який не налаштований належним чином з правильним набором контролерів доступу, є неповним сервером і не буде підтримувати всі функції, які ви очікуєте.
Як увімкнути контролер допуску?
Прапорець сервера API Kubernetes enable-admission-plugins приймає через кому список втулків контролю допуску, які слід викликати перед зміною обʼєктів у кластері. Наприклад, наступна команда увімкне втулки контролю допуску NamespaceLifecycle та LimitRanger:
Залежно від того, як ваш кластер Kubernetes розгорнутий і як запускається сервер API, вам може знадобитися застосувати налаштування різними способами. Наприклад, вам може знадобитися змінити файл системного блоку systemd, якщо сервер API розгорнуто як службу systemd ви можете змінити файл маніфесту для сервера API, якщо Kubernetes розгорнуто як самостійний хостинг.
Як вимкнути контролер допуску?
Прапорець сервера API Kubernetes disable-admission-plugins приймає через кому список втулків контролю допуску, які слід вимкнути, навіть якщо вони є у списку втулків, що є стандартно увімкненими.
Цей контролер допуску дозволяє запуск всіх Podʼів в кластер. Він застарілий, оскільки його поведінка така ж, якби не було ніякого контролера допуску взагалі.
AlwaysDeny
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.13 [deprecated]
Тип: Валідаційний.
Відхиляє всі запити. AlwaysDeny застарілий, оскільки не має реального значення.
AlwaysPullImages
Тип: Модифікуючий та Валідаційний.
Цей контролер допуску модифікує кожен новий Pod, щоб примусити використовувати політику завантаження образів Always. Це корисно в багатокористувацькому кластері, щоб користувачі могли бути впевнені, що їхні приватні образи можуть використовувати лише ті, хто має відповідні облікові дані для їх завантаження. Без цього контролера допуску, після того, як образи було завантажено на вузол, будь-який Pod будь-якого користувача може використовувати його, знаючи імʼя образу (за умови, що Pod розміщений на правильному вузлі), без жодної перевірки вторизації для образу. Коли цей контролер допуску увімкнений, образи завжди завантажуються перед запуском контейнерів, що означає, що потрібні дійсні облікові дані.
CertificateApproval
Тип: Валідаційний.
Цей контролер допуску спостерігає за запитами на затвердження ресурсів CertificateSigningRequest і виконує додаткові перевірки авторизації, щоб переконатися, що користувач, який затверджує, має дозвіл на затвердження запитів сертифікатів із запитаним spec.signerName у ресурсі CertificateSigningRequest.
Дивіться Запити на підписання сертифікатів для отримання додаткової інформації про дозволи, необхідні для виконання різних дій з ресурсами CertificateSigningRequest.
CertificateSigning
Тип: Валідаційний.
Цей контролер допуску спостерігає за оновленнями поля status.certificate ресурсів CertificateSigningRequest і виконує додаткові перевірки авторизації, щоб переконатися, що користувач, який підписує, має дозвіл на підписання запитів сертифікатів із запитаним spec.signerName у ресурсі CertificateSigningRequest.
Дивіться Запити на підписання сертифікатів для отримання додаткової інформації про дозволи, необхідні для виконання різних дій з ресурсами CertificateSigningRequest.
CertificateSubjectRestriction
Тип: Валідаційний.
Цей контролер допуску спостерігає за створенням ресурсів CertificateSigningRequest, які мають spec.signerName значення kubernetes.io/kube-apiserver-client. Він відхиляє будь-який запит, який вказує групу (або атрибут організації) system:masters.
DefaultIngressClass
Тип: Модифікуючий.
Цей контролер допуску спостерігає за створенням обʼєктів Ingress, які не запитують жодного конкретного класу ingress, і автоматично додає до них стандартний клас ingress. Таким чином, користувачі, які не запитують жодного спеціального класу ingress, не повинні про це турбуватися та отримають стандартний клас.
Цей контролер допуску нічого не робить, коли не налаштований жоден стандартний клас ingress. Коли більше одного класу ingress позначено як стандартний клас, він відхиляє будь-яке створення Ingress з помилкою, і адміністратор повинен переглянути свої обʼєкти IngressClass та позначити лише один як стандартний клас (з анотацією "ingressclass.kubernetes.io/is-default-class"). Цей контролер допуску ігнорує будь-які оновлення Ingress; він діє тільки при створенні.
Дивіться документацію Ingress для отримання додаткової інформації про класи ingress і як позначити один як стандартний клас.
DefaultStorageClass
Тип: Модифікуючий.
Цей контролер допуску спостерігає за створенням обʼєктів PersistentVolumeClaim, які не запитують жодного конкретного класу зберігання, і автоматично додає до них стандартний клас зберігання. Таким чином, користувачі, які не запитують жодного спеціального класу зберігання, не повинні про це турбуватися та отримають стандартний клас.
Цей контролер допуску нічого не робить, якщо не існує стандартного StorageClass. Коли більше ніж один клас сховища позначено як стандартний, а потім ви створюєте PersistentVolumeClaim без встановленого storageClassName, Kubernetes використовує останній створений стандартний StorageClass. Коли PersistentVolumeClaim створено із зазначеним volumeName, він залишається у стані очікування якщо storageClassName статичного тому не збігається з storageClassName у PersistentVolumeClaim після застосування до нього будь-якого стандартного класу сховища. Цей контролер доступу ігнорує будь-які оновлення PersistentVolumeClaim; він діє лише при створенні.
Дивіться документацію постійних томів про persistent volume claims та класи зберігання, а також як позначити клас зберігання як стандартний клас.
DefaultTolerationSeconds
Тип: Модифікуючий.
Цей контролер допуску встановлює стандартне значення толерантності для Podʼів, щоб терпіти taints notready:NoExecute та unreachable:NoExecute на основі параметрів введення k8s-apiserver default-not-ready-toleration-seconds та default-unreachable-toleration-seconds, якщо Podʼи ще не мають толерантності до taints node.kubernetes.io/not-ready:NoExecute або node.kubernetes.io/unreachable:NoExecute. Стандартне значення для default-not-ready-toleration-seconds та default-unreachable-toleration-seconds становить 5 хвилин.
DenyServiceExternalIPs
Тип: Валідаційний.
Цей контролер допуску відхиляє всі нові використання поля externalIPs у Service. Ця функція дуже потужна (дозволяє перехоплення мережевого трафіку) і не контролюється належним чином політиками. Коли цей контролер увімкнено, користувачі кластера не можуть створювати нові Serviceʼи, які використовують externalIPs, і не можуть додавати нові значення до externalIPs в поточних обʼєктах Service. Поточні використання externalIPs не зачіпаються, і користувачі можуть видаляти значення з externalIPs в наявних обʼєктах Service.
Більшість користувачів взагалі не потребує цієї функції, і адміністратори кластера повинні розглянути можливість її вимкнення. Кластери, які потребують цієї функції, повинні розглянути можливість використання власних політик для керування її використанням.
Цей контролер допуску стандартно вимкнено.
EventRateLimit
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.13 [alpha]
Тип: Валідаційний.
Цей контролер допуску зменшує проблему, коли API-сервер переповнюється запитами на зберігання нових подій (Events). Адміністратор кластера може вказати обмеження швидкості подій, виконавши такі кроки:
Увімкнути контролер допуску EventRateLimit;
Посилатися на конфігураційний файл EventRateLimit з файлу, наданого у командному рядку API-сервера з прапорцем --admission-control-config-file:
Цей втулок полегшує створення виділених вузлів з розширеними ресурсами. Якщо оператори хочуть створити виділені вузли з розширеними ресурсами (наприклад, GPU, FPGA тощо), вони повинні накладати taint на вузол з іменем розширеного ресурсу як ключем. Цей контролер допуску, якщо він увімкнений, автоматично додає толерантності до таких taint у Podʼи, які запитують розширені ресурси, тому користувачам не потрібно вручну додавати ці толерантності.
Цей контролер допуску стандартно вимкнено.
ImagePolicyWebhook
Тип: Валідаційний.
Контролер допуску ImagePolicyWebhook дозволяє бекенд-вебхуку приймати рішення про допуск.
Цей контролер допуску стандартно вимкнено.
Формат конфігураційного файлу
ImagePolicyWebhook використовує конфігураційний файл для налаштування поведінки бекенду. Цей файл може бути у форматі JSON або YAML і має наступний формат:
imagePolicy:kubeConfigFile:/path/to/kubeconfig/for/backend# час у секундах для кешування дозволуallowTTL:50# час у секундах для кешування відмовиdenyTTL:50# час у мілісекундах між спробами повторуretryBackoff:500# визначає поведінку у разі відмови бекенда вебхукаdefaultAllow:true
Посилання на конфігураційний файл ImagePolicyWebhook повинно бути зазначене у файлі, який передається прапорцю командного рядка API-сервера --admission-control-config-file:
Конфігураційний файл ImagePolicyWebhook повинен посилатися на файл у форматі kubeconfig, який налаштовує зʼєднання з бекендом. Бекенд повинен здійснювати комунікацію через TLS.
Поле cluster у файлі kubeconfig має посилатися на віддалений сервіс, а поле user повинно містити дані авторизації.
# clusters посилається на віддалений сервіс.clusters:- name:name-of-remote-imagepolicy-servicecluster:certificate-authority:/path/to/ca.pem # CA для верифікації віддаленого сервісу.server:https://images.example.com/policy# URL віддаленого сервісу для запитів. Повинен використовувати 'https'.# users посилається на конфігурацію вебхука API-сервера.users:- name:name-of-api-serveruser:client-certificate:/path/to/cert.pem# сертифікат для використання контролером допуску вебхукаclient-key:/path/to/key.pem # ключ, що відповідає сертифікату
Для додаткової конфігурації HTTP дивіться документацію kubeconfig.
Вміст запитів
Під час прийняття рішення про допуск, API-сервер надсилає POST-запит з серіалізованим у форматі JSON обʼєктом imagepolicy.k8s.io/v1alpha1ImageReview, що описує дію. Цей обʼєкт містить поля, що описують контейнери, які підлягають допуску, а також будь-які анотації Podʼа, що відповідають *.image-policy.k8s.io/*.
Примітка:
Обʼєкти API вебхуків підлягають тим самим правилам сумісності версій, що й інші обʼєкти API Kubernetes. Імплементатори повинні знати про менш жорсткі обіцянки сумісності для альфа-обʼєктів і перевіряти поле apiVersion запиту для забезпечення правильної десеріалізації. Крім того, API-сервер повинен увімкнути групу розширень API imagepolicy.k8s.io/v1alpha1 (--runtime-config=imagepolicy.k8s.io/v1alpha1=true).
Віддалений сервіс повинен заповнити поле status запиту і відповісти з дозволом або відмовою доступу. Поле spec тіла відповіді ігнорується, і його можна не включати. Відповідь, яка дозволяє доступ, виглядатиме так:
Обʼєкт ImageReview включає всі образи в Pod, які призначені для виконання як контейнери. Це охоплює образи, зазначені як частина полів containers, initContainers або ephemeralContainers у специфікації Podʼа. Відповідно, образи, включені в image volumes, не підпадають під дію ImagePolicyWebhook.
Розширення за допомогою анотацій
Усі анотації на Podʼі, що відповідають *.image-policy.k8s.io/*, надсилаються до вебхука. Надсилання анотацій дозволяє користувачам, які знають про бекенд політики образів, надсилати додаткову інформацію до нього, а також дозволяє реалізаціям різних бекендів приймати різну інформацію.
Приклади інформації, яку ви можете тут розмістити:
запит на "пробиття" для обходу політики у разі надзвичайної ситуації;
номер квитка з системи квитків, що документує запит на "пробиття";
підказка серверу політики щодо imageID наданого образу для економії часу на пошук.
У будь-якому випадку, анотації надаються користувачем і не перевіряються Kubernetes будь-яким чином.
LimitPodHardAntiAffinityTopology
Тип: Валідаційний.
Цей контролер допуску забороняє будь-який Pod, який визначає ключ топології AntiAffinity відмінний від kubernetes.io/hostname у requiredDuringSchedulingIgnoredDuringExecution.
Цей контролер допуску стандартно вимкнено.
LimitRanger
Тип: Модифікуючий та Валідаційний.
Цей контролер допуску спостерігає за вхідним запитом та забезпечує, щоб він не порушував жодних обмежень, перерахованих в обʼєкті LimitRange в Namespace. Якщо ви використовуєте обʼєкти LimitRange у своєму розгортанні Kubernetes, ви МАЄТЕ використовувати цей контролер допуску для забезпечення дотримання цих обмежень. LimitRanger також може використовуватися для застосування стандартних ресурсних запитів до Pod, які їх не вказують; наразі стандартний LimitRanger застосовує вимогу до 0.1 CPU до всіх Pod у default namespace.
Цей контролер допуску викликає будь-які модифікуючі вебхуки, які відповідають запиту. Відповідні вебхуки викликаються послідовно; кожен з них може змінити обʼєкт, якщо це необхідно.
Цей контролер допуску (як випливає з назви) працює лише на етапі модифікації.
Якщо вебхук, викликаний цим контролером, має побічні ефекти (наприклад, зменшення квоти), він повинен мати систему узгодження, оскільки не гарантується, що наступні вебхуки або контролери допуску дозволять завершити запит.
Якщо ви вимкнете MutatingAdmissionWebhook, ви також повинні вимкнути обʼєкт MutatingWebhookConfiguration у групі/версії admissionregistration.k8s.io/v1 за допомогою прапорця --runtime-config, обидва стандартно увімкнені.
Будьте обережні при створенні та встановленні модифікуючих вебхуків
Користувачі можуть бути спантеличені, коли обʼєкти, які вони намагаються створити, відрізняються від того, що вони отримують назад.
Вбудовані контрольні цикли можуть зламатися, коли обʼєкти, які вони намагаються створити, відрізняються при зворотному читанні.
Встановлення спочатку незаданих полів менш ймовірно викличе проблеми, ніж переписування полів, встановлених у початковому запиті. Уникайте останнього.
Майбутні зміни в контрольних циклах для вбудованих або сторонніх ресурсів можуть зламати вебхуки, які добре працюють сьогодні. Навіть коли API вебхука для установки буде фіналізовано, не всі можливі поведінки вебхука будуть гарантовано підтримуватися нескінченно.
NamespaceAutoProvision
Тип: Модифікуючий.
Цей контролер допуску перевіряє всі вхідні запити на ресурси, що належать до namespace, і перевіряє чи існує зазначений namespace. Він створює namespace, якщо його не знайдено. Цей контролер допуску корисний у розгортаннях, які не хочуть обмежувати створення namespace до його використання.
NamespaceExists
Тип: Валідаційний.
Цей контролер допуску перевіряє всі запити на ресурси, що належать до namespace, крім самого Namespace. Якщо namespace, на який посилається запит, не існує, запит відхиляється.
NamespaceLifecycle
Тип: Валідаційний.
Цей контролер допуску забезпечує, що Namespace, який знаходиться в процесі завершення, не може мати нові обʼєкти, створені в ньому, і забезпечує відхилення запитів у неіснуючому Namespace. Цей контролер допуску також запобігає видаленню трьох системно зарезервованих namespaces: default, kube-system, kube-public.
Видалення Namespace запускає послідовність операцій, які видаляють усі обʼєкти (Pod, Service, тощо) у цьому namespace. Для забезпечення цілісності цього процесу, ми наполегливо рекомендуємо використовувати цей контролер допуску.
NodeDeclaredFeatureValidator
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [beta](стандартно увімкнено)
Тип: Валідаційний.
Цей контролер допуску перехоплює записи до привʼязаних Podʼів, щоб забезпечити сумісність з функціями, оголошеними вузлом, де Pod зараз працює. Він використовує поле .status.declaredFeatures обʼєкта Node, щоб визначити набір увімкнених функцій. Якщо оновлення Podʼа вимагає функції, якої немає у функціях поточного вузла, контролер допуску відмовить у запиті на оновлення. Це запобігає помилкам під час виконання через несумісність функцій після того, як Pod був запланований.
Цей контролер допуску є стандартно увімкненим, якщо увімкнено функціональну можливість NodeDeclaredFeatures.
NodeRestriction
Тип: Валідаційний.
Цей контролер допуску обмежує обʼєкти Node і Pod, які kubelet може змінювати. Для того, щоб бути обмеженим цим контролером допуску, kubelets повинні використовувати облікові дані у групі system:nodes, з іменем користувача у формі system:node:<nodeName>. Такі kubelets будуть мати дозвіл лише змінювати свої власні обʼєкти API Node, і лише змінювати обʼєкти API Pod, які привʼязані до їх вузла. kubelets не мають права оновлювати або видаляти taint зі свого обʼєкта API Node.
Втулок допуску NodeRestriction перешкоджає kubelets видаляти їх обʼєкт API Node, і забезпечує оновлення kubeletʼом міток з префіксами kubernetes.io/ або k8s.io/ наступним чином:
Заборонено (Kubelets не можуть змінювати ці елементи):
Мітки з префіксом node-restriction.kubernetes.io/. Цей префікс зарезервовано для адміністраторів, щоб вони могли позначати об’єкти Node з метою ізоляції робочих навантажень.
Мітки з префіксом node-role.kubernetes.io/ (наприклад: node-role.kubernetes.io/control-plane). Вони обмежені, щоб запобігти самопроголошенню ролей кластера вузлами без привілеїв.
Дозволено (Kubelets можуть додавати/видаляти/оновлювати їх):
Зарезервовано: Використання будь-яких інших міток з префіксами kubernetes.io або k8s.io kubelets зарезервовано. Втулок допуску NodeRestriction зазвичай забороняє їх використання, щоб запобігти несанкціонованому самопозначенню, але може дозволити додаткові мітки з цими префіксами в майбутньому як частину нових функцій.
Коли функціоналну можливість ServiceAccountNodeAudienceRestriction увімкнено, цей контролер допуску також обмежує аудиторії, для яких kubelet може запитувати токени службових облікових записів через API TokenRequest. Kubelet може запитувати токени лише для аудиторій, які вже згадуються в Podʼах на цьому вузлі (через спроєцьовавні томи токенів службових облікових записів або запити токенів драйвера CSI), або для аудиторій, явно наданих через RBAC за допомогою дієслова request-serviceaccounts-token-audience. Для отримання додаткової інформації див. Обмеження аудиторії токена службового облікового запису.
Майбутні версії можуть додати додаткові обмеження для забезпечення того, щоб kubelets мали мінімальний набір дозволів, необхідних для правильної роботи.
OwnerReferencesPermissionEnforcement
Тип: Валідаційний.
Цей контролер допуску захищає доступ до metadata.ownerReferences обʼєкта, так що тільки користувачі з правами delete у обʼєкта можуть його змінювати. Цей контролер допуску також захищає доступ до metadata.ownerReferences[x].blockOwnerDeletion обʼєкта, так що тільки користувачі з правами update у субресурсу finalizers посилального власника можуть його змінювати.
PersistentVolumeClaimResize
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.24 [stable]
Тип: Валідаційний.
Цей контролер допуску реалізує додаткові перевірки для перевірки вхідних запитів на зміну розміру PersistentVolumeClaim.
Рекомендується увімкнути контролер допуску PersistentVolumeClaimResize. Цей контролер допуску запобігає зміні розміру всіх вимог за замовчуванням, якщо тільки StorageClass вимоги явно не дозволяє зміну розміру, встановлюючи allowVolumeExpansion на true.
Наприклад: всі PersistentVolumeClaim, створені з наступного StorageClass, підтримують розширення тому:
Для отримання додаткової інформації про persistent volume claims, дивіться PersistentVolumeClaims.
PodNodeSelector
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.5 [alpha]
Тип: Валідаційний.
Цей контролер допуску задає та обмежує, які селектори вузлів можуть використовуватися в межах namespace, шляхом читання анотації namespace та глобальної конфігурації.
Цей контролер допуску стандартно вимкнено.
Формат конфігураційного файлу
PodNodeSelector використовує конфігураційний файл для налаштування параметрів поведінки бекенду. Зверніть увагу, що формат конфігураційного файлу буде змінено на версійований файл у майбутньому випуску. Цей файл може бути у форматі json або yaml і має наступний формат:
Якщо Namespace має анотацію з ключем scheduler.alpha.kubernetes.io/node-selector, використовуйте її значення як селектор вузлів.
Якщо namespace не має такої анотації, використовуйте clusterDefaultNodeSelector, визначений у конфігураційному файлі втулка PodNodeSelector, як селектор вузлів.
Оцініть селектор вузлів Podʼа щодо селектора вузлів namespace на предмет конфліктів. Конфлікти призводять до відхилення.
Оцініть селектор вузлів Podʼа щодо дозволеного селектора, визначеного у конфігураційному файлі плагіну для конкретного namespace. Конфлікти призводять до відхилення.
Примітка:
PodNodeSelector дозволяє змусити Podʼи працювати на вузлах зі спеціальними мітками. Дивіться також втулок допуску PodTolerationRestriction, який дозволяє запобігти запуску Podʼів на вузлах зі спеціальними taintʼами.
PodSecurity
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.25 [stable]
Тип: Валідаційний.
Контролер допуску PodSecurity перевіряє нові Podʼи перед їх допуском і визначає, чи варто їх допускати на основі запитуваного контексту безпеки та обмежень щодо дозволених Стандартів безпеки для Podʼів для namespace, в якому буде знаходитися Pod.
PodSecurity замінив старіший контролер допуску під назвою PodSecurityPolicy.
PodTolerationRestriction
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.7 [alpha]
Тип: Модифікуючий та Валідаційний.
Контролер допуску PodTolerationRestriction перевіряє конфлікти між толерантностями Podʼа та толерантностями його namespace. Він відхиляє запит Podʼа у разі конфлікту. Потім він обʼєднує толерантності, анотовані на namespace, з толерантностями Podʼа. Отримані толерантності перевіряються щодо списку дозволених толерантностей, анотованих на namespace. Якщо перевірка пройде успішно, запит Podʼа допускається, інакше він відхиляється.
Якщо namespace Podʼа не має повʼязаних з ним стандартних толерантностей або дозволених толерантностей, анотованих, використовуються стандартні толерантності на рівні кластера або список дозволених толерантностей на рівні кластера, якщо вони зазначені.
Толерантності призначаються namespace за допомогою ключа анотації scheduler.alpha.kubernetes.io/defaultTolerations. Список дозволених толерантностей можна додати за допомогою ключа анотації scheduler.alpha.kubernetes.io/tolerationsWhitelist.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.35 [beta](стандартно увімкнено)
Тип: Модифікуючий
Контролер допуску PodTopologyLabels змінює субресурси pods/binding для всіх podʼів, привʼязаних до вузла, додаючи мітки топології, що відповідають міткам привʼязаного вузла. Це дозволяє зробити мітки топології вузла доступними як мітки podʼів, які можуть бути відображені у запущених контейнерах за допомогою Downward API. Мітки, доступні за допомогою цього контролера, — це мітки topology.kubernetes.io/region та topology.kuberentes.io/zone.
Примітка:
Якщо будь-який модифікуючий вебхук допуску додає або змінює мітки субресурсу pods/binding, ці зміни поширюватимуться на мітки podʼів в результаті роботи цього контролера, перезаписуючи мітки з конфліктуючими ключами.
Цей контролер допуску увімкнено, коли увімкнено функціональну можливість PodTopologyLabelsAdmission.
Priority
Тип: Модифікуючий та Валідаційний.
Контролер допуску Priority використовує поле priorityClassName і заповнює ціле значення пріоритету. Якщо клас пріоритету не знайдено, Pod відхиляється.
ResourceQuota
Тип: Валідаційний.
Цей контролер допуску спостерігає за вхідним запитом і гарантує, що він не порушує жодних обмежень, перерахованих у обʼєкті ResourceQuota у Namespace. Якщо ви використовуєте обʼєкти ResourceQuota у вашому розгортанні Kubernetes, ви МАЄТЕ використовувати цей контролер допуску для забезпечення дотримання квот.
Якщо ви визначаєте RuntimeClass з налаштованими накладними витратами, повʼязаними з роботою Podʼів, цей контролер допуску перевіряє вхідні Podʼи. При увімкненні, цей контролер допуску відхиляє будь-які запити на створення Podʼів, які вже мають встановлений overhead. Для Podʼів, які мають налаштований і обраний у своєму .spec RuntimeClass, цей контролер допуску встановлює .spec.overhead у Pod на основі значення, визначеного у відповідному RuntimeClass.
Цей контролер допуску реалізує автоматизацію для службових облікових записів. Проєкт Kubernetes наполегливо рекомендує увімкнути цей контролер допуску. Вам слід увімкнути цей контролер допуску, якщо ви маєте намір використовувати обʼєкти ServiceAccount в Kubernetes.
Щоб посилити заходи безпеки навколо Secrets, використовуйте окремі простори імен для ізоляції доступу до змонтованих секретів.
StorageObjectInUseProtection
Тип: Модифікуючий.
Втулок StorageObjectInUseProtection додає завершувачі kubernetes.io/pvc-protection або kubernetes.io/pv-protection до новостворених Persistent Volume Claims (PVC) або Persistent Volumes (PV). У випадку видалення користувача PVC або PV PVC або PV не видаляється, поки завершувач не буде видалений з PVC або PV за допомогою контролера захисту PVC або PV.
Дивіться Захист обʼєктів зберігання які використовуються для отримання детальнішої інформації.
TaintNodesByCondition
Тип: Модифікуючий.
Цей контролер допуску додає taint до новостворених вузлів таких як NotReady та NoSchedule. Це позначення доволє уникнути стану перегонів, який може призвести до того, що Podʼи будуть заплановані на нових вузлах до того, як їх taint будуть оновлені для точної відповідності їх звітніх умов.
ValidatingAdmissionPolicy
Тип: Валідаційний.
Цей контролер допуску реалізує перевірку CEL для вхідних запитів, що збігаються. Він увімкнений, коли увімкнені як функціональна можливість validatingadmissionpolicy, так і група/версія admissionregistration.k8s.io/v1alpha1. Якщо будь-яка з політик ValidatingAdmissionPolicy не вдасться, запит не вдасться.
ValidatingAdmissionWebhook
Тип: Валідаційний.
Цей контролер допуску викликає будь-які валідуючі вебхуки, які відповідають запиту. Валідуючі вебхуки викликаються паралельно; якщо будь-який з них відхиляє запит, запит не вдається. Цей контролер допуску працює лише на етапі валідації; вебхуки, які він викликає, не можуть змінювати обʼєкт, на відміну від вебхуків, які викликаються контролером допуску MutatingAdmissionWebhook.
Якщо вебхук який викликається цим контролером, має побічні ефекти (наприклад, зменшення квоти), то обовʼязково має бути система реконсіляції, оскільки не гарантується, що подальші вебхуки або інші валідаційні контролери допуску дозволять закінчити запит.
Якщо ви вимкнете ValidatingAdmissionWebhook, вам також слід вимкнути обʼєкт ValidatingWebhookConfiguration у групі/версії admissionregistration.k8s.io/v1 за допомогою прапорця --runtime-config.
Чи існує рекомендований набір контролерів допуску для використання?
Так. Рекомендовані контролери допуску стандартно увімкнені (дивіться тут), тому вам не потрібно явно вказувати їх. Ви можете увімкнути додаткові контролери допуску поза стандартним набором за допомогою прапорця --enable-admission-plugins (порядок не має значення).
3.9 - Динамічне керування допуском
Окрім вбудованих втулків допуску, втулки допуску можуть бути розроблені як розширення і виконуватися як вебхуки, налаштовані під час роботи. Ця сторінка описує, як будувати, налаштовувати, використовувати та контролювати вебхуки допуску.
Що таке вебхуки допуску?
Вебхуки допуску — це зворотні виклики HTTP, які отримують запити на допуск та роблять з ними щось. Ви можете визначити два типи вебхуків допуску, валідаційний вебхук допуску та модифікуючий вебхук допуску. Модифікуючі вебхуки допуску викликаються першими та можуть змінювати обʼєкти, які надсилаються на сервер API, щоб застосовувати власні стандартні значення. Після завершення всіх модифікацій обʼєктів і після того, як вхідний обʼєкт перевірений сервером API, викликаються валідаційні вебхуки допуску та можуть відхиляти запити для застосування власних політик.
Примітка:
Вебхуки допуску, які потребують гарантії того, що вони бачать кінцевий стан обʼєкта, щоб застосувати політику, повинні використовувати валідаційний вебхук допуску, оскільки обʼєкти можуть бути змінені після того, як їх оглянули модифікуючі вебхуки.
Експерименти з вебхуками допуску
Вебхуки допуску фактично є частиною панелі управління кластера. Ви повинні писати та розгортати їх з великою обережністю. Будь ласка, прочитайте посібники користувача для інструкцій, якщо ви маєте намір писати/розгортати вебхуки допуску промислового рівня. Нижче ми описуємо, як швидко експериментувати з вебхуками допуску.
Передумови
Переконайтеся, що контролери допуску MutatingAdmissionWebhook та ValidatingAdmissionWebhook
увімкнені. Тут є рекомендований набір контролерів допуску для загального увімкнення.
Переконайтеся, що API admissionregistration.k8s.io/v1 увімкнено.
Написання сервера вебхуків допуску
Будь ласка, зверніться до реалізації сервера вебхуків допуску, який перевірено в е2е-тесті Kubernetes. Сервер вебхуків обробляє запити AdmissionReview, надіслані серверами API, і повертає своє рішення як обʼєкт AdmissionReview в тій же версії, що й отримав.
Дивіться розділ запиту вебхуку для деталей щодо даних, надісланих до вебхуків.
Дивіться розділ відповіді вебхуку для деталей щодо даних, які очікуються від вебхуків.
Приклад сервера вебхуків допуску залишає поле ClientAuthпорожнім, що типово дорівнює NoClientCert. Це означає, що сервер вебхуків не автентифікує ідентичність клієнтів, які, припускається, є серверами API. Якщо вам потрібен взаємний TLS або інші способи автентифікації клієнтів, дивіться як автентифікувати сервери API.
Розгортання служби вебхуків допуску
Сервер вебхуків у е2е-тесті розгортається в кластері Kubernetes за допомогою API deployment. Тест також створює сервіс як фронтенд сервера вебхуків. Дивіться код.
Ви також можете розгортати свої вебхуки поза кластером. Вам потрібно буде оновити відповідно ваші конфігурації вебхуків.
Приклад ValidatingWebhookConfiguration, конфігурація модифікуючого вебхуку подібна. Дивіться розділ конфігурації вебхуку для деталей про кожне поле конфігурації.
Ви повинні замінити <CA_BUNDLE> у вищезазначеному прикладі на дійсний пакунок CA це PEM-кодований (значення поля закодовано у Base64) пакунок CA для перевірки вебсервера сертифіката.
Поле scope вказує, чи тільки ресурси з області кластера ("Cluster") або з області простору імен ("Namespaced") будуть відповідати цьому правилу. "∗" означає, що обмежень області немає.
Примітка:
При використанні clientConfig.service, сертифікат сервера повинен бути дійсним для
<svc_name>.<svc_namespace>.svc.
Примітка:
Стандартний тайм-авт вебхуку — 10 секунд, ви можете встановити timeout, і рекомендується використовувати короткий тайм-авт для вебхуків. Якщо виклик вебхуку перевищує тайм-авт, запит обробляється відповідно до політики відмови вебхуку.
Коли сервер API отримує запит, що відповідає одному з rules, сервер API надсилає запит admissionReview до вебхуку, як зазначено в clientConfig.
Після створення конфігурації вебхуку, системі знадобиться кілька секунд, щоб визнати нову конфігурацію.
Автентифікація серверів API
Якщо вашим вебхукам для допуску потрібна автентифікація, ви можете налаштувати сервери API для використання базової автентифікації, токенів на предʼявника (bearer token) або сертифікатів для автентифікації себе у вебхуках. Налаштування складається з трьох кроків.
Під час запуску сервера API вкажіть розташування файлу конфігурації керування допуском за допомогою прапорця --admission-control-config-file.
У файлі конфігурації керування допуском вкажіть, де контролери MutatingAdmissionWebhook та ValidatingAdmissionWebhook повинні читати облікові дані. Облікові дані зберігаються у файлах kubeConfig (так, це та сама схема, що використовується kubectl), тому назва поля — kubeConfigFile. Ось приклад файлу конфігурації керування допуском:
apiVersion:v1kind:Configusers:# name повинно бути встановлено на DNS-імʼя служби або хост (включаючи порт) URL-адреси, з якою налаштовано взаємодію вебхуку.# Якщо для служб використовується порт, відмінний від 443, його необхідно включити до імені під час налаштування серверів API версії 1.16+.## Для вебхуку, налаштованого для взаємодії зі службою настандартному порті (443), вкажіть DNS-імʼя служби:# - name: webhook1.ns1.svc# user: ...## Для вебхуку, налаштованого для взаємодії зі службою на нестандартному порту (наприклад, 8443), вкажіть DNS-імʼя та порт служби у версії 1.16+:# - name: webhook1.ns1.svc:8443# user: ...# і, за бажанням, створіть другу секцію, використовуючи лише DNS-імʼя служби для сумісності з серверами API версії 1.15:# - name: webhook1.ns1.svc# user: ...## Для вебхуків, налаштованих для взаємодії з URL-адресою, вкажіть хост (і порт), вказані в URL-адресі вебхуку. Приклади:# Вебхук з `url: https://www.example.com`:# - name: www.example.com# user: ...## Вебхук з `url: https://www.example.com:443`:# - name: www.example.com:443# user: ...## Вебхук з `url: https://www.example.com:8443`:# - name: www.example.com:8443# user: ...#- name:'webhook1.ns1.svc'user:client-certificate-data:"<pem encoded certificate>"client-key-data:"<pem encoded key>"# Поле `name` підтримує використання * для підстановки сегментів префікса.- name:'*.webhook-company.org'user:password:"<password>"username:"<name>"# '*' є стандартним збігом.- name:'*'user:token:"<token>"
Звичайно, вам потрібно налаштувати сервер вебхуків для обробки цих запитів на автентифікацію.
Запит і відповідь вебхука
Запит
Вебхуки надсилаються як POST-запити з Content-Type: application/json, з об’єктом API AdmissionReview в API-групі admission.k8s.io, серіалізованим у JSON як тіло запиту.
Вебхуки можуть вказувати, які версії об’єктів AdmissionReview вони приймають, використовуючи поле admissionReviewVersions у своїй конфігурації:
admissionReviewVersions є обов’язковим полем при створенні конфігурацій вебхуків. Вебхуки повинні підтримувати принаймні одну версію AdmissionReview, яка зрозуміла поточному та попередньому API-серверу.
API-сервери надсилають першу версію AdmissionReview зі списку admissionReviewVersions, яку вони підтримують. Якщо жодна з версій у списку не підтримується API-сервером, створення конфігурації не буде дозволено. Якщо API-сервер виявляє конфігурацію вебхука, яка була створена раніше і не підтримує жодної з версій AdmissionReview, які API-сервер може надсилати, спроби виклику вебхука будуть невдалими та підлягатимуть політиці відмови.
Цей приклад показує дані, що містяться в об’єкті AdmissionReview для запиту на оновлення субресурсу scale для Deployment з групи apps/v1:
{"apiVersion":"admission.k8s.io/v1","kind":"AdmissionReview","request":{#Випадковийuid,щоунікальноідентифікуєцейвикликпідтвердження"uid":"705ab4f5-6393-11e8-b7cc-42010a800002",#Повністюкваліфікованагрупа/версія/типвхідногооб’єкта"kind":{"group":"autoscaling","version":"v1","kind":"Scale"},#Повністюкваліфікованагрупа/версія/типресурсу,щозмінюється"resource":{"group":"apps","version":"v1","resource":"deployments"},#субресурс,якщозапитстосуєтьсясубресурсу"subResource":"scale",#Повністюкваліфікованагрупа/версія/типвхідногооб’єктавпочатковомузапитідоAPI-сервера.#Цевідрізняєтьсявід`kind`,лишеякщовебхуквказав`matchPolicy:Equivalent`іпочатковийзапитдоAPI-серверабувконвертованийуверсію,дляякоїзареєстровановебхук."requestKind":{"group":"autoscaling","version":"v1","kind":"Scale"},#Повністюкваліфікованагрупа/версія/типресурсу,щозмінюєтьсявпочатковомузапитідоAPI-сервера.#Цевідрізняєтьсявід`resource`,лишеякщовебхуквказав`matchPolicy:Equivalent`іпочатковийзапитдоAPI-серверабувконвертованийуверсію,дляякоїзареєстровановебхук."requestResource":{"group":"apps","version":"v1","resource":"deployments"},#субресурс,якщозапитстосуєтьсясубресурсу#Цевідрізняєтьсявід`subResource`,лишеякщовебхуквказав`matchPolicy:Equivalent`іпочатковийзапитдоAPI-серверабувконвертованийуверсію,дляякоїзареєстровановебхук."requestSubResource":"scale",#Ім’яресурсу,щозмінюється"name":"my-deployment",#Простіріменресурсу,щозмінюється,якщоресурсмаєпростірімен(абоєоб’єктомNamespace)"namespace":"my-namespace",#операціяможебутиCREATE,UPDATE,DELETEабоCONNECT"operation":"UPDATE","userInfo":{#Ім’якористувачаавтентифікованогокористувача,щоробитьзапитдоAPI-сервера"username":"admin",#UIDавтентифікованогокористувача,щоробитьзапитдоAPI-сервера"uid":"014fbff9a07c",#Груповічленстваавтентифікованогокористувача,щоробитьзапитдоAPI-сервера"groups":["system:authenticated","my-admin-group"],#Додатковадовільнаінформація,пов’язаназкористувачем,щоробитьзапитдоAPI-сервера.#ЦезаповнюєтьсяшаромавтентифікаціїAPI-сервераіповиннобутивключено,#якщобудь-якіперевіркиSubjectAccessReviewвиконуютьсявебхуком."extra":{"some-key":["some-value1","some-value2"]}},#objectєновимоб’єктом,щопідлягаєдопуску.#ЦеnullдляопераційDELETE."object":{"apiVersion":"autoscaling/v1","kind":"Scale"}#oldObjectєіснуючимоб’єктом.#ЦеnullдляопераційCREATEтаCONNECT."oldObject":{"apiVersion":"autoscaling/v1","kind":"Scale"},#optionsміститьпараметриоперації,щопідлягаєдопуску,як-отmeta.k8s.io/v1CreateOptions,UpdateOptionsабоDeleteOptions.#ЦеnullдляопераційCONNECT."options":{"apiVersion":"meta.k8s.io/v1","kind":"UpdateOptions"},#dryRunвказує,щоAPI-запитвиконуєтьсяврежиміdryrunінебудезбережений.#Вебхукизпобічнимиефектамиповинніуникатиздійсненняцихпобічнихефектів,колиdryRunдорівнюєtrue.#Див.http://k8s.io/docs/reference/using-api/api-concepts/#make-a-dry-run-request для додаткової інформації.
"dryRun":"False"}}
Відповідь
Вебхуки відповідають зі статус-кодом HTTP 200, Content-Type: application/json та тілом, що містить об’єкт AdmissionReview (у тій же версії, що була надіслана), з заповненою секцією response, серіалізованою у JSON.
Мінімум, секція response повинна містити такі поля:
uid, скопійований з request.uid, що був надісланий до вебхука
allowed, встановлений або в true, або в false
Приклад мінімальної відповіді від вебхука для дозволу запиту:
{"apiVersion":"admission.k8s.io/v1","kind":"AdmissionReview","response":{"uid":"<значення з request.uid>","allowed":true}}
Приклад мінімальної відповіді від вебхука для заборони запиту:
{"apiVersion":"admission.k8s.io/v1","kind":"AdmissionReview","response":{"uid":"<значення з request.uid>","allowed":false}}
При відхиленні запиту вебхук може налаштувати HTTP-код та повідомлення, яке повертається користувачеві, використовуючи поле status. Вказаний об’єкт статусу повертається користувачеві. Див. Довідник API для деталей про тип status. Приклад відповіді для заборони запиту з налаштуванням HTTP-коду та повідомлення, яке буде представлено користувачеві:
{"apiVersion":"admission.k8s.io/v1","kind":"AdmissionReview","response":{"uid":"<значення з request.uid>","allowed":false,"status":{"code":403,"message":"Ви не можете це зробити, тому що сьогодні вівторок і ваше ім’я починається з літери А"}}}
При дозволі запиту, модифікуючий вебхук допуску може за бажанням модифікувати вхідний об’єкт. Це робиться за допомогою полів patch та patchType у відповіді. Єдиний підтримуваний тип patchType наразі — JSONPatch. Див. документацію JSON patch для додаткової інформації. Для patchType: JSONPatch, поле patch містить base64-кодований масив операцій JSON patch.
Як приклад, єдина операція patch, яка встановить spec.replicas, виглядає так: [{"op": "add", "path": "/spec/replicas", "value": 3}]
Base64-кодована, вона виглядатиме так: W3sib3AiOiAiYWRkIiwgInBhdGgiOiAiL3NwZWMvcmVwbGljYXMiLCAidmFsdWUiOiAzfV0=
Отже, відповідь вебхука для додавання цієї мітки буде такою:
{"apiVersion":"admission.k8s.io/v1","kind":"AdmissionReview","response":{"uid":"<значення з request.uid>","allowed":true,"patchType":"JSONPatch","patch":"W3sib3AiOiAiYWRkIiwgInBhdGgiOiAiL3NwZWMvcmVwbGljYXMiLCAidmFsdWUiOiAzfV0="}}
Вебхуки допуску можуть за бажанням повертати попереджувальні повідомлення, які повертаються клієнту, що зробив запит, у HTTP-заголовках Warning з кодом попередження 299. Попередження можуть бути надіслані з дозволеними або відхиленими відповідями на допуск.
Якщо ви реалізуєте вебхук, що повертає попередження:
Не включайте префікс "Warning:" у повідомлення
Використовуйте попереджувальні повідомлення для опису проблем, які клієнт, що робить API-запит, має виправити або про які має знати
За можливості, обмежуйте попередження до 120 символів
Увага:
Індивідуальні попереджувальні повідомлення довжиною понад 256 символів можуть бути скорочені API-сервером перед поверненням клієнтам. Якщо додано більше 4096 символів попереджувальних повідомлень (від усіх джерел), додаткові попередження ігноруються.
{"apiVersion":"admission.k8s.io/v1","kind":"AdmissionReview","response":{"uid":"<значення з request.uid>","allowed":true,"warnings":["зазначено дублюючі записи envvar з іменем MY_ENV","запит на пам’ять менший за 4 МБ зазначено для контейнера mycontainer, який не запуститься успішно"]}}
Конфігурація вебхука
Для реєстрації вебхуків допуску створіть об’єкти API MutatingWebhookConfiguration або ValidatingWebhookConfiguration. Назва об’єкта MutatingWebhookConfiguration або ValidatingWebhookConfiguration має бути дійсним DNS-імʼям субдомену.
Кожна конфігурація може містити один або кілька вебхуків. Якщо в одній конфігурації вказано кілька вебхуків, кожен з них повинен мати унікальну назву. Це необхідно для полегшення відповідності логів аудиту та метрик активних конфігурацій.
Кожен вебхук визначає наступні параметри.
Відповідність запитам: правила
Кожен вебхук має вказувати список правил, що використовуються для визначення, чи повинен запит до API-сервера бути надісланий до вебхука. Кожне правило вказує одну або кілька операцій, груп API, версій API та ресурсів, а також область ресурсу:
operations отримує перелік з однієї або кількох операцій для порівняння. Можливі значення: "CREATE", "UPDATE", "DELETE", "CONNECT" або "*" для збігу зі всіма операціям.
apiGroups отримує перелік з однієї або кількох груп API для порівняння. "" означає ядро групи API. "*" відповідає всім групам API.
apiVersions отримує перелік з однієї або кількох версій API для порівняння. "*" відповідає всім версіям API.
resources отримує перелік з одного або кількох ресурсів для порівняння.
"*" відповідає всім ресурсам, але не субресурсам.
"*/*" відповідає всім ресурсам і субресурсам.
"pods/*" відповідає всім субресурсам Podʼів.
"*/status" відповідає всім субресурсам статусу.
scope вказує область для порівняння. Допустимі значення: "Cluster", "Namespaced" та "*". Субресурси відповідають області їх батьківського ресурсу. Стандартно "*".
"Cluster" означає, що тільки ресурси з кластерною областю відповідатимуть цьому правилу (об’єкти Namespace мають кластерну область).
"Namespaced" означає, що тільки ресурси з простору імен відповідатимуть цьому правилу.
"*" означає, що немає обмежень щодо області.
Якщо вхідний запит відповідає одному з: operations, apiGroups, apiVersions, resources та scope для будь-якого з правил вебхука, запит надсилається до вебхука.
Ось інші приклади правил, які можуть бути використані для визначення, які ресурси слід перехоплювати.
Відповідність запитам CREATE або UPDATE до apps/v1 та apps/v1beta1deployments і replicasets:
Вебхуки можуть за бажанням обмежувати, які запити перехоплюються, на основі міток обʼєктів, до яких вони будуть надіслані, вказуючи objectSelector. Якщо вказано, objectSelector оцінюється як для обʼєкта, так і для старого обʼєкта, які будуть надіслані до вебхука, і вважається відповідним, якщо будь-який з обʼєктів відповідає селектору.
Обʼєкт, що дорівнює null (oldObject у випадку створення або newObject у випадку видалення), або обʼєкт, який не може мати міток (наприклад, обʼєкт DeploymentRollback або PodProxyOptions), не вважається відповідним.
Використовуйте селектор обʼєктів тільки якщо вебхук є опціональним, тому що кінцеві користувачі можуть обійти вебхук допуску, встановлюючи мітки.
Цей приклад показує модифікуючий вебхук, який відповідатиме CREATE для будь-якого ресурсу (але не субресурсів) з міткою foo: bar:
Див. концепцію міток для більшої кількості прикладів селекторів міток.
Відповідність запитам: namespaceSelector
Вебхуки можуть за бажанням обмежувати, які запити на ресурси в межах простору імен перехоплюються, на основі міток простору імен, до якого вони належать, вказуючи namespaceSelector.
namespaceSelector вирішує, чи слід запускати вебхук для запиту на ресурс у межах простору імен (або обʼєкт Namespace), на основі того, чи відповідають мітки простору імен селектору. Якщо обʼєкт сам є простором імен, відповідність виконується за object.metadata.labels. Якщо обʼєкт є кластерним ресурсом, відмінним від Namespace, namespaceSelector не впливає.
Цей приклад показує модифікуючий вебхук, який відповідає CREATE для будь-якого ресурсу в межах простору імен, який не має мітки "runlevel" зі значенням "0" або "1":
Цей приклад показує валідаційний вебхук, який відповідає CREATE для будь-якого ресурсу в межах простору імен, асоційованого з "environment" зі значенням "prod" або "staging":
Див. концепцію міток для більшої кількості прикладів селекторів міток.
Відповідність запитам: matchPolicy
API сервери можуть робити обʼєкти доступними через кілька API груп або версій.
Наприклад, якщо вебхук визначає правило для певних API груп/версій (наприклад, apiGroups:["apps"], apiVersions:["v1","v1beta1"]), і запит робиться для зміни ресурсу через іншу API групу/версію (наприклад, extensions/v1beta1), запит не буде надіслано до вебхука.
matchPolicy дозволяє вебхуку визначити, як його rules використовуються для відповідності вхідним запитам. Допустимі значення — Exact або Equivalent.
Exact означає, що запит повинен бути перехоплений тільки в тому випадку, якщо він точно відповідає зазначеному правилу.
Equivalent означає, що запит повинен бути перехоплений, якщо він модифікує ресурс, зазначений в rules, навіть через іншу API групу або версію.
У наведеному вище прикладі, вебхук, зареєстрований тільки для apps/v1, може використовувати matchPolicy:
matchPolicy: Exact означає, що запит extensions/v1beta1 не буде надіслано до вебхука.
matchPolicy: Equivalent означає, що запит extensions/v1beta1 буде надіслано до вебхука (з обʼєктами, конвертованими до версії, яку вебхук визначив: apps/v1).
Вказування Equivalent рекомендовано і забезпечує, що вебхуки продовжують перехоплювати очікувані ресурси, коли оновлення включають нові версії ресурсу в API сервері.
Коли ресурс перестає обслуговуватись API сервером, він більше не вважається еквівалентним іншим версіям цього ресурсу, які все ще обслуговуються. Наприклад, extensions/v1beta1 розгортання були спочатку визнані застарілими, а потім видалені (у Kubernetes v1.16).
З моменту цього видалення, вебхук з правилом apiGroups:["extensions"], apiVersions:["v1beta1"], resources:["deployments"] не перехоплює розгортання, створені через API apps/v1. З цієї причини, вебхуки повинні віддавати перевагу реєстрації для стабільних версій ресурсів.
Цей приклад показує валідаційний вебхук, який перехоплює модифікації розгортань (незалежно від API групи або версії) і завжди отримує обʼєкт Deployment версії apps/v1:
matchPolicy для вебхуків допуску стандартно дорівнює Equivalent.
Відповідність запитам: matchConditions
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.30 [stable](стандартно увімкнено)
Ви можете визначити умови відповідності для вебхуків, якщо вам потрібна точніша фільтрація запитів. Ці умови корисні, якщо правила відповідності, objectSelectors та namespaceSelectors не надають необхідної фільтрації при викликах по HTTP. Умови відповідності є CEL виразами. Всі умови відповідності повинні оцінюватися як true для виклику вебхука.
Ось приклад, що ілюструє декілька різних способів використання умов відповідності:
apiVersion:admissionregistration.k8s.io/v1kind:ValidatingWebhookConfigurationwebhooks:- name:my-webhook.example.commatchPolicy:Equivalentrules:- operations:['CREATE','UPDATE']apiGroups:['*']apiVersions:['*']resources:['*']failurePolicy:'Ignore'# Fail-open (опційно)sideEffects:NoneclientConfig:service:namespace:my-namespacename:my-webhookcaBundle:'<omitted>'# Ви можете мати до 64 умов відповідності на вебхукmatchConditions:- name:'exclude-leases'# Кожна умова відповідності повинна мати унікальне імʼяexpression:'!(request.resource.group == "coordination.k8s.io" && request.resource.resource == "leases")'# Відповідність ресурсам, які не є lease.- name:'exclude-kubelet-requests'expression:'!("system:nodes" in request.userInfo.groups)'# Відповідність запитам, зробленим не користувачами вузлів.- name:'rbac'# Пропуск запитів RBAC, які обробляються другим вебхуком.expression:'request.resource.group != "rbac.authorization.k8s.io"'# Цей приклад ілюструє використання 'authorizer'. Перевірка авторизації дорожча за простий вираз, тому в цьому прикладі вона обмежена лише запитами RBAC, використовуючи другий вебхук. Обидва вебхуки можуть обслуговуватись одним кінцевим пунктом.- name:rbac.my-webhook.example.commatchPolicy:Equivalentrules:- operations:['CREATE','UPDATE']apiGroups:['rbac.authorization.k8s.io']apiVersions:['*']resources:['*']failurePolicy:'Fail'# Fail-closed (стандартно)sideEffects:NoneclientConfig:service:namespace:my-namespacename:my-webhookcaBundle:'<omitted>'# Ви можете мати до 64 умов відповідності на вебхукmatchConditions:- name:'breakglass'# Пропуск запитів, зроблених користувачами, авторизованими для 'breakglass' на цьому вебхуку.# Дієслово API 'breakglass' не повинно існувати за межами цієї перевірки.expression:'!authorizer.group("admissionregistration.k8s.io").resource("validatingwebhookconfigurations").name("my-webhook.example.com").check("breakglass").allowed()'
Примітка:
Ви можете визначити до 64 елементів у полі matchConditions для кожного вебхука.
Умови відповідності мають доступ до наступних CEL змінних:
object — Обʼєкт з вхідного запиту. Значення є null для DELETE запитів. Версія обʼєкта може бути конвертована на основі matchPolicy.
oldObject — Наявний обʼєкт. Значення є null для CREATE запитів.
request — Частина запиту AdmissionReview, виключаючи object та oldObject.
authorizer — CEL Authorizer. Може використовуватись для виконання перевірок авторизації для головного облікового запису (автентифікованого користувача) запиту. Дивіться Authz у документації бібліотеки Kubernetes CEL для додаткової інформації.
authorizer.requestResource — Скорочення для перевірки авторизації, налаштованої на ресурс запиту (група, ресурс, (субресурс), простір імен, імʼя).
Коли сервер API визначає, що запит повинен бути надісланий до вебхука, йому потрібно знати, як звʼязатися з вебхуком. Це визначається в розділі clientConfig конфігурації вебхука.
Вебхуки можуть викликатися через URL або посилання на сервіс, і можуть за бажанням включати власний набір CA для використання для перевірки TLS-зʼєднання.
URL
Поле url вказує місцезнаходження вебхука у стандартній формі URL (scheme://host:port/path).
Поле host не повинно вказувати на сервіс, що працює в кластері; використовуйте посилання на сервіс, вказуючи поле service. Хост може бути вирішений через зовнішній DNS на деяких серверах API (наприклад, kube-apiserver не може вирішувати DNS всередині кластера, оскільки це буде порушенням шарів). host також може бути IP-адресою.
Зверніть увагу, що використання localhost або 127.0.0.1 як host є ризикованим, якщо ви не забезпечите запуск цього вебхука на всіх хостах, які запускають сервер API, який може потребувати викликів до цього вебхука. Такі інсталяції, ймовірно, будуть непереносними або не будуть легко запускатися в новому кластері.
Схема повинна бути "https"; URL повинен починатися з "https://".
Спроба використання користувача або базової автентифікації (наприклад, user:password@) не дозволена. Фрагменти (#...) та параметри запиту (?...) також не дозволені.
Ось приклад конфігурації модифікуючого вебхука для виклику URL (і очікується, що TLS-сертифікат буде перевірено за допомогою системних коренів довіри, тому не вказується caBundle):
Розділ service всередині clientConfig є посиланням на сервіс для цього вебхука. Якщо вебхук працює всередині кластера, вам слід використовувати service замість url. Необхідно вказати простір імен та імʼя сервісу. Порт є необовʼязковим і стандартно дорівнює 443. Шлях є необовʼязковим і стандартно дорівнює "/".
Ось приклад конфігурації модифікуючого вебхука для виклику сервісу на порту "1234" за підшляхом "/my-path", і для перевірки TLS-зʼєднання проти ServerName my-service-name.my-service-namespace.svc з використанням власного набору CA:
Ви повинні замінити <CA_BUNDLE> у наведеному вище прикладі на дійсний набір CA, який є PEM-кодованим набором CA для перевірки сертифіката сервера вебхука.
Побічні ефекти
Вебхуки зазвичай працюють тільки з вмістом AdmissionReview, надісланого їм. Однак деякі вебхуки здійснюють зміни поза межами під час обробки запитів на допуск.
Вебхуки, які здійснюють зміни поза межами ("побічні ефекти"), повинні також мати механізм узгодження (наприклад, контролер), який періодично визначає фактичний стан системи та коригує дані поза межами, змінені вебхуком допуску, щоб відобразити реальність. Це тому, що виклик до вебхука допуску не гарантує, що прийнятий обʼєкт буде збережений таким, яким він є, або взагалі. Пізніші вебхуки можуть змінити вміст обʼєкта, може виникнути конфлікт під час запису в сховище, або сервер може вимкнутися до збереження обʼєкта.
Крім того, вебхуки з побічними ефектами повинні пропускати ці побічні ефекти, коли обробляються запити допуску з dryRun: true. Вебхук повинен явно вказати, що він не матиме побічних ефектів при запуску з dryRun, інакше запит dry-run не буде надіслано до вебхука, і API-запит замість цього не вдасться.
Вебхуки вказують, чи мають вони побічні ефекти, за допомогою поля sideEffects у конфігурації вебхука:
None: виклик вебхука не матиме побічних ефектів.
NoneOnDryRun: виклик вебхука може мати побічні ефекти, але якщо до вебхука надіслано запит з dryRun: true, вебхук придушить побічні ефекти (вебхук враховує dryRun).
Ось приклад конфігурації вебхука перевірки, який вказує, що він не має побічних ефектів при запитах з dryRun: true:
Оскільки вебхуки додають затримку до запитів API, вони повинні оцінюватися якомога швидше. timeoutSeconds дозволяє налаштувати, скільки часу сервер API повинен чекати на відповідь вебхука, перш ніж розглядати виклик як невдалий.
Якщо тайм-аут закінчується до того, як вебхук відповість, виклик вебхука буде проігноровано або API-запит буде відхилено відповідно до політики помилок.
Значення тайм-ауту повинно бути між 1 і 30 секунд.
Ось приклад конфігурації вебхука перевірки з кастомним тайм-аутом у 2 секунди:
Тайм-аут для вебхука допуску стандартно становить 10 секунд.
Політика повторного виклику
Одне впорядкування втулків модифікуючого допуску (включаючи вебхуки) не підходить для всіх випадків (див. приклад у https://issue.k8s.io/64333). Модифікуючий вебхук може додати нову підструктуру до обʼєкта (наприклад, додати container до pod), а інші модифікуючи втулки, які вже виконані, можуть мати вплив на ці нові структури (наприклад, встановити imagePullPolicy для всіх контейнерів).
Щоб дозволити втулкам модифікуючого допуску спостерігати за змінами, внесеними іншими втулками, вбудовані модифікуючи втулки допуску повторно запускаються, якщо модифікуючий вебхук змінює обʼєкт, і модифікуючи вебхуки можуть вказати reinvocationPolicy для контролю того, чи будуть вони повторно викликані.
reinvocationPolicy може бути встановлено на Never або IfNeeded. Стандартно встановлено у Never.
Never: вебхук не повинен викликатися більше одного разу в рамках однієї оцінки допуску.
IfNeeded: вебхук може бути викликаний знову в рамках оцінки допуску, якщо обʼєкт, що авторизується, змінюється іншими втулками допуску після початкового виклику вебхука.
Важливі моменти, на які слід звернути увагу:
Кількість додаткових викликів не гарантується як точно одна.
Якщо додаткові виклики призводять до подальших змін обʼєкта, не гарантується, що вебхуки будуть викликані знов.
Вебхуки, які використовують цей параметр, можуть бути переупорядковані для мінімізації кількості додаткових викликів.
Щоб перевірити обʼєкт після того, як всі модифікації гарантовано завершені, використовуйте вебхук допуску (рекомендується для вебхуків з побічними ефектами).
Ось приклад конфігурації модифікуючого вебхука, який вибирає повторний виклик, якщо пізніші втулки допуску змінюють обʼєкт:
Модифікуючи вебхуки повинні бути ідемпотентними, здатними успішно обробити обʼєкт, який вони вже авторизували і потенційно змінили. Це стосується всіх модифікуючих вебхуків допуску, оскільки будь-яка зміна, яку вони можуть внести в обʼєкт, вже могла існувати в обʼєкті, наданому користувачем, але це є особливо важливим для вебхуків, які вибирають повторний виклик.
Політика обробки помилок
failurePolicy визначає, як обробляються невизнані помилки та помилки тайм-ауту від вебхука допуску. Допустимі значення: Ignore або Fail.
Ignore означає, що помилка при виклику вебхука ігнорується, і запит API дозволяється продовжити.
Fail означає, що помилка при виклику вебхука призводить до невдачі допуску та відхилення запиту API.
Ось приклад конфігурації модифікуючого вебхука, налаштованого на відхилення запиту API, якщо виникають помилки під час виклику вебхука допуску:
Стандартна політика обробки помилок failurePolicy для вебхуків допуску Fail.
Моніторинг вебхуків авторизації
Сервер API надає способи моніторингу поведінки вебхуків допуску. Ці механізми моніторингу допомагають адміністраторам кластерів відповісти на запитання, як:
Який модифікуючий вебхук змінив обʼєкт у запиті API?
Яку зміну модифікуючий вебхук застосував до обʼєкта?
Які вебхуки часто відхиляють запити API? Яка причина відхилення?
Анотації аудиту модифікуючих вебхуків
Іноді корисно знати, який модифікуючий вебхук змінив обʼєкт у запиті API, і яку зміну вебхук застосував.
Сервер API Kubernetes виконує аудит кожного виклику модифікуючого вебхука. Кожен виклик генерує анотацію аудиту, яка відображає, чи був обʼєкт запиту змінений викликом, і, за необхідності, генерує анотацію із застосованим патчем з відповіді вебхука допуску. Анотації встановлюються в подію аудиту для даного запиту на даній стадії його виконання, яка потім попередньо обробляється відповідно до певної політики та записується в бекенд.
Рівень аудиту події визначає, які анотації будуть записані:
На рівні аудиту Metadata або вище записується анотація з ключем mutation.webhook.admission.k8s.io/round_{round idx}_index_{order idx} з JSON-наватаженням, яке вказує, що вебхук був викликаний для даного запиту і чи змінив він обʼєкт чи ні.
Наприклад, наступна анотація записується для вебхука, який повторно викликається. Вебхук є третім у ланцюгу модифікуючих вебхуків і не змінив обʼєкт запиту під час виклику.
# записана подія аудиту{"kind": "Event","apiVersion": "audit.k8s.io/v1","annotations": {"mutation.webhook.admission.k8s.io/round_1_index_2": "{\"configuration\":\"my-mutating-webhook-configuration.example.com\",\"webhook\":\"my-webhook.example.com\",\"mutated\": false}"# інші анотації...}# інші поля...}
# десеріалізоване значення анотації{"configuration": "my-mutating-webhook-configuration.example.com","webhook": "my-webhook.example.com","mutated": false}
Наступна анотація записується для вебхука, який викликається на першій стадії. Вебхук є першим у ланцюгу модифікуючих вебхуків і змінив обʼєкт запиту під час виклику.
# записана подія аудиту{"kind": "Event","apiVersion": "audit.k8s.io/v1","annotations": {"mutation.webhook.admission.k8s.io/round_0_index_0": "{\"configuration\":\"my-mutating-webhook-configuration.example.com\",\"webhook\":\"my-webhook-always-mutate.example.com\",\"mutated\": true}"# інші анотації...}# інші поля...}
# десеріалізоване значення анотації{"configuration": "my-mutating-webhook-configuration.example.com","webhook": "my-webhook-always-mutate.example.com","mutated": true}
На рівні аудиту Request або вище записується анотація з ключем patch.webhook.admission.k8s.io/round_{round idx}_index_{order idx} з JSON-навантаженням, яке вказує, що вебхук був викликаний для даного запиту і який патч був застосований до обʼєкта запиту.
Наприклад, наступна анотація записується для вебхука, який повторно викликається. Вебхук є четвертим у ланцюгу модифікуючих вебхуків і відповів JSON-патчем, який був застосований до обʼєкта запиту.
# записана подія аудиту{"kind": "Event","apiVersion": "audit.k8s.io/v1","annotations": {"patch.webhook.admission.k8s.io/round_1_index_3": "{\"configuration\":\"my-other-mutating-webhook-configuration.example.com\",\"webhook\":\"my-webhook-always-mutate.example.com\",\"patch\":[{\"op\":\"add\",\"path\":\"/data/mutation-stage\",\"value\":\"yes\"}],\"patchType\":\"JSONPatch\"}"# інші анотації...}# інші поля...}
Сервер API надає метрики Prometheus з точки доступу /metrics, які можна використовувати для моніторингу та діагностики стану сервера API. Наведені нижче метрики фіксують стан, повʼязаний з вебхуками допуску.
Лічильник відхилення запитів вебхука допуску сервера API
Іноді корисно знати, які вебхуки допуску часто відхиляють запити API, та причину відхилення.
Сервер API надає метрику лічильника Prometheus, яка фіксує відхилення вебхуків допуску. Метрики мають підписи, що ідентифікують причини відхилення запитів вебхуками:
name: назва вебхука, який відхилив запит.
operation: тип операції запиту, може бути одним із CREATE, UPDATE, DELETE та CONNECT.
type: тип вебхука допуску, може бути одним із admit та validating.
error_type: визначає, чи сталася помилка під час виклику вебхука, яка призвела до відхилення. Його значення може бути одним із:
calling_webhook_error: невизнані помилки або помилки тайм-ауту від вебхука допуску сталися, і політика помилки вебхука встановлена на Fail.
no_error: помилка не сталася. Вебхук відхилив запит з allowed: false у відповіді допуску. Підписи метрики rejection_code записують значення .status.code, встановлене в відповіді допуску.
apiserver_internal_error: сталася внутрішня помилка сервера API.
rejection_code: HTTP-код статусу, встановлений у відповіді допуску, коли вебхук відхилив запит.
Приклад метрик лічильника відхилення:
# HELP apiserver_admission_webhook_rejection_count [ALPHA] Лічильник відхилення вебхуків авторизації, ідентифікований за назвою та розділений для кожного типу авторизації (валідація чи допуск) та операції. Додаткові підписи вказують тип помилки (calling_webhook_error або apiserver_internal_error, якщо виникла помилка; no_error інакше) та, за потреби, ненульовий код відхилення, якщо вебхук відхилив запит із HTTP-кодом статусу (врахований сервером API, якщо код більший або рівний 400). Коди, більші за 600, обрізаються до 600, щоб обмежити кардинальність метрик.
# TYPE apiserver_admission_webhook_rejection_count counter
apiserver_admission_webhook_rejection_count{error_type="calling_webhook_error",name="always-timeout-webhook.example.com",operation="CREATE",rejection_code="0",type="validating"} 1
apiserver_admission_webhook_rejection_count{error_type="calling_webhook_error",name="invalid-admission-response-webhook.example.com",operation="CREATE",rejection_code="0",type="validating"} 1
apiserver_admission_webhook_rejection_count{error_type="no_error",name="deny-unwanted-configmap-data.example.com",operation="CREATE",rejection_code="400",type="validating"} 13
Імперсонізація користувача — це метод, що дозволяє автентифікованим користувачам діяти від імені іншого користувача, групи або облікового запису служби через HTTP-заголовки.
Користувач може діяти від імені іншого користувача через заголовки імперсонізації. Це дозволяє вручну перевизначити інформацію про користувача, який виконує запит. Наприклад, адміністратор може використовувати цю функцію для налагодження політики авторизації, тимчасово видаючи себе за іншого користувача та перевіряючи, чи запит відхилено.
Запити на імперсонізацією спочатку автентифікуються як запити від імені запитувача, потім переключаються на інформацію для імперсонованої особи.
Користувач робить API-запит зі своїми обліковими даними та заголовками імперсонізації.
API-сервер автентифікує користувача.
API-сервер переконується, що автентифіковані користувачі мають права імперсонізації.
Запит інформації про користувача замінюється значеннями імперсонізації.
Запит обробляється, авторизація працює з імперсонованою інформацією про користувача.
Для здійснення запиту на імперсонізацію можна використовувати такі заголовки HTTP:
Impersonate-User: Імʼя користувача, від імені якого потрібно діяти.
Impersonate-Uid: Унікальний ідентифікатор, який представляє користувача, від імені якого потрібно виконувати дії. Опціонально. Вимагається "Impersonate-User". Kubernetes не накладає жодних вимог до формату цього рядка.
Impersonate-Group: Імʼя групи, від імені якої потрібно діяти. Може бути надана кілька разів для встановлення кількох груп. Опціонально. Вимагається "Impersonate-User".
Impersonate-Extra-( extra name ): Динамічний заголовок, що використовується для асоціації додаткових полів з користувачем. Опціонально. Вимагається "Impersonate-User". Для збереження послідовності, ( extra name ) має бути у нижньому регістрі, а будь-які символи, які не є допустимими у заголовках HTTP мають бути закодовані у UTF8 та процентно-кодовані.
Примітка:
До версії 1.11.3 (та 1.10.7, 1.9.11), ( extra name ) міг містити лише символи, які були допустимими в HTTP-заголовках.
Примітка:
Impersonate-Uid доступний лише у версіях 1.22.0 і вище.
Приклад заголовків імперсонізації при імперсонуванні користувача з групами:
Для використання kubectl встановіть аргумент командного рядка --as для налаштування заголовка Impersonate-User, ви також можете встановити прапорець --as-group для налаштування заголовка Impersonate-Group,використовуйте прапорець --as-uid (1.23) для налаштування заголовка Impersonate-Uid, встановіть прапорець --as-user-extra (1.35) для налаштування заголовка Impersonate-Extra-( extra name ).
kubectl drain mynode
Error from server (Forbidden): User "clark" cannot get nodes at the cluster scope. (get nodes mynode)
Для імперсонізації користувача, ідентифікатора користувача (UID), групи або додаткових полів, користувач, який виконує імперсонізацію, повинен мати можливість виконувати дію impersonate з типом атрибута, який імперсонується ("user", "group", "uid" і т.д.). Для кластерів, що використовують втулок авторизації RBAC, наступна роль ClusterRole охоплює правила, необхідні для налаштування заголовків імперсонізації користувачів і груп:
Для імперсонізації, додаткові поля та імперсоновані UID належать до групи apiGroup "authentication.k8s.io". Додаткові поля оцінюються як субресурси ресурсу "userextras". Щоб дозволити користувачеві використовувати заголовки імперсонізації для додаткового поля scopes та для UID, користувачеві слід надати таку роль:
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:scopes-and-uid-impersonatorrules:# Може встановлювати заголовок "Impersonate-Extra-scopes" та заголовок "Impersonate-Uid".- apiGroups:["authentication.k8s.io"]resources:["userextras/scopes","uids"]verbs:["impersonate"]
Значення заголовків імперсонізації також можна обмежити, обмеживши набір resourceNames, які ресурс може приймати.
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:limited-impersonatorrules:# Може імперсонувати користувача "jane.doe@example.com"- apiGroups:[""]resources:["users"]verbs:["impersonate"]resourceNames:["jane.doe@example.com"]# Може імперсонувати групи "developers" та "admins"- apiGroups:[""]resources:["groups"]verbs:["impersonate"]resourceNames:["developers","admins"]# Може імперсонувати додаткове поле "scopes" зі значеннями "view" і "development"- apiGroups:["authentication.k8s.io"]resources:["userextras/scopes"]verbs:["impersonate"]resourceNames:["view","development"]# Може імперсонувати UID "06f6ce97-e2c5-4ab8-7ba5-7654dd08d52b"- apiGroups:["authentication.k8s.io"]resources:["uids"]verbs:["impersonate"]resourceNames:["06f6ce97-e2c5-4ab8-7ba5-7654dd08d52b"]
Примітка:
Імперсонізація користувача або групи дозволяє виконувати будь-яку дію від імені цього користувача або групи; з цієї причини імперсонізація не є обмеженою за простором імен. Якщо ви хочете дозволити імперсонізацію за допомогою Kubernetes RBAC, це вимагає використання ClusterRole та ClusterRoleBinding, а не Role та RoleBinding.
Надання імперсонізації через ServiceAccounts є обмеженою за простором імен, але імперсонований ServiceAccount може виконувати дії поза межами простору імен.
Обмежена імперсонізація
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [beta](стандартно увімкнено)
Дія impersonate не може бути обмежена. Вона або надає повну імперсонізацію, або взагалі не надає її. Після надання дозволу на імперсонізацію користувача, ви можете виконувати будь-яку дію, яку цей користувач може виконувати у всіх ресурсах і просторах імен.
З обмеженою імперсонізацією, імперсонатор може мати обмеження на дії від імені іншого користувача лише для певних дій на певних ресурсах, а не мати можливість виконувати всі дії, які може виконувати імперсонований користувач.
Обмежена імперсонізація вимагає два окремі дозволи:
Дозвіл на імперсонування конкретної особи (користувач, UID, група, службовий обліковий запис або вузол)
Дозвіл на виконання конкретних дій у певному масштабі під час імперсонування (наприклад, лише list та watch подів у просторі імен default)
Це означає, що імперсонатор може бути обмежений виконанням дій від імені іншого користувача лише для певних операцій.
Режими імперсонування
Обмежена імперсонізація визначає три окремі режими, кожен з яких має свій набір дій:
Режим user-info mode
Використовуйте цей режим для виконання дій від імені звичайного користувача ( не службового облікового запису). Цей режим застосовується, коли значення заголовка Impersonate-User:
Не починається з system:serviceaccount:
Не починається з system:node:
Дієслова:
impersonate:user-info — Дозвіл на імперсонування конкретного користувача, групи, UID або додаткового поля
impersonate-on:user-info:<verb> — Дозвіл на виконання <verb> під час імперсонування загального користувача
Режим ServiceAccount
Виокристовуйте цей режим для виконання дій від імені ServiceAccounts.
Дієслова:
impersonate:serviceaccount — Дозвіл на імперсонування конкретного службового облікового запису
impersonate-on:serviceaccount:<verb> — Дозвіл на виконання <verb> під час імперсонування службового облікового запису
Режими arbitrary-node та associated-node
Використовуйте ці режими для імперсонування вузлів. Цей режим застосовується, коли значення заголовка Impersonate-User починається з system:node:.
Дієслова:
impersonate:arbitrary-node — Дозвіл на імперсонування будь-якого вказаного вузла
impersonate:associated-node — Дозвіл на імперсонування лише вузла, до якого привʼязаний імперсонатор
impersonate-on:arbitrary-node:<verb> — Дозвіл на виконання <verb> під час імперсонування будь-якого вузла
impersonate-on:associated-node:<verb> — Дозвіл на виконання <verb> під час імперсонування повʼязаного вузла
Примітка:
Дієслово impersonate:associated-node застосовується лише тоді, коли імперсонатор є службовим обліковим записом, привʼязаним до вузла, який він намагається імперсонувати. Це визначається шляхом перевірки, чи містить інформація про користувача службового облікового запису додаткове поле з ключем authentication.kubernetes.io/node-name, яке відповідає вузлу, що імперсонується.
Налаштування обмеженого імперсонування за допомогою RBAC
Усі дозволи на обмежене імперсонування використовують групу API authentication.k8s.io. Ось як налаштувати різні режими.
Приклад: Імперсонація користувача для виконання певних дій
Цей приклад показує, як дозволити службовому обліковому запису видавати себе за користувача з іменем jane.doe@example.com, але тільки для list і watch подів у просторі імен default. Вам потрібні як ClusterRoleBinding для дозволу на ідентифікацію, так і RoleBinding для дозволу на дію
Крок 1: Надайте дозвіл видавати себе за користувача
Тепер службовий обліковий запис my-controller може видавати себе за jane.doe@example.com, щоб переглядати та спостерігати за подами в просторі імен default, але не може виконувати інші дії, такі як видалення подів або доступ до ресурсів в інших просторах імен.
Приклад: Імперсонація службового облікового запису
Щоб дозволити імперсонувати службовий обліковий запис з іменем app-sa у просторі імен production для створення та оновлення Deployment:
apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:name:impersonate-app-sanamespace:defaultrules:- apiGroups:["authentication.k8s.io"]resources:["serviceaccounts"]resourceNames:["app-sa"]# Для службових облікових записів необхідно вказати простір імен у RoleBinding.verbs:["impersonate:serviceaccount"]---apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:name:impersonate-manage-deploymentsnamespace:productionrules:- apiGroups:["apps"]resources:["deployments"]verbs:- "impersonate-on:serviceaccount:create"- "impersonate-on:serviceaccount:update"- "impersonate-on:serviceaccount:patch"---apiVersion:rbac.authorization.k8s.io/v1kind:RoleBindingmetadata:name:impersonate-app-sanamespace:defaultroleRef:apiGroup:rbac.authorization.k8s.iokind:Rolename:impersonate-app-sasubjects:- kind:ServiceAccountname:deputy-controllernamespace:default---apiVersion:rbac.authorization.k8s.io/v1kind:RoleBindingmetadata:name:impersonate-manage-deploymentsnamespace:productionroleRef:apiGroup:rbac.authorization.k8s.iokind:Rolename:impersonate-manage-deploymentssubjects:- kind:ServiceAccountname:deputy-controllernamespace:default
Приклад: Імперсонація вузла
Щоб дозволити службовому обліковому запису node-impersonator у просторі імен default імперсонувати вузол з іменем mynode для отримання та перегляду подів:
З точки зору клієнта, використання обмеженої імперсонації ідентичне використанню традиційної імперсонації. Ви використовуєте ті самі заголовки імперсонації:
Impersonate-User: jane.doe@example.com
Або з kubectl:
kubectl get pods -n default --as=jane.doe@example.com
Різниця полягає виключно в перевірках авторизації, що виконуються сервером API.
Робота з дієсловом impersonate
Якщо у вас є наявні правила RBAC, що використовують дієслово impersonate, вони продовжують функціонувати, коли функціональну можливість увімкнено.
Коли надходить запит на імперсонацію, сервер API спочатку перевіряє дозволи на обмежену імперсонацію. Якщо ці перевірки не проходять, він переходить до перевірки дозволу impersonate.
Аудит
Для кожного запиту на імперсонацію реєструється подія аудиту, щоб допомогти відстежувати, як використовується імперсонація.
Коли запит використовує обмежену імперсонацію, подія аудиту включає обʼєкт authenticationMetadata з полем impersonationConstraint, яке вказує, яке обмежене дієслово імперсонації було використано для авторизації запиту.
Для запитів, що не є watch і займають більше 500 мс, сервер API також додає анотацію apiserver.latency.k8s.io/impersonation до події аудиту, фіксуючи час, витрачений на обробку імперсонації (разом з іншими обробниками, які сприяли загальній тривалості).
Значення impersonationConstraint вказує, який режим був використаний (наприклад, impersonate:user-info, impersonate:associated-node). Конкретна дія (наприклад, list) може бути визначена з поля verb в аудиторській події. Для повільних запитів анотація затримки фіксує час (наприклад, 100ms), витрачений на обробку імперсонації для запиту.
Метрики
kube-apiserver надає наступні метрики Prometheus для обмеженої імперсонації:
apiserver_impersonation_attempts_total{mode, decision}: лічильник, який збільшується при кожній спробі імперсонації. mode може бути одним з associated-node, arbitrary-node, serviceaccount, user-info або legacy. decision може бути allowed або denied.
apiserver_impersonation_attempts_duration_seconds{mode, decision}: гістограма, що відстежує час, витрачений на визначення імперсонованого користувача. Мітки mode та decision мають ті ж значення, що й вище. Через кешування всередині обробника це відображає амортизовану затримку запитів імперсонації.
apiserver_impersonation_authorization_attempts_total{mode, decision}: лічильник, який збільшується при кожній спробі імперсонації, що викликає авторизатор. Мітки mode та decision мають ті ж значення, що й вище.
apiserver_impersonation_authorization_attempts_duration_seconds{mode, decision}: гістограма, що відстежує час, витрачений авторизатором на кожну спробу імперсонації. Мітки mode та decision мають ті ж значення, що й вище.
Для метрик apiserver_impersonation_attempts_total{mode, decision} та apiserver_impersonation_attempts_duration_seconds{mode, decision}, mode є порожнім рядком, коли decision дорівнює denied.
Цей посібник пояснює деякі концепції, повʼязані зі ServiceAccount. Також у посібнику розглядається, як отримати або відкликати токени, що представляють ServiceAccounts. ServiceAccounts, і як (за бажанням) привʼязати термін дії ServiceAccounts до часу життя обʼєкта API.
Перш ніж ви розпочнете
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:
Щоб точно виконати ці кроки, переконайтеся, що у вас є простір імен під назвою examplens. Якщо ні, створіть його, виконавши команду:
kubectl create namespace examplens
Облікові записи користувачів та службові облікові записи
Kubernetes розрізняє поняття облікового запису користувача та службового облікового запису з кількох причин:
Облікові записи користувачів призначені для людей. Службові облікові записи призначені для процесів застосунків, які (для Kubernetes) виконуються в контейнерах, що є частиною Pod.
Облікові записи користувачів мають бути глобальними: імена повинні бути унікальними у всіх просторах імен кластера. Незалежно від того, який простір імен ви розглядаєте, певний обліковий запис користувача представляє того самого користувача. У Kubernetes службові облікові записи є привʼязаними до простору імен: два різні простори імен можуть містити ServiceAccountʼи з однаковими іменами.
Як правило, облікові записи користувачів кластера можуть синхронізуватися з корпоративною базою даних, де створення нового облікового запису користувача вимагає спеціальних привілеїв і повʼязане зі складними бізнес-процесами. Навпаки, створення службових облікових записів повинно бути легшим, дозволяючи користувачам кластера створювати службові облікові записи для конкретних завдань за запитом. Відділення створення ServiceAccount від кроків для реєстрації користувачів полегшує дотримання принципу найменших привілеїв для робочих навантажень.
Вимоги до аудиту для облікових записів користувачів (людей) та службових облікових записів можуть відрізнятися; розділення полегшує досягнення цих вимог.
Конфігураційний пакет для складної системи може містити визначення різних службових облікових записів для компонентів цієї системи. Оскільки службові облікові записи можуть створюватися без багатьох обмежень і мають імена, привʼязані до простору імен, така конфігурація зазвичай є переносимою.
Привʼязані токени службових облікових записів
Токени ServiceAccount можуть бути привʼязані до API обʼєктів, що існують у kube-apiserver. Їх можна використовувати для звʼязування дійсності токена з існуванням іншого API обʼєкта. Підтримувані типи обʼєктів наступні:
Pod (використовується для projected томів, див. нижче)
Secret (може використовуватися для відкликання токена шляхом видалення Secret)
Node (може використовуватись для автоматичного відкликання токенів, коли Вузол видалено; створення нових токенів, привʼязаних до вузлів, є загально доступним)
Коли токен привʼязаний до обʼєкта, metadata.name і metadata.uid цього обʼєкта зберігаються як додаткові "приватні заявки" у виданому JWT.
Коли привʼязаний токен представляється kube-apiserver, автентифікатор службового облікового запису витягне і перевірить ці заявки. Якщо вказаний обʼєкт або ServiceAccount знаходяться в процесі видалення (наприклад, через завершувач), то протягом будь-якого моменту, через 60 секунд (або більше) після дати .metadata.deletionTimestamp, автентифікація з використанням цього токена буде неуспішною. Якщо обʼєкт, на який він посилається, більше не існує (або його metadata.uid не збігається), запит не буде автентифікований.
Додаткові метадані в токенах, повʼязаних з Pod
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.32 [stable](стандартно увімкнено)
Коли токен службового облікового запису привʼязаний до обʼєкта Pod, додаткові метадані також вбудовуються в токен, що вказує на значення поля spec.nodeName повʼязаного Pod і uid цього вузла, якщо це можливо.
Ця інформація про вузол не перевіряється kube-apiserver, коли токен використовується для автентифікації. Вона включена, щоб інтегратори не повинні були отримувати обʼєкти API Pod або Node для перевірки повʼязаного імені вузла та uid при інспекції JWT.
Перевірка та інспекція приватних заявок
API TokenReview може використовуватися для перевірки та вилучення приватних заявок з токена:
Спочатку припустимо, що у вас є Pod з назвою test-pod і службовий обліковий запис з назвою my-sa.
Попри використання kubectl create -f для створення цього ресурсу, і визначення його схожим чином з іншими типами ресурсів у Kubernetes, TokenReview є спеціальним типом і kube-apiserver насправді не зберігає обʼєкт TokenReview в etcd. Тому kubectl get tokenreview не є допустимою командою.
Схема для приватних вимог службового запису
Схема для специфічних для Kubernetes вимог у токенах JWT наразі не задокументована, проте відповідну кодову область можна знайти у serviceaccount package у кодовій базі Kubernetes.
Ви можете перевірити JWT за допомогою стандартного інструменту декодування JWT. Нижче наведено приклад JWT для облікового запису ServiceAccount my-serviceaccount, привʼязаного до обʼєкта Pod з іменем my-pod, який заплановано до вузла my-node, у просторі імен my-namespace:
Поля aud та iss у цьому JWT можуть відрізнятися між різними кластерами Kubernetes залежно від вашої конфігурації.
Наявність полів pod і node означає, що цей токен привʼязано до обʼєкта Pod. При перевірці токенів ServiceAccount, привʼязаних до Pod, сервер API не перевіряє існування обʼєкта Node, на який посилається.
Сервіси, які працюють за межами Kubernetes і хочуть виконувати перевірку JWT в автономному режимі, можуть використовувати цю схему разом із сумісним валідатором JWT, налаштованим на інформацію OpenID Discovery з сервера API, для перевірки представлених JWT без необхідності використання API TokenReview.
Сервіси, які перевіряють JWT таким чином, не перевіряють твердження, вбудовані в токен JWT, на актуальність і дійсність. Це означає, що якщо токен привʼязаний до обʼєкта, а цей обʼєкт більше не існує, токен все одно буде вважатися дійсним (до закінчення терміну дії налаштованого токена).
Клієнти, які потребують впевненості в тому, що повʼязані з токеном твердження все ще дійсні, ПОВИННІ використовувати TokenReview API, щоб представити токен kube-apiserver для перевірки і розширення вбудованих тверджень, використовуючи кроки, подібні до тих, що описані в розділі Перевірка та інспекція приватних тверджень вище, але з підтримуваною клієнтською бібліотекою. Для отримання додаткової інформації про JWT та їх структуру див. JSON Web Token RFC.
Механізм томів привʼязаного токена службового облікового запису
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.22 [stable](стандартно увімкнено)
...- name:kube-api-access-<random-suffix>projected:sources:- serviceAccountToken:path:token# має збігатися з шляхом, який очікує застосунок- configMap:items:- key:ca.crtpath:ca.crtname:kube-root-ca.crt- downwardAPI:items:- fieldRef:apiVersion:v1fieldPath:metadata.namespacepath:namespace
Цей фрагмент маніфесту визначає projected том, що складається з трьох джерел. У цьому випадку,
кожне джерело також представляє один шлях у цьому томі. Три джерела такі:
Джерело serviceAccountToken, яке містить токен, який kubelet отримує з kube-apiserver. Kubelet отримує токени з обмеженим терміном дії за допомогою API TokenRequest. Токен, наданий для TokenRequest, закінчується або при видаленні Pod, або після визначеного терміну дії (стандартно, це 1 година). Kubelet також оновлює цей токен перед тим, як термін його дії закінчиться. Токен привʼязаний до конкретного Pod і має kube-apiserver як свою аудиторію. Цей механізм замінив попередній механізм, який додавав том на основі Secret, де Secret представляв ServiceAccount для Pod, але не мав терміну дії.
Джерело configMap. ConfigMap містить набір даних центру сертифікації. Pod можуть використовувати ці сертифікати, щоб упевнитись, що вони підключаються до kube-apiserver вашого кластера (а не до проміжного блоку або випадково неправильно налаштованого колеги).
Джерело downwardAPI, яке шукає імʼя простору імен, що містить Pod, і надає цю інформацію про імʼя для коду застосунку, що виконується всередині Pod.
Будь-який контейнер у Pod, який монтує цей том, може отримати доступ до вищевказаної інформації.
Примітка:
Не існує якогось окремого механізму для анулювання токена, виданого через TokenRequest. Якщо ви більше не довіряєте привʼязаному токену службового облікового запису для Pod, ви можете видалити цей Pod. Видалення Pod анулює його привʼязані токени службових облікових записів.
Ручне управління Secret для ServiceAccounts
Версії Kubernetes до v1.22 автоматично створювали облікові дані для доступу до API Kubernetes. Цей старіший механізм був заснований на створенні токенів Secret, які потім могли бути змонтовані в запущені Podʼи.
У новіших версіях, включаючи Kubernetes v1.36, API облікові дані отримуються безпосередньо за допомогою TokenRequest, і монтуються в Podʼи за допомогою projected тому. Токени, отримані за допомогою цього методу, мають обмежений термін дії та автоматично анулюються, коли Pod, в який вони змонтовані, видаляється.
Ви все ще можете створити вручну Secret для збереження токена службового облікового запису; наприклад, якщо вам потрібен токен, який ніколи не закінчується.
Після того, як ви вручну створите Secret і звʼяжете його зі службовим обліковим записом, панель управління Kubernetes автоматично заповнює токен у цьому Secret.
Примітка:
Хоча існує ручний механізм для створення токена службового облікового запису з тривалим терміном дії, рекомендується використовувати TokenRequest для отримання токенів доступу до API з коротким терміном дії.
До версії 1.24 Kubernetes автоматично генерував токени на основі Secret для ServiceAccount. Щоб розрізнити автоматично згенеровані токени та створені вручну, Kubernetes перевіряє посилання з поля секретів ServiceAccount. Якщо Secret згадується в полі secrets, він вважається автоматично згенерованим застарілим токеном. В іншому випадку він вважається вручну створеним застарілим токеном. Наприклад:
apiVersion:v1kind:ServiceAccountmetadata:name:build-robotnamespace:defaultsecrets:- name:build-robot-secret# зазвичай НЕ присутній для вручну створеного токена
Починаючи з версії 1.29, застарілі токени службових облікових записів, які були згенеровані автоматично, будуть позначені як недійсні, якщо вони залишатимуться невикористаними протягом певного періоду часу (стандартно один рік). Токени, які продовжують залишатися невикористаними протягом цього визначеного періоду (знову ж таки, стандартно один рік), будуть згодом видалені панеллю управління.
Якщо користувачі використовують анульований автоматично згенерований токен, валідатор токенів:
додасть анотацію аудиту для пари ключ-значення authentication.k8s.io/legacy-token-invalidated: <secret name>/<namespace>,
оновить мітку Secret kubernetes.io/legacy-token-last-used з новою датою,
поверне помилку, вказуючи, що токен був анульований.
При отриманні цієї помилки валідації користувачі можуть оновити Secret, щоб видалити мітку kubernetes.io/legacy-token-invalid-since, щоб тимчасово дозволити використання цього токена.
Ось приклад автоматично згенерованого застарілого токена, який був позначений мітками kubernetes.io/legacy-token-last-used і kubernetes.io/legacy-token-invalid-since:
Контролер ServiceAccount керує ServiceAccount всередині просторів імен та забезпечує наявність ServiceAccount з іменем "default" у кожному активному просторі імен.
Контролер токенів
Контролер токенів службових облікових записів працює як частина kube-controller-manager. Цей контролер діє асинхронно. Він:
відстежує видалення ServiceAccount та видаляє всі відповідні Secretʼи токенів ServiceAccount.
відстежує додавання Secretʼу токенів ServiceAccount та забезпечує наявність відповідного ServiceAccount, додає токен до Secretʼу за потреби.
відстежує видалення Secretʼу та видаляє посилання з відповідного ServiceAccount за потреби.
Необхідно передати файл приватного ключа службового облікового запису контролеру токенів у kube-controller-manager, використовуючи прапорець --service-account-private-key-file. Приватний ключ використовується для підпису згенерованих токенів службових облікових записів. Аналогічно, необхідно передати відповідний публічний ключ у kube-apiserver, використовуючи прапорець --service-account-key-file. Публічний ключ буде використовуватися для перевірки токенів під час автентифікації.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [stable](стандартно увімкнено)
Альтернативою встановленню прапорців --service-account-private-key-file та --service-account-key-file є налаштування зовнішнього підписувача JWT для зовнішнього підписувача токенів ServiceAccount та керування ключами. Зверніть увагу, що ці налаштування є взаємовиключними і не можуть бути налаштовані разом.
Контролер допуску ServiceAccount
Зміна Podʼів здійснюється через втулок, що викликається Контролером допуску. Він є частиною сервера API. Цей контролер допуску діє синхронно для зміни Podʼів під час їх створення. Коли цей втулок активний (а він є стандартно активним у більшості дистрибутивів), то під час створення Pod він виконує наступні дії:
Якщо у Pod не встановлено значення .spec.serviceAccountName, контролер допуску встановлює імʼя ServiceAccount default для цього Pod.
Контролер допуску забезпечує наявність ServiceAccount, на який посилається Pod. Якщо не існує ServiceAccount з відповідним імʼям, контролер допуску відхиляє Pod. Ця перевірка застосовується навіть для default ServiceAccount.
Якщо поле automountServiceAccountToken у ServiceAccount або в Podʼі не встановлено в false:
контролер допуску змінює Pod, додаючи додатковий том, що містить токен для доступу до API.
контролер допуску додає volumeMount до кожного контейнера в Podʼі, пропускаючи контейнери, які вже мають визначений шлях для монтування тому /var/run/secrets/kubernetes.io/serviceaccount. Для Linux-контейнерів цей том монтується за адресою /var/run/secrets/kubernetes.io/serviceaccount; на Windows-вузлах монтування знаходиться ну еквівалентному шляху.
Якщо в специфікації Pod не містяться жодні imagePullSecrets, контролер допуску додає imagePullSecrets, копіюючи їх з ServiceAccount.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.28 [stable](стандартно увімкнено)
Цей контролер створює ConfigMap з назвою kube-system/kube-apiserver-legacy-service-account-token-tracking у просторі імен kube-system. ConfigMap фіксує мітку часу, коли система почала відстежувати застарілі токени службових облікових записів.
Очищувач токенів застарілих ServiceAccount
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.30 [stable](стандартно увімкнено)
Очищувач токенів застарілих ServiceAccount працює як частина kube-controller-manager і перевіряє кожні 24 години, чи не використовувався будь-який автоматично згенерований застарілий токен службового облікового запису протягом визначеного часу. Якщо так, очищувач позначає ці токени як недійсні.
Очищувач працює, спершу перевіряючи ConfigMap, створений панеллю управління (за умови, що LegacyServiceAccountTokenTracking увімкнено). Якщо поточний час перевищує визначений час після дати в ConfigMap, очищувач переглядає список Secretʼів у кластері та оцінює кожен Secret, що має тип kubernetes.io/service-account-token.
Якщо Secret відповідає всім наступним умовам, очищувач позначає його як недійсний:
Secret створено автоматично, що означає що він двонаправлено згадується ServiceAccount.
Secret не змонтовано жодним Podʼом.
Secret не використовувався протягом визначеного часу з моменту створення або останнього використання.
Очищувач позначає Secret як недійсний, додаючи мітку kubernetes.io/legacy-token-invalid-since до Secret, з поточною датою. Якщо недійсний Secret не використовується протягом визначеного часу, очищувач видаляє його.
Примітка:
Усі визначені часи стандартно становлять один рік. Адміністратор кластера може налаштувати це значення через аргумент командного рядка --legacy-service-account-token-clean-up-period для компонента kube-controller-manager.
API TokenRequest
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.22 [stable]
Ви використовуєте субресур TokenRequest з ServiceAccount, щоб отримати токен з обмеженим часом дії для цього ServiceAccount. Вам не потрібно викликати його для отримання API-токена для використання в контейнері, оскільки kubelet налаштовує це для вас, використовуючи projected том.
Панель управління Kubernetes (зокрема, контролер допуску ServiceAccount) додає projected том до Podʼів, а kubelet забезпечує, що цей том містить токен, який дозволяє контейнерам автентифікуватися як відповідний ServiceAccount.
(Цей механізм замінив попередній механізм, який додавав том на основі Secret, де Secret представляв ServiceAccount для Pod, але не мав терміну дії.)
Ось приклад того, як це виглядає для запущеного Pod:
Цей фрагмент маніфесту визначає projected том, який обʼєднує інформацію з трьох джерел:
Джерело serviceAccountToken, що містить токен, який kubelet отримує від kube-apiserver. Kubelet отримує токени з обмеженим часом дії, використовуючи API TokenRequest. Токен, виданий для TokenRequest, спливає або коли Pod видаляється, або через визначений термін життя (стандартно — 1 година). Токен привʼязаний до конкретного Podʼа та має kube-apiserver як свою аудиторію.
Джерело configMap. ConfigMap містить пакет даних сертифікаційного центру. Podʼи можуть використовувати ці сертифікати, щоб переконатися, що вони підключаються до kube-apiserver вашого кластера (а не до проміжного блоку або випадково неправильно налаштованого колеги).
Джерело downwardAPI. Цей том downwardAPI робить імʼя простору імен, що містить Pod, доступним для коду програми, що працює всередині Podʼа.
Будь-який контейнер у Podʼі, що монтує цей том, може отримати доступ до вищезазначеної інформації.
Створення додаткових API токенів
Увага:
Створюйте довгострокові API токени тільки якщо механізм запиту токенів не підходить. Механізм запиту токенів надає токени з обмеженим часом дії; оскільки вони спливають, вони представляють менший ризик для інформаційної безпеки.
Для створення постійного API токена для ServiceAccount, створіть Secret типу kubernetes.io/service-account-token з анотацією, що посилається на ServiceAccount. Панель управління потім генерує довгостроковий токен і оновлює цей Secret з даними згенерованого токена.
Якщо ви запустите новий Pod у просторі імен examplens, він може використовувати Secret токену службового облікового запису myserviceaccount, який ви щойно створили.
Короткочасні токени ServiceAccount автоматично втрачають силу після закінчення терміну, вказаного під час їх створення. Немає центрального запису виданих токенів, тому немає способу відкликати окремі токени.
Якщо вам потрібно відкликати короткочасний токен до його закінчення, ви можете видалити та повторно створити ServiceAccount, до якого він привʼязаний. Це змінить його UID і, отже, анулює всі токени ServiceAccount, які були створені для нього.
Підписування та керування токенами зовнішніх ServiceAccount
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [stable](стандартно увімкнено)
Kube-apiserver можна налаштувати на використання зовнішнього підписувача для підпису токенів та управління ключами для перевірки токенів. Ця можливість дозволяє дистрибутивам kubernetes інтегруватися з рішеннями керування ключами за власним вибором (наприклад, HSM, хмарні KMS) для підписання та перевірки облікових даних службових облікових записів. Щоб налаштувати kube-apiserver на використання external-jwt-signer, встановіть прапорець --service-account-signing-endpoint на розташування сокета домену Unix (UDS) у файловій системі, або додайте префікс @ і назвіть UDS в абстрактному просторі назв сокетів. На сконфігурованому UDS має бути RPC-сервер, який реалізує gRPC-сервіс ExternalJWTSigner.
External-jwt-signer має бути працездатним і готовим обслуговувати підтримувані ключі сервісних облікових записів для запуску kube-apiserver.
Примітка:
Прапорці kube-apiserver --service-account-key-file і --service-account-signing-key-file і надалі використовуватимуться для читання з файлів, якщо не встановлено --service-account-signing-endpoint; вони є взаємовиключними способами підтримки підпису та автентифікації JWT.
Зовнішній підписувач надає gRPC-сервіс v1.ExternalJWTSigner, який реалізує 3 методи:
Metadata
Metadata має викликатись один раз kube-apiserver під час запуску. Це дозволяє зовнішньому підписувачу ділитися метаданими з kube-apiserver, такими як максимальний термін дії токена, який підтримує підписувач.
rpcMetadata(MetadataRequest)returns(MetadataResponse){}messageMetadataRequest{}messageMetadataResponse{// використовується kube-apiserver для встановлення стандартних значень/перевірки терміну дії JWT з урахуванням значень прапорців конфігурації:
// 1. `--service-account-max-token-expiration`
// 2. `--service-account-extend-token-expiration`
//
// * Якщо `--service-account-max-token-expiration` більше ніж `max_token_expiration_seconds`, kube-apiserver вважає це неправильним налаштуванням і завершує роботу.
// * Якщо `--service-account-max-token-expiration` не встановлено явно, kube-apiserver стандартно використовує `max_token_expiration_seconds`.
// * Якщо `--service-account-extend-token-expiration` істинне, розширений термін дії становить `min(1 year, max_token_expiration_seconds)`.
//
// `max_token_expiration_seconds` повинен бути не менше 600s.
int64max_token_expiration_seconds=1;}
FetchKeys
FetchKeys повертає набір (set) публічних ключів, які мають відповідну довіру для підпису токенів службових облікових записів Kubernetes. Kube-apiserver буде викликати цей RPC:
Кожного разу, коли він намагається перевірити JWT від видавця службового облікового запису з невідомим ідентифікатором ключа, і
Періодично, щоб він міг надавати досить актуальні ключі з кінцевої точки OIDC JWKs.
rpcFetchKeys(FetchKeysRequest)returns(FetchKeysResponse){}messageFetchKeysRequest{}messageFetchKeysResponse{repeatedKeykeys=1;// Часовий відбиток, коли ці дані були отримані з авторитетного джерела
// істини для ключів перевірки.
// kube-apiserver може експортувати це з метрик, щоб уможливити наскрізні SLO.
google.protobuf.Timestampdata_timestamp=2;// інтервал оновлення для ключів перевірки, щоб виявити зміни, якщо такі є.
// будь-яке значення <= 0 вважається неправильним налаштуванням.
int64refresh_hint_seconds=3;}messageKey{// Унікальний ідентифікатор для цього ключа.
// Довжина повинна бути <=1024.
stringkey_id=1;// Публічний ключ, PKIX-серіалізований.
// повинен бути публічним ключем, підтримуваним kube-apiserver (в даний час RSA 256 або ECDSA 256/384/521)
byteskey=2;// Встановлюється тільки для ключів, які не використовуються для підписання повʼязаних токенів.
// Наприклад: підтримувані ключі для застарілих токенів.
// Якщо встановлено, ключ використовується для перевірки, але виключається з документів OIDC discovery.
// Якщо встановлено, зовнішній підписувач не повинен використовувати цей ключ для підписання JWT.
boolexclude_from_oidc_discovery=3;}
Sign
Sign бере серіалізоване навантаження JWT і повертає серіалізований заголовок і підпис. kube-apiserver потім збирає JWT з заголовка, навантаження та підпису.
rpcSign(SignJWTRequest)returns(SignJWTResponse){}messageSignJWTRequest{// URL-безпечний base64-загорнутий корисне навантаження, що підлягає підписанню.
// Так само, як він зʼявляється у другому сегменті JWT
stringclaims=1;}messageSignJWTResponse{// заголовок має містити лише claims alg, kid, typ.
// typ повинен бути “JWT”.
// kid повинен бути непорожнім, <=1024 символів, і його відповідний публічний ключ не повинен бути виключений з OIDC discovery.
// alg повинен бути одним з алгоритмів, підтримуваних kube-apiserver (в даний час RS256, ES256, ES384, ES512).
// заголовок не може містити жодних додаткових даних, які kube-apiserver не розпізнає.
// Вже загорнуто в URL-безпечний base64, точно так, як він зʼявляється в першому сегменті JWT.
stringheader=1;// Підпис для JWT.
// Вже загорнуто в URL-безпечний base64, точно так, як він зʼявляється в останньому сегменті JWT.
stringsignature=2;}
Прибирання
Якщо ви створили простір імен examplens для експериментів, ви можете його видалити:
API для сертифікатів та наборів довіри Kubernetes дозволяють автоматизувати створення облікових даних X.509, надаючи програмний інтерфейс для клієнтів API Kubernetes для запиту та отримання X.509 сертифікатів від Центру сертифікації (CA).
Також є експериментальна (альфа) підтримка розподілу наборів довіри.
Запити на підписання сертифікатів
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.19 [stable]
Ресурс CertificateSigningRequest (CSR) використовується для запиту підписання сертифіката від вказаного підписувача, після чого запит може бути схвалений або відхилений перед остаточним підписанням.
Процес підписання запиту
Ресурс типу CertificateSigningRequest дозволяє клієнту запросити видачу сертифіката X.509 на основі запиту на підписання. Обʼєкт CertificateSigningRequest містить PEM-кодований запит на підпис у форматі PKCS#10 у полі spec.request. CertificateSigningRequest вказує підписувача (одержувача, до якого робиться запит) за допомогою поля spec.signerName. Зверніть увагу, що після версії API certificates.k8s.io/v1 ключ spec.signerName є обовʼязковим. У Kubernetes v1.22 та пізніших версіях клієнти можуть за бажанням встановити поле spec.expirationSeconds, щоб запросити певний термін дії виданого сертифіката. Мінімальне допустиме значення для цього поля — 600, тобто десять хвилин.
Після створення CertificateSigningRequest його необхідно схвалити перед підписанням. Залежно від обраного підписувача, CertificateSigningRequest може бути автоматично схвалений контролером. В іншому випадку CertificateSigningRequest слід схвалити вручну через API REST (або client-go) або за допомогою команди kubectl certificate approve. Аналогічно CertificateSigningRequest також може бути відхилений, що повідомляє налаштованому підписувачу, що він не повинен підписати запит.
Для схвалених сертифікатів наступним кроком є підписання. Відповідний контролер підпису перевіряє, чи виконуються умови підписання, а потім створює сертифікат. Після цього контролер підпису оновлює CertificateSigningRequest, зберігаючи новий сертифікат у полі status.certificate наявного обʼєкта CertificateSigningRequest. Поле status.certificate CertificateSigningRequest може бути порожнім або містити сертифікат X.509, кодований у форматі PEM. Поле status.certificate CertificateSigningRequest залишається порожнім, доки підписувач не зробить це.
Після заповнення поля status.certificate запит вважається завершеним, і клієнти тепер можуть отримати PEM-дані підписаного сертифіката з ресурсу CertificateSigningRequest. Підписувачі також можуть відхилити підпис сертифіката, якщо умови схвалення не виконані.
Для зменшення кількості застарілих ресурсів CertificateSigningRequest в кластері періодично запускається контролер збору сміття. Він видаляє CertificateSigningRequests, які не змінювали стан протягом певного періоду:
Схвалені запити: автоматично видаляються після 1 години
Відхилені запити: автоматично видаляються після 1 години
Невдалі запити: автоматично видаляються після 1 години
Запити в очікуванні: автоматично видаляються після 24 годин
Усі запити: автоматично видаляються після того, як видача сертифіката закінчиться після спливання часу дії
Авторизація підпису сертифікатів
Для можливості створення запиту на підпис сертифіката та отримання будь-якого запиту на підпис сертифіката:
apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:csr-signerrules:- apiGroups:- certificates.k8s.ioresources:- certificatesigningrequestsverbs:- get- list- watch- apiGroups:- certificates.k8s.ioresources:- certificatesigningrequests/statusverbs:- update- apiGroups:- certificates.k8s.ioresources:- signersresourceNames:- example.com/my-signer-name# example.com/* може використовуватись для авторизації всіх підписувачів в домені 'example.com'verbs:- sign
Підписувачі
Підписувачі абстрактно представляють сутність або сутності, які можуть підписувати або вже підписали сертифікат.
Будь-який підписувач, який доступний за межами конкретного кластера, повинен надавати інформацію про те, як працює підписувач, щоб споживачі могли зрозуміти, що це означає для CertificateSigningRequests та (якщо це увімкнено) ClusterTrustBundles. Це охоплює:
Розподіл довіри: як розподіляються якорі довіри (CA-сертифікати або набори сертифікатів).
Дозволені субʼєкти: будь-які обмеження та поведінка, коли запитано недопустимий субʼєкт.
Дозволені розширення x509: включаючи IP subjectAltNames, DNS subjectAltNames, Email subjectAltNames, URI subjectAltNames тощо, та поведінка, коли запитано недопустиме розширення.
Дозволені використання ключів / розширені використання ключів: будь-які обмеження та поведінка, коли використання, відмінне від використання, визначеного підписувачем, вказане в CSR.
Термін дії / термін життя сертифіката: чи він фіксується підписувачем, настроюваний адміністратором, визначений полем spec.expirationSeconds CSR тощо, та поведінка, коли термін дії, визначений підписувачем, відрізняється від поля spec.expirationSeconds CSR.
Дозволені / заборонені прапорці CA: та поведінка, якщо CSR містить запит на отримання сертифіката CA, коли підписувач не пропускає його.
Зазвичай поле status.certificate обʼєкта CertificateSigningRequest містить один PEM-кодований сертифікат X.509, як тільки CSR схвалено, і сертифікат видається. Деякі підписувачі зберігають кілька сертифікатів у полі status.certificate. У цьому випадку документація для підписувача повинна вказувати значення додаткових сертифікатів; наприклад, це може бути сертифікат плюс проміжні сертифікати, які представляються під час рукостискання TLS.
Якщо ви хочете зробити якір довіри (кореневий сертифікат) доступним, це слід зробити окремо від CertificateSigningRequest та його поля status.certificate. Наприклад, ви можете використовувати ClusterTrustBundle.
Формат підпису PKCS#10 не має стандартного механізму для вказання терміну дії або терміну життя сертифіката. Термін дії або термін життя має бути встановлено через поле spec.expirationSeconds обʼєкта CSR. Вбудовані підписувачі використовують параметр конфігурації ClusterSigningDuration, який стандартно становить 1 рік, (прапорець командного рядка --cluster-signing-duration kube-controller-manager) в як стандартне значення, коли не вказано spec.expirationSeconds. Коли вказано spec.expirationSeconds, використовується мінімум з spec.expirationSeconds та ClusterSigningDuration.
Примітка:
Поле spec.expirationSeconds було додано в Kubernetes v1.22. У попередніх версіях Kubernetes це поле не враховується. API-сервери Kubernetes до v1.22 будуть мовчки видаляти це поле при створенні обʼєкта.
Підписувачі Kubernetes
Kubernetes надає вбудовані підписувачі для підпису сертифікатів, кожен з яких має широко відоме імʼя підписувача signerName:
kubernetes.io/kube-apiserver-client: підписує сертифікати, які мають вважатись сертифікатами клієнтів сервером API. Ніколи автоматично не затверджуються kube-controller-manager.
Розподіл довіри: підписані сертифікати мають вважатись клієнтськими сертифікатами для доступу до API-сервера. Набір ЦС не поширюється жодним іншим способом.
Дозволені субʼєкти: немає обмежень для субʼєктів, однак затверджувачі та підписувачі можуть відхилити запити на затвердження та підпис. Певні субʼєкти подібні до користувачів та груп на рівні кластера є різними поміж різними дистрибутивами, що вимагає додаткових перевірок перед затвердженням та підписуванням. Втулок допуску CertificateSubjectRestrictions є стандартно увімкненим для обмеження system:masters, але в кластері є не тільки субʼєкти рівня адміністраторів кластера.
Дозволені розширення x509: враховують subjectAltNames та використання ключів, відкидаючи інші розширення.
Використання дозволених ключів: мають включати ["client auth"]. Не мають містити використання ключів поза ["digital signature", "key encipherment", "client auth"].
Термін дії / термін життя сертифіката: для реалізації підписувача kube-controller-manager, встановлюється у мінімальне значення з --cluster-signing-duration або, якщо вказано, поля spec.expirationSeconds обʼєкта CSR.
Біт ЦС дозволено / заборонено: не дозволяється.
kubernetes.io/kube-apiserver-client-kubelet: підписує сертифікати, які мають вважатись сертифікатами клієнтів сервером API. Можуть бути автоматично затверджені kube-controller-manager.
Розподіл довіри: підписані сертифікати мають вважатись клієнтськими сертифікатами для доступу до API-сервера. Набір ЦС не поширюється жодним іншим способом.
Дозволені субʼєкти: організації є безумовно ["system:nodes"], загальні імена — "system:node:${NODE_NAME}".
Дозволені розширення x509: враховують розширення з використанням ключів, забороняють розширення subjectAltNames та відкидає інші розширення.
Дозволені використання ключів: ["key encipherment", "digital signature", "client auth"] або ["digital signature", "client auth"].
Термін дії / термін життя сертифіката: для реалізації підписувача kube-controller-manager, встановлюється у мінімальне значення з --cluster-signing-duration або, якщо вказано, поля spec.expirationSeconds обʼєкта CSR.
Біт ЦС дозволено / заборонено: не дозволяється.
kubernetes.io/kubelet-serving: підписує сертифікати, які мають вважатись сертифікатами, які обслуговуються kubelet, але не мають жодних гарантій. Ніколи автоматично не затверджуються kube-controller-manager.
Розподіл довіри: підписані сертифікати мають вважатись API сервером дійсними для обробки зʼєднань з kubelet. Набір ЦС не поширюється жодним іншим способом.
Дозволені субʼєкти: організації є безумовно ["system:nodes"], загальні імена — "system:node:${NODE_NAME}".
Дозволені розширення x509: враховують використання ключів та розширень DNSName/IPAddress subjectAltName extensions, забороняють розширення EmailAddress та URI subjectAltName, відкидають інші розширення. Принаймні один субʼєкт DNS чи IP повинен бути у subjectAltNames.
Дозволені використання ключів: ["key encipherment", "digital signature", "server auth"] або ["digital signature", "server auth"].
Термін дії / термін життя сертифіката: для реалізації підписувача kube-controller-manager, встановлюється у мінімальне значення з --cluster-signing-duration або, якщо вказано, поля spec.expirationSeconds обʼєкта CSR.
Біт ЦС дозволено / заборонено: не дозволяється.
kubernetes.io/legacy-unknown: не має гарантій довіри взагалі. Деякі сторонні дистрибутиви Kubernetes можуть використовувати сертифікати клієнтів, підписані ним. Стабільний API CertificateSigningRequest (версії certificates.k8s.io/v1 та пізніше) не дозволяють встановлювати signerName на kubernetes.io/legacy-unknown. Ніколи автоматично не затверджується kube-controller-manager.
Розподіл довіри: Немає. Для цього підписувача не існує стандартної довіри або розподілу в кластері Kubernetes.
Дозволені субʼєкти: будь-які
Дозволені розширення x509: враховуються subjectAltNames та використання ключів, відкидаються інші розширення.
Дозволені використання ключів: будь-які
Термін дії / термін життя сертифіката: для реалізації підписувача kube-controller-manager, встановлюється у мінімальне значення з --cluster-signing-duration або, якщо вказано, поля spec.expirationSeconds обʼєкта CSR.
Біт ЦС дозволено / заборонено: не дозволяється.
kubernetes.io/kube-apiserver-serving: підписує сертифікати, які можуть використовуватися для перевірки сертифікатів kube-apiserver. Підписання та затвердження обробляються поза kube-controller-manager.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.33 [beta](стандартно вимкнено)
Розподіл довіри: підписані сертифікати використовуються kube-apiserver для серверної TLS автентифікації. Пакет CA розповсюджується за допомогою обʼєкта ClusterTrustBundle, який можна ідентифікувати за імʼям підписувача kubernetes.io/kube-apiserver-serving.
Дозволені субʼєкти — "Subject" сам по собі застарів для серверної TLS автентифікації відповідно до RFC2818. Однак він все ще повинен дотримуватися тих самих правил для DNS/IP SANs з розділу "Дозволені розширення x509" нижче.
Дозволені розширення x509 — враховуються subjectAltName та розширення використання ключів. Повинен бути присутній принаймні один DNS або IP subjectAltName. SAN DNS/IP сертифікатів повинні вирішуватися/вказувати на імʼя хоста/IP kube-apiserver.
Дозволені використання ключів — ["key encipherment", "digital signature", "server auth"] або ["digital signature", "server auth"].
Термін дії/термін життя сертифіката — рекомендований максимальний термін дії становить 30 днів.
Біт ЦС дозволено/заборонено — не рекомендується проєктом Kubernetes.
Примітка:
Поле spec.expirationSeconds було додано в Kubernetes v1.22. Раніше версії Kubernetes не враховували це поле. API-сервери Kubernetes до v1.22 будуть просто ігнорувати це поле під час створення обʼєкта.
kube-controller-manager імплементує підписування панеллю управління для кожного з вбудованих підписувачів, за винятком kubernetes.io/kube-apiserver-serving. Помилки для всіх цих підписувачів повідомляються лише в журналах kube-controller-manager. Підписання сертифікатів у домені довіри підписувача kubernetes.io/kube-apiserver-serving повністю контролюється адміністраторами кластера.
Будь-яка довіра за межами описаних випадків є строго випадковою. Наприклад, деякі дистрибутиви можуть приймати kubernetes.io/legacy-unknown як клієнтські сертифікати для kube-apiserver, але це не є стандартом. Жодне з цих використань не повʼязане з токенами секретів ServiceAccount .data[ca.crt]. Цей пакет CA гарантовано лише для верифікації зʼєднання з API-сервером за допомогою стандартного Service (kubernetes.default.svc).
Власні підписувачі
Ви можете ввести власних підписувачів, які матимуть схожі імена з префіксами, але такі, що вказують на ваш власний домен. Наприклад, якщо ви є представником проєкту з відкритими сирцями, який використовує доменне імʼя open-fictional.example, тоді ви можете використовувати issuer.open-fictional.example/service-mesh як імʼя підписувача.
Власний підписувач використовує API Kubernetes для випуску сертифікатів. Дивіться підписувачі на основі API для деталей.
Підписування
Підписування панеллю управління
Панель управління Kubernetes реалізує кожного з підписувачів Kubernetes як частину kube-controller-manager.
Примітка:
До Kubernetes v1.18, kube-controller-manager підписував будь-які CSRs, які були позначені як схвалені.
Примітка:
Поле spec.expirationSeconds було додано в Kubernetes v1.22. Раніше версії Kubernetes не враховували це поле. API-сервери Kubernetes до v1.22 будуть просто ігнорувати це поле під час створення обʼєкта.
Підписувачі на основі API
Користувачі REST API можуть підписувати CSRs, надсилаючи запит UPDATE до субресурсу status CSR, який потрібно підписати.
У рамках цього запиту поле status.certificate повинно бути встановлено, щоб містити підписаний сертифікат. Це поле містить один або більше сертифікатів, закодованих у форматі PEM.
Всі PEM блоки повинні мати мітку "CERTIFICATE", не містити заголовків, а закодовані дані повинні бути структурою сертифіката BER, закодованого в ASN.1, як описано в розділі 4 RFC5280.
Не-PEM вміст може зʼявлятися до або після блоків CERTIFICATE PEM і не перевіряється, щоб дозволити пояснювальний текст, як описано в розділі 5.2 RFC7468.
При кодуванні в JSON або YAML це поле закодоване в base-64. Запит на підпис сертифіката (CertificateSigningRequest), що містить приклад сертифіката вище, виглядатиме так:
Перед тим, як підписувач видасть сертифікат на основі запиту на підписання сертифіката (CertificateSigningRequest), підписувач зазвичай перевіряє, що видача для цього CSR була схвалена.
Автоматичне схвалення панелі управління
kube-controller-manager поставляється з вбудованим схвалювачем для сертифікатів з іменем підписувача kubernetes.io/kube-apiserver-client-kubelet, який делегує різні дозволи на CSRs для облікових даних вузлів до авторизації. kube-controller-manager надсилає ресурси SubjectAccessReview до API-сервера для перевірки авторизації на схвалення сертифіката.
Схвалення або відхилення за допомогою kubectl
Адміністратор Kubernetes (з відповідними дозволами) може вручну схвалювати (або відхиляти) запити на підписання сертифікатів (CertificateSigningRequests) за допомогою команд kubectl certificate approve та kubectl certificate deny.
Схвалення або відхилення за допомогою API Kubernetes
Користувачі REST API можуть схвалювати CSRs, надсилаючи запит UPDATE до субресурсу approval CSR, який потрібно схвалити. Наприклад, ви можете написати оператор, який слідкує за певним видом CSR, а потім надсилає UPDATE для їх схвалення.
Коли ви робите запит на схвалення або відхилення, встановіть або умову статусу Approved, або Denied залежно від визначеного стану:
Для схвалених CSR:
apiVersion:certificates.k8s.io/v1kind:CertificateSigningRequest...status:conditions:- lastUpdateTime:"2020-02-08T11:37:35Z"lastTransitionTime:"2020-02-08T11:37:35Z"message:Approved by my custom approver controllerreason:ApprovedByMyPolicy# Ви можете вказати тут будь-який рядокtype:Approved
Для відхилених CSR:
apiVersion:certificates.k8s.io/v1kind:CertificateSigningRequest...status:conditions:- lastUpdateTime:"2020-02-08T11:37:35Z"lastTransitionTime:"2020-02-08T11:37:35Z"message:Denied by my custom approver controllerreason:DeniedByMyPolicy# Ви можете вказати тут будь-який рядокtype:Denied
Зазвичай встановлюється в поле status.conditions.reason код причини, зручний для машинного зчитування, використовуючи TitleCase; це є умовністю, але ви можете встановити тут будь-яке значення. Якщо ви хочете додати примітку для читання людьми, використовуйте поле status.conditions.message.
PodCertificateRequests
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.35 [beta](стандартно вимкнено)
Примітка:
В Kubernetes 1.36, ви повинні увімкнути підтримку Pod Certificates за допомогою функціональної можливостіPodCertificateRequest та прапорця --runtime-config=certificates.k8s.io/v1beta1/podcertificaterequests=true kube-apiserver.
PodCertificateRequests є API обʼєктами, які призначені для надання сертифікатів для робочих навантажень, що працюють як Podʼи в кластері. Користувач зазвичай не взаємодіє з PodCertificateRequests безпосередньо, а використовує podCertificate projected volume sources, які є функцією kubelet, що обробляє безпечне надання ключів і автоматичне оновлення сертифікатів. Застосунок всередині пода повинен лише знати, як читати сертифікати з файлової системи.
PodCertificateRequests подібні до CertificateSigningRequests, але мають спрощений формат, що дозволяє їх вузьке використання.
PodCertificateRequest має такі поля специфікації:
signerName: Імʼя підписувача, до якого адресовано цей запит.
podName та podUID: Pod, для якого Kubelet запитує сертифікат.
serviceAccountName та serviceAccountUID: ServiceAccount, що відповідає Pod.
nodeName та nodeUID: Node, що відповідає Pod.
maxExpirationSeconds: Максимальний термін дії, який автор робочого навантаження готовий прийняти для цього сертифіката. Стандартно становить 24 години, якщо не вказано.
stubPKCS10Request: Мінімальний PKCS#10 CSR. Підписувачі повинні витягти публічний ключ з цього CSR. Зазвичай, жодних інших дій з цим полем з боку підписувача не потрібно, підпис CSR перевіряється сервером API. Запити від Kubelet включатимуть лише інформацію про публічний ключ у CSR.
unverifiedUserAnnotations: Map, що дозволяє користувачеві передавати додаткову інформацію реалізації підписувача. Вона дослівно копіюється з поля userAnnotationsджерела проєцьованого тому podCertificate. Записи підлягають тій самій перевірці, що й анотації метаданих обʼєктів, з додаванням того, що всі ключі повинні мати префікс домену. На значення не накладається жодних обмежень, окрім загального обмеження розміру всього поля. Окрім цих основних перевірок, сервер API не проводить жодних додаткових перевірок. Реалізації підписувача повинні бути дуже обережними під час використання цих даних. Підписувачі не повинні за своєю суттю довіряти цим даним без попереднього виконання відповідних кроків перевірки. Підписувачі повинні документувати ключі та значення, які вони підтримують. Підписувачі повинні відхиляти запити, що містять ключі, які вони не розпізнають.
Вузли автоматично отримують дозволи на створення PodCertificateRequests і читання PodCertificateRequests, повʼязаних з ними (як визначено полем spec.nodeName). Втулок допуску NodeRestriction, якщо він увімкнений, забезпечує, щоб вузли могли створювати лише PodCertificateRequests, які відповідають реальному поду, що в даний час працює на вузлі.
Після створення spec PodCertificateRequest є незмінним.
На відміну від CSR, PodCertificateRequests не мають фази затвердження. Як тільки PodCertificateRequest створено, контролер підписувач безпосередньо вирішує, чи видати або відхилити запит. Він також має можливість позначити запит як невдалий, якщо під час спроби видати запит виникла постійна помилка.
Щоб виконати будь-яку з цих дій, контролер підписувач повинен мати відповідні дозволи на тип PodCertificateRequest, а також на імʼя підписувача:
Дієслова: sign, група: certificates.k8s.io, ресурс: signers, resourceName: <signerNameDomain>/<signerNamePath> or <signerNameDomain>/*
Контролер підписувач може вільно враховувати іншу інформацію, крім тієї, що міститься в запиті, але він може покладатися на інформацію в запиті як на точну. Наприклад, контролер підписувач може завантажити Pod і прочитати анотації, встановлені на ньому, або виконати SubjectAccessReview на ServiceAccount.
Щоб видати сертифікат у відповідь на запит, контролер підписувач:
Додає умову Issued до status.conditions.
Поміщає виданий сертифікат у status.certificateChain
Поміщає поля NotBefore і NotAfter сертифіката в status.notBefore і status.notAfter поля — ці поля є денормалізованими в API Kubernetes для полегшення налагодження
Пропонує час для початку спроби оновлення сертифіката за допомогою status.beginRefreshAt.
Щоб відхилити запит, контролер підписувач додає умову "Denied" до status.conditions[].
Щоб позначити запит як невдалий, контролер підписувач додає умову "Failed" до status.conditions[].
Усі ці умови є взаємовиключними і повинні мати статус "True". Не дозволяються інші типи умов на PodCertificateRequests. Крім того, після встановлення будь-якої з цих умов поле status стає незмінним.
Як і всі умови, поле status.conditions[].reason призначене для того щоб містити код, зручний для машинного зчитування, що описує умову в TitleCase. Поле status.conditions[].message призначене для вільного пояснення для людського сприйняття.
Щоб забезпечити те, щоб термінові PodCertificateRequests не накопичувалися в кластері, контролер kube-controller-manager видаляє всі PodCertificateRequests старше 15 хвилин. Усі потоки видачі сертифікатів повинні завершитися протягом цього 15-хвилинного обмеження.
Пакети довіри кластера
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.33 [beta](стандартно вимкнено)
Примітка:
У Kubernetes 1.36 ви повинні ввімкнути функціональну можливістьClusterTrustBundleтагрупу APIcertificates.k8s.io/v1alpha1,
щоб використовувати цей API.
ClusterTrustBundles — це обʼєкт масштабу кластера для розподілу якорів довіри X.509 (кореневих сертифікатів) до робочих навантажень у кластері. Вони розроблені для гарної роботи з концепцією підписувача із запитів на підписання сертифікатів (CertificateSigningRequests).
Усі обʼєкти ClusterTrustBundle мають сувору валідацію вмісту їхнього поля trustBundle. Це поле повинно містити один або більше сертифікатів X.509, серіалізованих у DER, кожен з яких обгорнутий у блок PEM CERTIFICATE. Сертифікати повинні аналізуватися як дійсні сертифікати X.509.
Езотеричні функції PEM, такі як дані між блоками та заголовки всередині блоків, або відхиляються під час валідації обʼєкта, або можуть ігноруватися споживачами обʼєкта. Крім того, споживачі можуть перевпорядковувати сертифікати в пакеті за своїм власним довільним, але стабільним порядком.
Обʼєкти ClusterTrustBundle слід вважати загальнодоступними в межах кластера. Якщо ваш кластер використовує авторизацію RBAC, усі ServiceAccounts стандартно мають дозволи get, list та watch для всіх обʼєктів ClusterTrustBundle. Якщо ви використовуєте власний механізм авторизації та ввімкнули ClusterTrustBundles у своєму кластері, вам слід налаштувати еквівалентне правило для того, щоб ці обʼєкти були загальнодоступними в межах кластера, щоб вони працювали належним чином.
Якщо ви не маєте стандартного дозволу для отримання переліку пакетів довіри кластера у вашому кластері, ви можете діяти від імені службового облікового запису, до якого у вас є доступ, щоб побачити доступні ClusterTrustBundles:
kubectl get clustertrustbundles --as='system:serviceaccount:mynamespace:default'
ClusterTrustBundles, звʼязані з підписувачем
ClusterTrustBundles, звʼязані з підписувачем, асоціюються з імʼям підписувача, як тут:
apiVersion:certificates.k8s.io/v1alpha1kind:ClusterTrustBundlemetadata:name:example.com:mysigner:foospec:signerName:example.com/mysignertrustBundle:"<... PEM data ...>"
ClusterTrustBundles призначені для підтримки контролера, специфічного для підписувача в кластері, тому вони мають кілька функцій безпеки:
Щоб створити або оновити ClusterTrustBundle, звʼязаний з підписувачем, ви повинні мати дозвіл підтвердити підписувача (спеціальне дієслово авторизації attest, група API certificates.k8s.io; шлях ресурсу signers). Ви можете налаштувати авторизацію для конкретного імені ресурсу <signerNameDomain>/<signerNamePath> або відповідати шаблону, наприклад <signerNameDomain>/*.
ClusterTrustBundles, звʼязані з підписувачем, повинні бути названі з префіксом, отриманим з їхнього поля spec.signerName. Слеші (/) замінюються на двокрапки (:), а в кінці додається двокрапка. За цим слідує довільне імʼя. Наприклад, підписувач example.com/mysigner може бути звʼязаний з ClusterTrustBundle example.com:mysigner:<arbitrary-name>.
ClusterTrustBundles, звʼязані з підписувачем, зазвичай використовуються у робочих навантаженнях за допомогою комбінації селектора полів за іменем підписувача та окремого селектора міток.
ClusterTrustBundles, незвʼязані з підписувачем
ClusterTrustBundles, незвʼязані з підписувачем, мають порожнє поле spec.signerName, як це:
apiVersion:certificates.k8s.io/v1alpha1kind:ClusterTrustBundlemetadata:name:foospec:# signerName не вказано, тому поле порожнєtrustBundle:"<... PEM data ...>"
Вони призначені головним чином для випадків використання конфігурації кластера. Кожен ClusterTrustBundle, незвʼязаний з підписувачем, є незалежним обʼєктом, на відміну від звичайної групової поведінки ClusterTrustBundles, звʼязаних з підписувачем.
ClusterTrustBundles, незвʼязані з підписувачем, не мають вимоги щодо дієслова attest. Натомість, ви контролюєте доступ до них безпосередньо за допомогою звичайних механізмів, таких як контроль доступу на основі ролей.
Щоб відрізнити їх від ClusterTrustBundles, звʼязаних з підписувачем, назви ClusterTrustBundles, незвʼязаних з підписувачем, не повинні містити двокрапку (:).
Доступ до ClusterTrustBundles з Podʼів
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.33 [beta](стандартно вимкнено)
Вміст ClusterTrustBundles може бути впроваджений у файлову систему контейнера, подібно до ConfigMaps та Secrets. Дивіться джерело projected томів clusterTrustBundle для отримання додаткової інформації.
Перегляньте вихідний код вбудованого підписувача kube-controller-manager
Перегляньте вихідний код вбудованого схвалювача kube-controller-manager
Для деталей щодо X.509, звертайтеся до RFC 5280 розділ 3.1
Для інформації щодо синтаксису запитів на підписання сертифікатів PKCS#10, звертайтеся до RFC 2986
Прочитайте про API ClusterTrustBundle:
%!s()
3.13 - Зіставлення PodSecurityPolicies зі стандартами безпеки Podʼів
Нижче наведено таблиці, що перераховують параметри конфігурації обʼєктів PodSecurityPolicy, чи поле змінює або перевіряє контейнери, та як значення конфігурації зіставляються з Стандартами безпеки Podʼів.
Для кожного параметра, до якого це застосовується, перераховані допустимі значення для Baseline та Restricted профілів. Все, що перебуває за межами допустимих значень для цих профілів, підпадає під Privileged профіль. "Немає думки" означає, що всі значення допустимі для всіх стандартів безпеки Podʼів.
Baseline: "runtime/default,"(Кома в кінці, щоб встановити unset)
Restricted: "runtime/default"(Без коми в кінці)
Значення localhost/* також дозволені як для Baseline, так і для Restricted.
3.14 - Автентифікація/авторизація kubelet
Огляд
HTTP-запити до HTTPS-точки доступу kubelet надають доступ до даних різного рівня чутливості та дозволяють виконувати операції з різними рівнями повноважень на вузлі та в контейнерах.
У цьому документі описано, як автентифікувати та авторизувати доступ до HTTPS-точки доступу kubelet.
Автентифікація kubelet
Стандартно запити до HTTPS-точки доступу kubelet, які не відхилені іншими налаштованими методами автентифікації, розглядаються як анонімні запити та отримують імʼя користувача system:anonymous та групу system:unauthenticated.
Щоб вимкнути анонімний доступ та надсилати відповіді 401 Unauthorized на невідомі запити:
запустіть kubelet з прапорцем --anonymous-auth=false
Щоб увімкнути автентифікацію за допомогою клієнтських сертифікатів X509 до HTTPS-точки доступу kubelet:
запустіть kubelet з прапорцем --client-ca-file, надаючи набір кореневих сертифікатів для перевірки клієнтських сертифікатів
запустіть apiserver з прапорцями --kubelet-client-certificate та --kubelet-client-key
Щоб увімкнути використання API-токенів на предʼявника (включаючи токени службових облікових записів) для автентифікації до HTTPS-точки доступу kubelet:
переконайтеся, що група API authentication.k8s.io/v1 ввімкнена в apiserver
запустіть kubelet з прапорцями --authentication-token-webhook та --kubeconfig
kubelet викликає API TokenReview на налаштованому apiserver, щоб визначити інформацію про користувача з токенів на предʼявника
Авторизація kubelet
Будь-який запит, який успішно автентифікується (включаючи анонімний запит), потім авторизується. Стандартний режим авторизації — AlwaysAllow, який дозволяє всі запити.
Є багато можливих причин для розподілу доступу до API kubelet:
ввімкнено анонімну автентифікацію, але потрібно обмежити можливості анонімних користувачів викликати API kubelet
ввімкнено автентифікацію з використанням токенів на предʼявника, але потрібно обмежити можливості довільних користувачів API (наприклад, службові облікові записи) викликати API kubelet
ввімкнено автентифікацію за допомогою клієнтських сертифікатів, але дозволено використовувати API kubelet тільки деяким сертифікатам клієнтів, які підписані налаштованим кореневим сертифікатом
Щоб розділити доступ до API kubelet, делегуйте авторизацію apiserver:
переконайтеся, що група API authorization.k8s.io/v1 ввімкнена в apiserver
запустіть kubelet з прапорцями --authorization-mode=Webhook та --kubeconfig
kubelet викликає API SubjectAccessReview на налаштованому apiserver, щоб визначити, чи авторизований кожний запит
Kubelet авторизує запити до API, використовуючи той самий підхід до атрибутів запиту, що й apiserver.
Дієслово визначається з HTTP-дії вхідного запиту:
HTTP-дія
Дієслово запиту
POST
create
GET, HEAD
get
PUT
update
PATCH
patch
DELETE
delete
Ресурс та субресурс визначаються з шляху вхідного запиту:
Kubelet API
Ресурс
Субресурс
/stats/*
nodes
stats
/metrics/*
nodes
metrics
/logs/*
nodes
log
/spec/*
nodes
spec
/checkpoint/*
nodes
checkpoint
всі інші
nodes
proxy
Попередження:
Дозвіл nodes/proxy надає доступ до всіх інших API kubelet. Сюди входять API, які можна використовувати для виконання команд у будь-якому контейнері, що працює на вузлі.
Деякі з цих точок доступу підтримують протоколи Websocket через HTTP-запити GET, які авторизуються за допомогою дієслова get. Це означає, що дозвіл get на nodes/proxy не є дозволом тільки для читання і дозволяє виконувати команди в будь-якому контейнері, що працює на вузлі.
Атрибути простору імен та групи API завжди є порожніми рядками, а імʼя ресурсу завжди є імʼям обʼєкта Node kubelet.
При використанні цього режиму переконайтеся, що користувач, визначений прапорцями --kubelet-client-certificate та --kubelet-client-key, переданими до apiserver, має дозвіл наступних атрибутів:
verb=*, resource=nodes, subresource=proxy
verb=*, resource=nodes, subresource=stats
verb=*, resource=nodes, subresource=log
verb=*, resource=nodes, subresource=spec
verb=*, resource=nodes, subresource=metrics
Детальна авторизація
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [stable](стандартно увімкнено)
Kubelet виконує детальну перевірку перед поверненням до підресурсу proxy для кінцевих точок /pods, /runningPods, /configz та /healthz. Ресурс і субресурс визначаються за шляхом вхідного запиту:
Kubelet API
ресурс
субресурс
/stats/*
nodes
stats
/metrics/*
nodes
metrics
/logs/*
nodes
log
/pods
nodes
pods, proxy
/runningPods/
nodes
pods, proxy
/healthz
nodes
healthz, proxy
/configz
nodes
configz, proxy
all others
nodes
proxy
Коли функціональну можливість KubeletFineGrainedAuthz увімкнено, переконайтеся, що користувач, ідентифікований прапорцями --kubelet-client-certificate та --kubelet-client-key, переданими серверу API, є авторизованим для наступних атрибутів:
verb=*, resource=nodes, subresource=proxy
verb=*, resource=nodes, subresource=stats
verb=*, resource=nodes, subresource=log
verb=*, resource=nodes, subresource=metrics
verb=*, resource=nodes, subresource=configz
verb=*, resource=nodes, subresource=healthz
verb=*, resource=nodes, subresource=pods
Якщо використовується RBAC авторизація, увімкнення цієї функціональної можливості також гарантує, що вбудована system:kubelet-api-admin ClusterRole буде оновлена з дозволами на доступ до всіх вищезгаданих підресурсів.
3.15 - Початкове завантаження TLS
У кластері Kubernetes компоненти на вузлах робочих навантажень, kubelet та kube-proxy, повинні взаємодіяти з компонентами панелі управління Kubernetes, зокрема з kube-apiserver. Для забезпечення приватності комунікації, її невтручання та переконання, що кожен компонент кластера спілкується з іншим довіреним компонентом, ми наполегливо рекомендуємо використовувати TLS-сертифікати клієнтів на вузлах.
Звичайний процес ініціалізації цих компонентів, особливо робочих вузлів, які потребують сертифікати для безпечної комунікації з kube-apiserver, може бути складним, оскільки він часто виходить за межі Kubernetes і вимагає значної додаткової роботи. Це, своєю чергою, може ускладнити ініціалізацію або масштабування кластера.
З метою спрощення процесу, починаючи з версії 1.4, Kubernetes ввів API запиту та підпису сертифікатів. Пропозицію можна знайти тут.
У цьому документі описано процес ініціалізації вузла, спосіб налаштування початкового завантаження TLS-сертифікатів клієнтів для kubelet та його роботу.
Процес ініціалізації
Коли робочий вузол запускається, kubelet виконує наступне:
Шукає свій файл kubeconfig.
Отримує URL-адресу сервера API та облікові дані, зазвичай ключ TLS та підписаний сертифікат з файлу kubeconfig.
Намагається спілкуватися з сервером API, використовуючи облікові дані.
Припускаючи, що kube-apiserver успішно перевіряє облікові дані kubelet, він буде вважати kubelet дійсним вузлом та почне призначати для нього Podʼи.
Зауважте, що вищевказаний процес залежить від:
Існування ключа та сертифіката на локальному хості у kubeconfig.
Підписання сертифіката центром сертифікації (CA), якому довіряє kube-apiserver.
Всі перелічені нижче обовʼязки покладаються на того, хто налаштовує та керує кластером:
Створення ключа та сертифіката CA.
Розповсюдження сертифіката CA на вузли панелі управління, де запущений kube-apiserver.
Створення ключа та сертифіката для кожного kubelet; наполегливо рекомендується мати унікальний ключ з унікальним CN для кожного kubelet.
Підписання сертифіката kubelet за допомогою ключа CA.
Розповсюдження ключа та підписаного сертифіката kubelet на конкретний вузол, на якому працює kubelet.
Початкове завантаження TLS, описане у цьому документі, призначене спростити та частково або повністю автоматизувати кроки з 3 по 14, оскільки вони є найбільш поширеними при ініціалізації або масштабуванні кластера.
Ініціалізація початкового завантаження
Під час процесу ініціалізації початкового завантаження відбувається наступне:
kubelet починає роботу.
kubelet бачить, що у нього немає файлу kubeconfig.
kubelet шукає та знаходить файл bootstrap-kubeconfig.
kubelet читає свій файл ініціалізації початкового завантаження, отримуючи URL-адресу сервера API та обмежений "токен".
kubelet підключається до сервера API, автентифікується за допомогою токена.
у kubelet тепер є обмежені облікові дані для створення та отримання запиту на підпис сертифіката (CSR).
kubelet створює CSR для себе з встановленим signerName kubernetes.io/kube-apiserver-client-kubelet.
CSR затверджується одним з двох способів:
Якщо налаштовано, kube-controller-manager автоматично затверджує CSR.
Якщо налаштовано, зовнішній процес, можливо, людина, затверджує CSR за допомогою API Kubernetes або через kubectl.
Сертифікат створюється для kubelet.
Сертифікат видано для kubelet.
kubelet отримує сертифікат.
kubelet створює належний kubeconfig з ключем та підписаним сертифікатом.
kubelet починає нормальну роботу.
Опціонально: якщо налаштовано, kubelet автоматично запитує поновлення сертифіката, коли той наближається до закінчення строку дії.
Поновлений сертифікат затверджується та видається, або автоматично, або вручну, залежно від налаштувань.
Усі інші розділи цього документу описують необхідні кроки для налаштування початкового завантаження TLS та його обмежень.
Налаштування
Для налаштування початкового завантаження TLS та опціонального автоматичного затвердження потрібно налаштувати параметри на наступних компонентах:
kube-apiserver
kube-controller-manager
kubelet
ресурси в кластері: ClusterRoleBinding та, можливо, ClusterRole
Крім того, вам потрібен ваш центр сертифікації Kubernetes (CA).
Центр сертифікації
Як і без початкового завантаження, вам знадобиться ключ та сертифікат центру сертифікації (CA). Як і раніше, вони будуть використовуватися для підпису сертифіката kubelet. Як і раніше, ваша відповідальність полягає в їх розповсюджені на вузли панелі управління.
Для цілей цього документу ми припускаємо, що вони розповсюджені на вузли панелі управління за шляхом /var/lib/kubernetes/ca.pem (сертифікат) та /var/lib/kubernetes/ca-key.pem (ключ). Ми будемо посилатися на них як "сертифікат та ключ CA Kubernetes".
Всі компоненти Kubernetes, які використовують ці сертифікати — kubelet, kube-apiserver, kube-controller-manager — припускають, що ключ та сертифікат закодовані у PEM-форматі.
Налаштування kube-apiserver
У kube-apiserver є кілька вимог для активації початкового завантаження TLS:
Визнання CA, який підписує сертифікат клієнта
Автентифікація початкового завантаження kubelet у групу system:bootstrappers
Авторизація початкового завантаження kubelet для створення запиту на підпис сертифіката (CSR)
Визнання сертифікатів клієнтів
Це є нормою для всієї автентифікації сертифікатів клієнтів. Якщо це ще не налаштовано, додайте прапорець --client-ca-file=ФАЙЛ до команди kube-apiserver, щоб активувати автентифікацію за сертифікатом клієнта, посилаючись на пакет сертифікатів центру сертифікації, наприклад --client-ca-file=/var/lib/kubernetes/ca.pem.
Початкова автентифікація початкового завантаження
Для того, щоб процес початкового завантаження kubelet міг підʼєднатися до kube-apiserver та запросити сертифікат, спочатку йому потрібно автентифікуватися на сервері. Ви можете використовувати будь-який автентифікатор, який може автентифікувати kubelet.
Хоча будь-яка стратегія автентифікації може бути використана для початкових облікових даних kubelet, рекомендується використовувати наступні два автентифікатори для полегшення надання прав.
Використання токенів початкового завантаження є простішим та зручнішим способом автентифікації kubelet і не вимагає додаткових прапорів при запуску kube-apiserver.
Який би метод ви не обрали, вимога полягає в тому, щоб kubelet міг автентифікуватися як користувач з правами на:
створення та отримання CSRs
автоматичне затвердження запиту клієнтських сертифікатів вузлів, якщо увімкнено автоматичне затвердження.
Kubelet, який автентифікується за допомогою початкових токенів, автентифікується як користувач у групі system:bootstrappers, що є стандартним методом використання.
Оскільки ця функція вдосконалюється, вам слід переконатися, що токени привʼязані до політики управління доступом на основі ролей (RBAC), яка обмежує запити (використовуючи початковий токен) виключно клієнтськими запитами, повʼязаними з наданням сертифікатів. З RBAC можна гнучко налаштовувати обмеження для токенів за групами. Наприклад, ви можете вимкнути доступ певної початкової групи після завершення розгортання вузлів.
Токени початкового завантаження
Токени початкового завантаження докладно описані тут. Це токени, які зберігаються як секрети в кластері Kubernetes і потім видаються окремим kubelet. Ви можете використовувати один токен для всього кластера або видавати по одному на кожен робочий вузол.
Процес складається з двох етапів:
Створити Secret Kubernetes з ідентифікатором токена, секретом і областю(ями).
Видати токен kubelet.
З погляду kubelet, один токен такий самий, як інший і не має особливого значення. З погляду kube-apiserver, однак, початковий токен є особливим. Завдяки його type, namespace і name, kube-apiserver розпізнає його як спеціальний токен і надає будь-кому, хто автентифікується з цим токеном, особливі права початкового завантаження, зокрема, розглядаючи їх як члена групи system:bootstrappers. Це виконує основну вимогу для початкового завантаження TLS.
Якщо ви хочете використовувати токени початкового завантаження, ви повинні увімкнути їх на kube-apiserver з прапорцем:
--enable-bootstrap-token-auth=true
Файл автентифікації токенів
kube-apiserver має можливість приймати токени для автентифікації. Ці токени можуть бути довільними, але повинні представляти щонайменше 128 біт ентропії, отриманих з надійного генератора випадкових чисел (наприклад, /dev/urandom у більшості сучасних Linux-систем). Є кілька способів генерації токена. Наприклад:
head -c 16 /dev/urandom | od -An -t x | tr -d ' '
Це згенерує токени, які виглядають так: 02b50b05283e98dd0fd71db496ef01e8.
Файл токенів повинен виглядати як у наступному прикладі, де перші три значення можуть бути будь-якими, а імʼя групи в лапках повинно бути таким, як показано:
Додайте прапорець --token-auth-file=FILENAME до команди kube-apiserver (можливо, у вашому файлі systemd), щоб увімкнути файл токенів. Докладніше дивіться тут.
Авторизація kubelet на створення CSR
Тепер, коли вузол початкового завантаження автентифікований як частина групи system:bootstrappers, його потрібно авторизувати на створення запиту на підпис сертифіката (CSR), а також на його отримання після завершення. На щастя, Kubernetes постачається з ClusterRole, який має саме ці (і тільки ці) дозволи, system:node-bootstrapper.
Щоб зробити це, потрібно лише створити ClusterRoleBinding, що звʼязує групу system:bootstrappers з кластерною роллю system:node-bootstrapper.
# увімкнення створення CSR для вузлів початкового завантаженняapiVersion:rbac.authorization.k8s.io/v1kind:ClusterRoleBindingmetadata:name:create-csrs-for-bootstrappingsubjects:- kind:Groupname:system:bootstrappersapiGroup:rbac.authorization.k8s.ioroleRef:kind:ClusterRolename:system:node-bootstrapperapiGroup:rbac.authorization.k8s.io
Налаштування kube-controller-manager
Поки apiserver отримує запити на сертифікати від kubelet і автентифікує ці запити, controller-manager відповідає за видачу фактичних підписаних сертифікатів.
Controller-manager виконує цю функцію через цикл управління видачею сертифікатів. Це реалізується у вигляді локального підписувача cfssl, який використовує активи на диску. Зараз всі видані сертифікати стандартно мають один рік дійсності та набір ключів для використання.
Для того, щоб controller-manager міг підписувати сертифікати, йому потрібно наступне:
доступ до "ключа та сертифіката Kubernetes CA", який ви створили та розповсюдили
увімкнення підписування CSR
Доступ до ключа та сертифіката
Як описано раніше, вам потрібно створити ключ і сертифікат Kubernetes CA і розповсюдити їх на вузли панелі управління. Ці сертифікати будуть використовуватися controller-manager для підписування сертифікатів kubelet.
Оскільки ці підписані сертифікати, своєю чергою, будуть використовуватися kubelet для автентифікації як звичайного kubelet до kube-apiserver, важливо, щоб CA, наданий controller-manager на цьому етапі, також був довірений kube-apiserver для автентифікації. Це надається kube-apiserver за допомогою прапорця --client-ca-file=FILENAME (наприклад, --client-ca-file=/var/lib/kubernetes/ca.pem), як описано в розділі конфігурації kube-apiserver.
Щоб надати ключ і сертифікат Kubernetes CA для kube-controller-manager, використовуйте наступні прапорці:
Тривалість дійсності підписаних сертифікатів можна налаштувати за допомогою прапорця:
--cluster-signing-duration
Затвердження
Щоб затвердити CSR, потрібно вказати controller-manager, що їх можна затверджувати. Це робиться шляхом надання прав доступу RBAC потрібній групі.
Існують два різні набори дозволів:
nodeclient: Якщо вузол створює новий сертифікат для вузла, тоді у нього ще немає сертифіката. Він автентифікується за допомогою одного з токенів, зазначених вище, і таким чином є частиною групи system:bootstrappers.
selfnodeclient: Якщо вузол оновлює свій сертифікат, тоді у нього вже є сертифікат (за визначенням), який він використовує для автентифікації як частина групи system:nodes.
Щоб дозволити kubelet запитувати та отримувати новий сертифікат, створіть ClusterRoleBinding, що звʼязує групу, в якій є членом вузол початкового завантаження, system:bootstrappers, з ClusterRole, що надає їй дозвіл, system:certificates.k8s.io:certificatesigningrequests:nodeclient:
# Затвердження всіх CSR для групи "system:bootstrappers"apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRoleBindingmetadata:name:auto-approve-csrs-for-groupsubjects:- kind:Groupname:system:bootstrappersapiGroup:rbac.authorization.k8s.ioroleRef:kind:ClusterRolename:system:certificates.k8s.io:certificatesigningrequests:nodeclientapiGroup:rbac.authorization.k8s.io
Щоб дозволити kubelet оновлювати власний клієнтський сертифікат, створіть ClusterRoleBinding, що звʼязує групу, в якій є членом повнофункціональний вузол, system:nodes, з ClusterRole, що
надає їй дозвіл, system:certificates.k8s.io:certificatesigningrequests:selfnodeclient:
# Затвердження запитів на оновлення CSR для групи "system:nodes"apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRoleBindingmetadata:name:auto-approve-renewals-for-nodessubjects:- kind:Groupname:system:nodesapiGroup:rbac.authorization.k8s.ioroleRef:kind:ClusterRolename:system:certificates.k8s.io:certificatesigningrequests:selfnodeclientapiGroup:rbac.authorization.k8s.io
Контролер csrapproving, який постачається як частина kube-controller-manager, стандартно увімкнено. Контролер використовує API SubjectAccessReview для визначення, чи авторизований користувач для запиту CSR, а потім затверджує на основі результатів авторизації. Щоб уникнути конфліктів з іншими затверджувачами, вбудований затверджувач не відхиляє CSR явним чином. Він лише ігнорує неавторизовані запити. Контролер також видаляє прострочені сертифікати в рамках збору сміття.
Налаштування kubelet
Нарешті, з правильно налаштованими вузлами панелі управління та всією необхідною автентифікацією та авторизацією, ми можемо налаштувати kubelet.
Для початкового завантаження kubelet потрібна наступна конфігурація:
Шлях для зберігання ключа та сертифіката, які він генерує (опціонально, можна використовувати стандартні)
Шлях до файлу kubeconfig, який ще не існує; тут буде збережено конфігураційний файл після початкового завантаження
Шлях до початкового файлу kubeconfig, що містить URL сервера та початкові облікові дані, наприклад, початковий токен
Опціонально: інструкції щодо ротації сертифікатів
Початковий файл kubeconfig має бути в шляху, доступному для kubelet, наприклад /var/lib/kubelet/bootstrap-kubeconfig.
Його формат ідентичний звичайному файлу kubeconfig. Приклад файлу може виглядати наступним чином:
certificate-authority: шлях до файлу CA, використовується для перевірки сертифіката сервера, представленого kube-apiserver
server: URL до kube-apiserver
token: токен для використання
Формат токена не має значення, головне, щоб він відповідав очікуванням kube-apiserver. У наведеному прикладі ми використали початковий токен. Як зазначалося раніше, будь-який дійсний метод автентифікації може бути використаний, а не тільки токени.
Оскільки початковий kubeconfigє стандартним kubeconfig, ви можете використовувати kubectl для його створення. Щоб створити вищезазначений приклад файлу:
Під час запуску kubelet, якщо файл, вказаний через --kubeconfig, не існує, початковий kubeconfig, вказаний через --bootstrap-kubeconfig, використовується для запиту клієнтського сертифіката від API сервера. Після затвердження запиту на сертифікат і його отримання kubelet, конфігураційний файл kubeconfig, що посилається на згенерований ключ і отриманий сертифікат, буде записаний у шлях, вказаний за допомогою --kubeconfig. Файл сертифіката і ключа буде розміщено в теці, вказаній прапорцем --cert-dir.
Клієнтські та серверні сертифікати
Все вищезазначене стосується клієнтських сертифікатів kubelet, зокрема сертифікатів, які kubelet використовує для автентифікації до kube-apiserver.
kubelet також може використовувати серверні сертифікати. Сам kubelet відкриває https-точку доступу для певних функцій. Для їх захисту, kubelet може робити одне з наступного:
використовувати наданий ключ та сертифікат через прапорці --tls-private-key-file та --tls-cert-file
створити самопідписаний ключ та сертифікат, якщо ключ та сертифікат не надані
запитати серверні сертифікати у сервера кластера через API CSR
Клієнтський сертифікат, наданий під час початкового завантаження TLS, стандартно підписується лише для client auth і, отже, не може використовуватися як серверний сертифікат, або server auth.
Однак, ви можете увімкнути його серверний сертифікат, принаймні частково, через ротацію сертифікатів.
Ротація сертифікатів
З версії Kubernetes v1.8 та вище kubelet реалізує функції для увімкнення ротації його клієнтських і/або серверних сертифікатів. Зверніть увагу, що ротація серверного сертифіката є бета функцією та потребує функціональної можливості RotateKubeletServerCertificate на kubelet (стандартно увімкнено).
Ви можете налаштувати kubelet для ротації його клієнтських сертифікатів, створюючи нові CSRs при закінченні терміну дії його поточних облікових даних. Щоб увімкнути цю функцію, використовуйте поле rotateCertificates у файлі конфігурації kubelet або передайте наступний аргумент командного рядка kubelet (застаріло):
--rotate-certificates
Увімкнення RotateKubeletServerCertificate призводить до того, що kubelet одночасно
запитує серверний сертифікат після початкового завантаження своїх клієнтських облікових даних і ротує цей сертифікат. Щоб увімкнути цю поведінку, використовуйте поле serverTLSBootstrap у файлі конфігурації kubelet або передайте наступний аргумент командного рядка kubelet (застаріло):
--rotate-server-certificates
Примітка:
Контролери, що затверджують CSR, реалізовані в ядрі Kubernetes, не затверджують серверні сертифікати вузла з міркувань безпеки. Для використання RotateKubeletServerCertificate операторам потрібно запустити власний контролер затвердження або вручну затвердити запити на серверні сертифікати.
Процес затвердження серверних сертифікатів kubelet, специфічний для розгортання, зазвичай повинен затверджувати лише CSRs, які:
запитані вузлами (забезпечте, що поле spec.username має форму system:node:<nodeName> і spec.groups містить system:nodes)
запитують використання для серверного сертифіката (забезпечте, що spec.usages містить server auth, додатково містить digital signature та key encipherment, і не містить інших використань)
мають лише IP та DNS subjectAltNames, які належать запитуючому вузлу, і не мають URI та Email subjectAltNames (розібрати x509 Certificate Signing Request в spec.request, щоб перевірити subjectAltNames)
Інші складові автентифікації
Усі процеси завантаження TLS, описані у цьому документі, стосуються kubelet. Однак інші компоненти можуть потребувати прямого звʼязку з kube-apiserver. Особливо важливим є kube-proxy, який є частиною компонентів вузла Kubernetes і запускається на кожному вузлі, але може також включати інші компоненти, такі як моніторинг чи роботу з мережею.
Подібно до kubelet, цим іншим компонентам також потрібен метод автентифікації у kube-apiserver. У вас є кілька варіантів для генерації цих облікових даних:
Традиційний спосіб: Створіть і розповсюдьте сертифікати так само як ви це робили для kubelet перед завантаженням TLS.
DaemonSet: Оскільки сам kubelet завантажується на кожний вузол і достатньо для запуску базових служб, ви можете запускати kube-proxy та інші служби, специфічні для вузла, не як самостійний процес, а як daemonset у просторі імен kube-system. Оскільки він буде в кластері, ви можете надати йому відповідний службовий обліковий запис з відповідними дозволами для виконання своїх дій. Це може бути найпростішим способом налаштування таких служб.
Затвердження за допомогою kubectl
Запити на сертифікати можна затвердити поза процесом затвердження, вбудованим у контролер
керування.
Контролер підпису не негайно підписує всі запити на сертифікати. Замість цього він чекає, доки вони не будуть позначені статусом "Approved" відповіднbv привілейованим користувачем. Цей процес призначений для того, щоб дозволити автоматичне затвердження, яке обробляється зовнішнім контролером затвердження або controller-manager, реалізованим в основному controller-manager. Однак адміністратори кластера також можуть вручну затверджувати запити на сертифікати за допомогою kubectl. Адміністратор може отримати перелік CSRs за допомогою kubectl get csr та детально описати один з них за допомогою kubectl describe csr <name>. Адміністратор може затвердити або відхилити CSR за допомогою kubectl certificate approve <name> та kubectl certificate deny <name>.
3.16 - Змінювані політики допуску
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [stable](стандартно увімкнено)
На цій сторінці ви можете ознайомитися з інформацією про MutatingAdmissionPolicies. MutatingAdmissionPolicies дозволяють вам змінювати те, що відбувається, коли хтось вносить зміни до API Kubernetes. Якщо ви хочете використовувати декларативні політики лише для запобігання певному виду змін ресурсів (наприклад: захист платформених просторів імен від видалення), ValidatingAdmissionPolicy є простішою та ефективнішою альтернативою.
Що таке MutatingAdmissionPolicies?
Зміна політик доступу пропонує декларативну альтернативу зміні вебхуків допуску, яка виконується в процесі роботи.
Змінювані політики допуску використовують Common Expression Language (CEL) для оголошення мутацій ресурсів. Мутації можуть бути визначені або за допомогою apply configuration, яка обʼєднується за допомогою server side apply merge strategy, або за допомогою JSON patch.
Змінювані політики допуску дуже добре конфігуруються, що дозволяє авторам політик визначати політики, які можна параметризувати та масштабувати на ресурси відповідно до потреб адміністраторів кластерів.
З яких ресурсів складається політика
Політика зазвичай складається з трьох ресурсів:
MutatingAdmissionPolicy описує абстрактну логіку політики (наприклад: «ця політика встановлює певну мітку на певне значення»).
Ресурс параметрів надає інформацію для MutatingAdmissionPolicy, щоб зробити її конкретним твердженням (наприклад, «встановіть мітку owner на щось на кшталт company.example.com»). Ресурси параметрів відносяться до ресурсів Kubernetes, доступних у Kubernetes API. Вони можуть бути вбудованими типами або розширеннями, такими як CustomResourceDefinition (CRD). Наприклад, ви можете використовувати ConfigMap як параметр.
Привʼязка MutatingAdmissionPolicyBinding повʼязує вищезгадані ресурси (MutatingAdmissionPolicy і параметр) разом і забезпечує масштабування. Якщо ви хочете встановити мітку owner лише для Pods, а не для інших типів API, привʼязка — це місце, де ви вказуєте цю мутацію.
Для того, щоб політика мала ефект, необхідно визначити принаймні MutatingAdmissionPolicy та відповідне MutatingAdmissionPolicyBinding.
Примітка:
Імена, що закінчуються на .static.k8s.io, зарезервовані для конфігурацій на основі маніфестів і не можуть використовуватися для політик або привʼязок на основі API. Це обмеження застосовується, коли функціональна можливість ManifestBasedAdmissionControlConfigувімкнена.
Якщо MutatingAdmissionPolicy не потрібно налаштовувати через параметри, просто залиште spec.paramKind у MutatingAdmissionPolicy не вказаним.
Початок роботи з MutatingAdmissionPolicies
Мутація політики допуску є частиною панелі управління кластером. Ви повинні створювати та розгортати їх з великою обережністю. Нижче описано, як швидко поекспериментувати з мутуючими політиками допуску.
Створення MutatingAdmissionPolicy
Нижче наведено приклад політики MutatingAdmissionPolicy. Ця політика змінює нові створені pod'и так, щоб вони мали контейнер sidecar, якщо він не існує.
Поле .spec.mutations складається зі списку виразів, які обчислюють патчі до ресурсів. Патчі можуть бути як патчами застосувати конфігурації, так і патчами JSON Patch.
Після обчислення всіх виразів сервер API застосовує ці зміни до ресурсу, який проходить через допуск.
Щоб налаштувати мутуючу політику допуску для використання в кластері, необхідна привʼязка. MutatingAdmissionPolicy буде активною лише тоді, коли існує відповідна привʼязка із зазначеним spec.policyName, що збігається із spec.name політики.
Після створення привʼязки і політики будь-який запит до ресурсу, який відповідає spec.matchConditions політики, буде викликати набір визначених мутацій.
У наведеному вище прикладі створення Pod додасть мутацію mesh-proxy initContainer:
Ресурси параметрів дозволяють відокремити конфігурацію політики від її
визначення. Політика може визначати paramKind, який окреслює GVK ресурсу параметра, а потім привʼязка політики привʼязує політику за назвою (через policyName) до певного ресурсу параметра через paramRef.
Будь ласка, зверніться до статті ресурси параметрів для отримання додаткової інформації.
ApplyConfiguration
Вирази MutatingAdmissionPolicy завжди є CEL. Кожен вираз застосовної конфігурації повинен приводити до CEL-обʼєкта (оголошеного за допомогою ініціалізації Object()).
Застосовні конфігурації не можуть змінювати атомарні структури, map або масиви через ризик випадкового видалення значень, не включених у застосовну конфігурацію.
CEL-вирази мають доступ до типів обʼєктів, необхідних для створення застосовних конфігурацій:
Object — CEL-тип обʼєкта ресурсу.
Object.<fieldName> — CEL-тип поля обʼєкта (наприклад, Object.spec)
Object.<fieldName1>.<fieldName2>...<fieldNameN> — CEL-тип вкладеного поля (наприклад, Object.spec.containers)
CEL-вирази мають доступ до вмісту запиту API, організованого в CEL-змінні, а також до деяких інших корисних змінних:
object — Обʼєкт з вхідного запиту. Для запитів DELETE дорівнює нулю.
oldObject — Наявний обʼєкт. Для запитів на створення дорівнює нулю.
request — Атрибути запиту до API.
params — Ресурс параметра, на який посилається привʼязка політики, що оцінюється. Заповнюється тільки якщо політика має ParamKind.
namespaceObject — Обʼєкт простору імен, до якого належить вхідний обʼєкт. Значення дорівнює нулю для кластерних ресурсів.
variables — Мапа складених змінних, від імені до ледачо обчисленого значення. Наприклад, до змінної з іменем foo можна отримати доступ як variables.foo.
authorizer.requestResource — CEL ResourceCheck, сконструйований з authorizer і сконфігурований з ресурсом запиту.
Властивості apiVersion, kind, metadata.name, metadata.generateName і metadata.labels завжди доступні з кореня обʼєкта. Інші властивості метаданих недоступні.
JSONPatch
Цю ж саму мутацію можна записати у вигляді JSON Patch наступним чином:
CEL-вирази мають доступ до типів, необхідних для створення патчів і об'єктів JSON:
JSONPatch — CEL тип операцій JSON Patch. JSONPatch має поля op, from, path та value. Дивіться JSON patch для більш детальної інформації. Поле value може мати будь-яке значення: рядок, ціле число, масив, мапа або об'єкт. Якщо встановлено, поля path і from мають бути встановлені на рядок JSON-покажчик, де CEL-функція jsonpatch.escapeKey() може бути використана для витіснення ключів шляху, що містять / і ~.
Object — CEL-тип обʼєкта ресурсу.
Object.<fieldName> — CEL-тип поля обʼєкта (наприклад, Object.spec)
Object.<fieldName1>.<fieldName2>...<fieldNameN> — CEL-тип вкладеного поля (наприклад, Object.spec.containers)
CEL-вирази мають доступ до вмісту запиту API, організованого в CEL-змінні, а також до деяких інших корисних змінних:
object — Обʼєкт з вхідного запиту. Для запитів DELETE дорівнює нулю.
oldObject — Наявний обʼєкт. Для запитів на створення дорівнює нулю.
request — Атрибути запиту до API.
params — Ресурс параметра, на який посилається привʼязка політики, що оцінюється. Заповнюється тільки якщо політика має ParamKind.
namespaceObject — Обʼєкт простору імен, до якого належить вхідний обʼєкт. Значення дорівнює нулю для кластерних ресурсів.
variables — Мапа складених змінних, від імені до ліниво обчислюваного значення. Наприклад, до змінної з іменем foo можна отримати доступ як variables.foo.
jsonpatch.escapeKey — Виконує екранування клавіш JSONPatch. Символи ~ та / екрануються як ~0 та ~1 відповідно.
Доступні тільки назви властивостей виду [a-zA-Z_.-/][a-zA-Z0-9_.-/]*.
Види API, на які не поширюється мутаційний допуск
Існують певні типи API, які не підлягають мутації під час надання допуску. Наприклад, ви не можете створити MutatingAdmissionPolicy, яка змінює MutatingAdmissionPolicy.
Примітка:
Коли налаштовано через конфігурації на основі маніфестів, MutatingAdmissionPolicy може перехоплювати всі типи ресурсів, наведені нижче. Це обходить обмеження, які зазвичай застосовуються до політик, створених через REST API, дозволяючи змінювати навіть конфігурації допуску та ресурси, що потребують підвищеної безпеки. На відміну від REST API, неправильна політика на основі маніфестів, що перехоплює ці ресурси, не буде незворотною, оскільки вона визначена на диску, а не через API.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [alpha](стандартно вимкнено)
Цей розділ надає огляд конфігурації контролю допуску на основі маніфестів. Контроль допуску на основі маніфестів дозволяє завантажувати вебхуки допуску та політики CEL з статичних файлів на диску, а не з API Kubernetes. Ці політики активні з моменту запуску API-сервера, працюють незалежно від etcd і можуть захищати ресурси допуску на основі API від модифікацій.
Щоб використовувати цю функцію, увімкніть функціональну можливість ManifestBasedAdmissionControlConfig і налаштуйте поле staticManifestsDir у файлі AdmissionConfiguration, переданому kube-apiserver через --admission-control-config-file.
Для чого використовувати контроль допуску на основі маніфестів?
Політики допуску та вебхуки, зареєстровані через API Kubernetes (такі як ValidatingAdmissionPolicy, MutatingAdmissionPolicy, ValidatingWebhookConfiguration та MutatingWebhookConfiguration), мають кілька вроджених обмежень:
Пробіл при завантаженні: Застосування політик через REST вимагає створення та завантаження обʼєктів API динамічним контролером допуску. До цього моменту політики не застосовуються.
Пробіл самозахисту: Ресурси конфігурації допуску (такі як ValidatingWebhookConfiguration) самі не підпадають під вебхук-допуск, щоб уникнути циклічних залежностей. Користувач з достатніми привілеями може видалити або змінити критичні політики допуску.
Залежність від etcd: Конфігурації допуску через REST залежать від доступності etcd. Якщо etcd недоступний або пошкоджений, політики допуску можуть не завантажитися правильно.
Контроль допуску на основі маніфестів вирішує ці обмеження, завантажуючи конфігурації з файлів на диску. Ці конфігурації:
Активні з моменту готовності API-сервера обслуговувати запити
Не видимі та не змінювані через API Kubernetes
Незалежні від доступності etcd
Можуть перехоплювати операції над ресурсами допуску на основі API самі по собі
Підтримувані типи ресурсів
Ви можете включати наступні типи ресурсів у файли маніфестів. Підтримується лише версія API admissionregistration.k8s.io/v1.
Підтримувані типи ресурсів для контролю допуску на основі маніфестів
Ви також можете використовувати v1.List, щоб обʼєднати кілька ресурсів одного типу втулка в одному документі.
Кожна тека, вказана у staticManifestsDir для певного втулка допуску, повинна містити лише типи ресурсів, дозволені для цього втулка. Наприклад, тека, налаштована для втулка ValidatingAdmissionPolicy, може містити лише ресурси ValidatingAdmissionPolicy та ValidatingAdmissionPolicyBinding.
Налаштування контролю допуску на основі маніфестів
Щоб увімкнути контроль допуску на основі маніфестів, вам потрібно:
Увімкнути функціональну можливість ManifestBasedAdmissionControlConfig на kube-apiserver.
Файл AdmissionConfiguration з полями staticManifestsDir, що вказують на теки, які містять ваші файли маніфестів.
Самі файли маніфестів на диску, доступні для процесу kube-apiserver.
AdmissionConfiguration
Додайте staticManifestsDir до конфігурації втулка для кожного втулка допуску, який повинен завантажувати маніфести з диска. Кожен втулок потребує власної теки.
# Цей приклад AdmissionConfiguration налаштовує всі чотири втулка для# завантаження контролю допуску на основі маніфестів з статичних файлів на диску.apiVersion:apiserver.config.k8s.io/v1kind:AdmissionConfigurationplugins:- name:ValidatingAdmissionWebhookconfiguration:apiVersion:apiserver.config.k8s.io/v1kind:WebhookAdmissionConfigurationkubeConfigFile:"<path-to-kubeconfig>"staticManifestsDir:"/etc/kubernetes/admission/validating-webhooks/"- name:MutatingAdmissionWebhookconfiguration:apiVersion:apiserver.config.k8s.io/v1kind:WebhookAdmissionConfigurationkubeConfigFile:"<path-to-kubeconfig>"staticManifestsDir:"/etc/kubernetes/admission/mutating-webhooks/"- name:ValidatingAdmissionPolicyconfiguration:apiVersion:apiserver.config.k8s.io/v1kind:ValidatingAdmissionPolicyConfigurationstaticManifestsDir:"/etc/kubernetes/admission/validating-policies/"- name:MutatingAdmissionPolicyconfiguration:apiVersion:apiserver.config.k8s.io/v1kind:MutatingAdmissionPolicyConfigurationstaticManifestsDir:"/etc/kubernetes/admission/mutating-policies/"
Поле staticManifestsDir приймає абсолютний шлях до теки. Всі файли безпосередніх нащадків з розширеннями .yaml, .yml або .json у теці завантажуються. Підтеки та файли з іншими розширеннями ігноруються. Шаблони glob та відносні шляхи не підтримуються.
Передайте цей файл kube-apiserver за допомогою прапорця --admission-control-config-file.
Типи конфігурацій
Кожен втулок допуску використовує конкретний тип конфігурації:
Типи конфігурацій для кожного втулка допуску
Втулок
apiVersion
kind
ValidatingAdmissionWebhook
apiserver.config.k8s.io/v1
WebhookAdmissionConfiguration
MutatingAdmissionWebhook
apiserver.config.k8s.io/v1
WebhookAdmissionConfiguration
ValidatingAdmissionPolicy
apiserver.config.k8s.io/v1
ValidatingAdmissionPolicyConfiguration
MutatingAdmissionPolicy
apiserver.config.k8s.io/v1
MutatingAdmissionPolicyConfiguration
Створення файлів маніфестів
Файли маніфестів містять стандартні визначення ресурсів Kubernetes. Ви можете включати кілька ресурсів в один файл, використовуючи роздільники документів YAML (---).
Правила найменування
Всі обʼєкти у файлах маніфестів повинні мати імена, що закінчуються суфіксом .static.k8s.io. Наприклад: deny-privileged.static.k8s.io.
Коли функціональна можливість ManifestBasedAdmissionControlConfig увімкнена, створення обʼєктів допуску на основі API з іменами, що закінчуються на .static.k8s.io, блокується. Коли функціональна можливість вимкнена, повертається лише попередження.
Примітка:
Якщо два файли маніфестів визначають обʼєкти одного типу з однаковими іменами, API-сервер не запускається, показуючи відповідну помилку.
Обмеження
Конфігурації допуску на основі маніфестів існують ізольовано і не можуть посилатися на ресурси API. Застосовуються наступні обмеження:
Webhooks: Повинні використовувати clientConfig.url. Поле clientConfig.service не дозволяється, оскільки мережа сервісів може бути недоступною під час запуску API-сервера.
Policies: Поле spec.paramKind не дозволяється. Політики не можуть посилатися на ConfigMaps або інші обʼєкти кластера для параметрів.
Bindings: Поле spec.paramRef не дозволяється. Поле spec.policyName повинно посилатися на політику, визначену в тому ж наборі файлів маніфестів, і повинно закінчуватися на .static.k8s.io.
Файли маніфестів декодуються за допомогою строгого декодера, який відхиляє файли, що містять дубльовані або невідомі поля. Кожен обʼєкт проходить те саме автоматичне заповнення та перевірку, що й REST API.
Приклади
Захист ресурсів допуску на основі API
Ключовою можливістю допуску на основі маніфестів є здатність перехоплювати операції над ресурсами конфігурації допуску (ValidatingAdmissionPolicy, MutatingAdmissionPolicy, ValidatingWebhookConfiguration, MutatingWebhookConfiguration та їхні привʼязки). REST-орієнтовані вебхуки та політики допуску не викликаються для цих типів ресурсів, щоб уникнути циклічних залежностей, але політики на основі маніфестів можуть застосовувати правила до них, оскільки вони не мають цієї циклічної залежності.
Наступний приклад дозволяє запобігати видаленню або модифікації ресурсів допуску, які мають мітку platform.example.com/protected: "true":
# Це приклад ValidatingAdmissionPolicy, який запобігає видаленню або# зміні ресурсів доступу на основі API з міткою# "platform.example.com/protected: true".apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"example-protect-admission-resources.static.k8s.io"annotations:kubernetes.io/description:"Prevent modification or deletion of protected admission resources"spec:failurePolicy:FailmatchConstraints:resourceRules:- apiGroups:["admissionregistration.k8s.io"]apiVersions:["*"]operations:["DELETE","UPDATE"]resources:- "validatingadmissionpolicies"- "validatingadmissionpolicybindings"- "mutatingadmissionpolicies"- "mutatingadmissionpolicybindings"- "validatingwebhookconfigurations"- "mutatingwebhookconfigurations"validations:- expression:>- !has(oldObject.metadata.labels) ||
!('platform.example.com/protected' in oldObject.metadata.labels) ||
oldObject.metadata.labels['platform.example.com/protected'] != 'true'message:"Protected admission resources cannot be modified or deleted"---apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicyBindingmetadata:name:"example-protect-admission-resources-binding.static.k8s.io"annotations:kubernetes.io/description:"Bind protect-admission-resources policy to all admission resources"spec:policyName:"example-protect-admission-resources.static.k8s.io"validationActions:- Deny
Застосування ValidatingAdmissionPolicy з диска
Наступний приклад визначає політику, яка забороняє привілейовані контейнери у всіх просторах імен, крім kube-system:
# Це приклад політики ValidatingAdmissionPolicy, яка забороняє запуск контейнерів із підвищеними правами# у всіх просторах імен, крім kube-system.apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"example-deny-privileged.static.k8s.io"annotations:kubernetes.io/description:"Deny privileged containers outside kube-system"spec:failurePolicy:FailmatchConstraints:resourceRules:- apiGroups:[""]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["pods"]variables:- name:allContainersexpression:>- object.spec.containers +
(has(object.spec.initContainers) ? object.spec.initContainers : []) +
(has(object.spec.ephemeralContainers) ? object.spec.ephemeralContainers : [])validations:- expression:>- !variables.allContainers.exists(c,
has(c.securityContext) && has(c.securityContext.privileged) &&
c.securityContext.privileged == true)message:"Privileged containers are not allowed"---apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicyBindingmetadata:name:"example-deny-privileged-binding.static.k8s.io"annotations:kubernetes.io/description:"Bind deny-privileged policy to all namespaces except kube-system"spec:policyName:"example-deny-privileged.static.k8s.io"validationActions:- DenymatchResources:namespaceSelector:matchExpressions:- key:"kubernetes.io/metadata.name"operator:NotInvalues:["kube-system"]
Помістіть цей файл у теку, налаштовану як staticManifestsDir для втулка ValidatingAdmissionPolicy. Політика та її привʼязка завантажуються разом атомарно.
Налаштування ValidatingWebhookConfiguration з диска
Наступний приклад налаштовує вебхук перевірки, який викликає зовнішню URL-адресу:
# Це приклад конфігурації ValidatingWebhookConfiguration, яка викликає зовнішню# точку доступу веб-хука на основі URL-адреси для перевірки створення та оновлень подів.apiVersion:admissionregistration.k8s.io/v1kind:ValidatingWebhookConfigurationmetadata:name:"example-security-webhook.static.k8s.io"annotations:kubernetes.io/description:"Validate pod creation and updates via external webhook"webhooks:- name:"security.platform.example.com"clientConfig:url:"https://security-webhook.platform.example.com:443/validate"caBundle:"<base64-encoded-CA-bundle>"rules:- apiGroups:[""]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["pods"]admissionReviewVersions:["v1"]sideEffects:NonefailurePolicy:Fail
Примітка:
URL-адреси вебхуків повинні бути доступними для kube-apiserver під час запуску. Підтримуються лише точки доступу на основі URL-адрес; посилання на сервіси не допускаються в конфігураціях вебхуків на основі маніфестів.
Використання формату List
Ви можете використовувати v1.List, щоб групувати повʼязані ресурси в одному документі:
# Це приклад використання формату v1.List для обʼєднання# ValidatingAdmissionPolicy та її привʼязки в одному документі.apiVersion:v1kind:Listitems:- apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"example-require-labels.static.k8s.io"annotations:kubernetes.io/description:"Require app.kubernetes.io/name label on all pods"spec:failurePolicy:FailmatchConstraints:resourceRules:- apiGroups:[""]apiVersions:["v1"]operations:["CREATE"]resources:["pods"]validations:- expression:>- has(object.metadata.labels) &&
'app.kubernetes.io/name' in object.metadata.labelsmessage:"All pods must have the 'app.kubernetes.io/name' label"- apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicyBindingmetadata:name:"example-require-labels-binding.static.k8s.io"annotations:kubernetes.io/description:"Bind require-labels policy to all namespaces except kube-system"spec:policyName:"example-require-labels.static.k8s.io"validationActions:- DenymatchResources:namespaceSelector:matchExpressions:- key:"kubernetes.io/metadata.name"operator:NotInvalues:["kube-system"]
Порядок оцінки
Конфігурації на основі маніфестів оцінюються до конфігурацій на основі API. Це забезпечує пріоритет політик на рівні платформи, які застосовуються через статичну конфігурацію, над політиками на основі API.
Для самих ресурсів конфігурації допуску (ValidatingAdmissionPolicy, MutatingAdmissionPolicy, ValidatingAdmissionPolicyBinding, MutatingAdmissionPolicyBinding, ValidatingWebhookConfiguration, MutatingWebhookConfiguration) оцінюються лише втулки допуску на основі маніфестів. Втулки на основі API пропускаються для цих типів ресурсів, щоб уникнути циклічних залежностей.
Спостереження за файлами та динамічне перезавантаження
kube-apiserver спостерігає за налаштованими теками на наявність змін:
Початкове завантаження: Під час запуску всі налаштовані шляхи читаються та перевіряються. API-сервер не стає готовим, поки всі маніфести не будуть успішно завантажені. Неправильні маніфести призводять до помилки запуску.
Динамічне перезавантаження: Зміни у файлах маніфестів запускають цикл перезавантаження:
Зміни файлів виявляються за допомогою fsnotify з резервним опитуванням (стандартний інтервал 1 хвилина), подібно до іншого перезавантаження конфігураційних файлів у kube-apiserver.
Обчислюється хеш вмісту всіх файлів маніфестів при кожній перевірці. Якщо хеш не змінився, перезавантаження не відбувається.
Нові конфігурації перевіряються перед застосуванням.
Якщо перевірка не вдається, помилка реєструється, метрики оновлюються, а попередня дійсна конфігурація зберігається.
Атомарне оновлення файлів: Щоб уникнути часткових читань під час запису файлів, вносьте зміни атомарно (наприклад, записуйте у тимчасовий файл і перейменовуйте його). Це особливо важливо при оновленні змонтованих ConfigMaps або Secrets у контейнеризованих середовищах.
Увага:
Якщо під час запуску присутній неправильний файл маніфесту, API-сервер не запускається. Під час роботи, якщо перезавантаження не вдається через помилки перевірки, попередня дійсна конфігурація зберігається, а помилка реєструється.
Спостережуваність
Метрики
Контроль допуску на основі маніфестів надає наступні метрики для моніторингу стану перезавантаження:
Метрики для контролю допуску на основі маніфестів
Тип
Опис
Метрика
Counter
Загальна кількість спроб перезавантаження, з мітками status (success або failure), plugin та apiserver_id_hash.
Поточна інформація про конфігурацію (значення завжди 1), з мітками plugin, apiserver_id_hash та hash. Використовуйте мітку hash для виявлення розбіжностей конфігурації між API-серверами.
Мітка plugin визначає втулок допуску, до якого застосовується метрика: ValidatingAdmissionWebhook, MutatingAdmissionWebhook, ValidatingAdmissionPolicy або MutatingAdmissionPolicy.
Оскільки обʼєкти на основі маніфестів мають імена, що закінчуються на .static.k8s.io, наявні метрики допуску (такі як apiserver_admission_webhook_rejection_count) можуть визначати рішення на основі маніфестів, фільтруючи за міткою name.
Анотації аудиту
Наявні анотації аудиту (такі як validation.policy.admission.k8s.io/validation_failure та mutation.webhook.admission.k8s.io/round_0_index_0) включають імʼя обʼєкта. Ви можете визначити рішення на основі маніфестів, фільтруючи за іменами, що закінчуються на .static.k8s.io.
Міркування стосовно високої доступності
Кожен екземпляр kube-apiserver завантажує свої власні файли маніфестів незалежно. У налаштуваннях високої доступності з кількома екземплярами API-сервера:
Кожен API-сервер повинен бути налаштований окремо. Немає синхронізації конфігурацій на основі маніфестів між API-серверами.
Використовуйте зовнішні інструменти управління конфігурацією (такі як Ansible, Puppet або спільні точки монтування) для підтримки узгодженості файлів маніфестів між екземплярами.
Метрика apiserver_manifest_admission_config_controller_last_config_info надає мітку hash, яку можна використовувати для виявлення розбіжностей конфігурації між екземплярами API-сервера.
Оновлення: Увімкнення функції та надання конфігурації маніфестів є опціональним. Наявні кластери без конфігурації маніфестів не зазнають змін у поведінці.
Пониження версії: Перед пониженням до версії без цієї функції:
Видаліть записи staticManifestsDir з файлу AdmissionConfiguration.
Якщо ви покладаєтесь на політики на основі маніфестів, відтворіть їх як обʼєкти API, де це можливо.
Перезапустіть kube-apiserver.
Попередження:
Пониження версії без видалення конфігурації staticManifestsDir призведе до того, що API-сервер не зможе запуститися через невідомі поля конфігурації.
Усунення несправностей
Поширені проблеми та їх вирішення
Симптом
Можлива причина
Рішення
API-сервер не запускається
Неправильний файл маніфесту при запуску
Перевірте журнали API-сервера на наявність помилок валідації. Виправте файл маніфесту та перезапустіть сервер.
API-сервер не запускається
Дублювання імен обʼєктів у файлах маніфестів
Переконайтеся, що всі імена обʼєктів у втулка staticManifestsDir унікальні.
Політики не застосовуються після оновлення файлу
Помилка перезавантаження валідації
Перевірте метрику automatic_reloads_total{status="failure"} та журнали API-сервера. Виправте маніфест і дочекайтеся наступного циклу перезавантаження.
Запити вебхуків не виконуються
URL вебхука недоступний
Перевірте, чи доступний URL, вказаний у clientConfig.url, з kube-apiserver.
Неможливо створити обʼєкти API з суфіксом .static.k8s.io
Суфікс імені зарезервований для функції
Суфікс .static.k8s.io зарезервований для конфігурацій на основі маніфестів, коли функція увімкнена. Використовуйте інше імʼя для обʼєктів на основі API.
Правила перевірки допуску пропонують декларативну, вбудовану альтернативу веб-хукам перевірки допуску.
Правила перевірки допуску використовують мову загальних виразів (Common Expression Language, CEL). Правила перевірки допуску мають високу налаштовуваність, що дозволяє авторам визначати правила, які можуть бути параметризовані та обмежені ресурсами за необхідності адміністраторами кластера.
Які ресурси складають правила
Зазвичай правило складається з трьох ресурсів:
ValidatingAdmissionPolicy описує абстрактну логіку правил (наприклад: "ці праивла переконуються, що певна мітка встановлена у певне значення").
Ресурс параметра надає інформацію для ValidatingAdmissionPolicy, щоб зробити його конкретним висловленням (наприклад, "мітка owner повинна бути встановлена на щось, що закінчується на .company.com"). Вбудований тип, такий як ConfigMap або CRD, визначає схему ресурсу параметра. Обʼєкти ValidatingAdmissionPolicy вказують, який Kind вони очікують для свого ресурсу параметру.
ValidatingAdmissionPolicyBinding повʼязує вищезазначені ресурси разом і надає обмеження області дії. Якщо вам потрібно вимагати встановлення мітки owner для Pods, привʼязка визначає, де ви будете вказувати це обмеження.
Для того щоб правила мали ефект, обовʼязково повинні бути визначені принаймні ValidatingAdmissionPolicy та відповідне ValidatingAdmissionPolicyBinding.
Якщо ValidatingAdmissionPolicy не потребує налаштування через параметри, просто залиште
spec.paramKind в ValidatingAdmissionPolicy не вказаним.
Початок роботи з правилами перевірки допуску
Правила перевірки допуску є частиною панелі управління кластера. Ви повинні писати та розгортати їх з великою обережністю. Нижче наведено інструкції щодо швидкого експерименту з правилами перевірки допуску.
spec.validations містить вирази CEL, які використовують Мову загальних виразів (CEL), щоб перевірити запит. Якщо вираз обчислюється як false, перевірка валідації застосовується згідно з полем spec.failurePolicy.
Примітка:
Ви можете швидко перевірити вирази CEL у пісочниці CEL.
Для налаштування правил перевірки допуску для використання в кластері потрібна привʼязка. Нижче наведено приклад ValidatingAdmissionPolicyBinding.:
Вище наведено простий приклад використання ValidatingAdmissionPolicy без налаштованого параметра.
Дії валідації
Кожний ValidatingAdmissionPolicyBinding повинен вказати одну або декілька validationActions, щоб визначити, як validations правила будуть застосовані.
Підтримувані validationActions:
Deny: Невдалий результат валідації призводить до відхиленого запиту.
Warn: Невдалий результат валідації повідомляється клієнту запиту як попередження.
Audit: Невдалий результат валідації включається в подію аудиту для запиту до API.
Наприклад, щоб одночасно попереджувати клієнтів про невдалий результат валідації та аудитувати невдалий результат валідації, використовуйте:
validationActions:[Warn, Audit]
Deny та Warn не можуть бути використані разом, оскільки ця комбінація надмірно дублює невдалий результат валідації як у тілі відповіді API, так і в HTTP заголовках попередження.
validation, який оцінюється як false, завжди застосовується відповідно до цих дій. Невдачі, визначені полем failurePolicy, застосовуються відповідно до цих дій тільки у випадку, якщо failurePolicy встановлено на Fail (або не вказано), інакше невдачі ігноруються.
Ресурси параметрів дозволяють відокремити конфігурацію правил від їх визначення. Правило може визначити paramKind, який визначає GVK ресурсу параметра, а потім привʼязка правила повʼязує його за іменем (через policyName) з певним ресурсом параметра через paramRef.
Якщо потрібна конфігурація параметра, наведено приклад ValidatingAdmissionPolicy з конфігурацією параметра.
Поле spec.paramKind ValidatingAdmissionPolicy вказує на вид використовуваних ресурсів для параметризації цього правила. У цьому прикладі це налаштовано за допомогою ресурсів ReplicaLimit. Зверніть увагу в цьому прикладі, як вираз CEL посилається на параметри через змінну CEL params, наприклад, params.maxReplicas. spec.matchConstraints вказує, для яких ресурсів ця правило призначена для валідації. Зверніть увагу, що як параметр можуть використовуватися і стандартні типи, такі як ConfigMap.
Поля spec.validations містять вирази CEL. Якщо вираз оцінюється як false, то валідаційна перевірка здійснюється відповідно до поля spec.failurePolicy.
Автор правил перевірки допуску відповідає за надання параметра CRD ReplicaLimit.
Для налаштування правил перевірки допуску для використання в кластері створюються привʼязка та ресурс параметра. Наведено приклад ValidatingAdmissionPolicyBinding який використовує кластерний параметр — той самий параметр буде використовуватися для валідації кожного запиту до ресурсу, який відповідає привʼязці:
Цей ресурс параметра правил обмежує Deployments до максимуму 3 репліки.
В правилі допуску може бути кілька привʼязок. Щоб привʼязати всі інші середовища до обмеження maxReplicas 100, створіть інший ValidatingAdmissionPolicyBinding:
apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicyBindingmetadata:name:"replicalimit-binding-nontest"spec:policyName:"replicalimit-policy.example.com"validationActions:[Deny]paramRef:name:"replica-limit-prod.example.com"namespace:"default"parameterNotFoundAction:DenymatchResources:namespaceSelector:matchExpressions:- key:environmentoperator:NotInvalues:- test
Зверніть увагу, що ця привʼязка застосовує різний параметр до ресурсів, які не знаходяться в середовищі test.
Для кожного запиту на допуск, сервер API оцінює вирази CEL кожної комбінації (правило, привʼязка, параметр), які відповідають запиту. Для того, щоб запит був прийнятий, він повинен пройти всі оцінки.
Якщо кілька привʼязок відповідають запиту, правило буде оцінено для кожної, і вони всі повинні пройти оцінку, щоб правило вважали пройденим.
Якщо кілька параметрів відповідають одній привʼязці, правила будуть оцінені для кожного параметра, і вони також повинні всі пройти, щоб привʼязка вважалася пройденою. Привʼязки можуть мати критерії відповідності, що перекриваються. Правило оцінюється для кожної відповідної комбінації привʼязка-параметр. Правило може бути оцінено навіть кілька разів, якщо йому відповідає кілька привʼязок, або одна привʼязка, яка відповідає кільком параметрам.
Обʼєкт params, який представляє ресурс параметра, не буде встановлений, якщо ресурс параметра не був привʼязаний, тому для правил, які потребують ресурсу параметра, може бути корисно додати перевірку, щоб забезпечити його привʼязку. Ресурс параметра не буде привʼязаний і params буде null, якщо paramKind правила або paramRef привʼязки не вказані.
Для випадків використання, що потребують конфігурації параметра, ми рекомендуємо додати перевірку параметра в spec.validations[0].expression:
- expression: "params != null"
message: "params missing but required to bind to this policy"
Необовʼязкові параметри
Може бути зручно мати можливість мати необовʼязкові параметри як частину ресурсу параметра і валідувати їх лише в разі їх присутності. У CEL є макрос has(), який перевіряє, чи існує поле перед тим, як вираз CEL отримує доступ до значення цього поля. Крім того, CEL реалізує булеве скорочення. Якщо перша половина логічного ОБО відноситься до true, то друга половина не оцінюється (оскільки результат усього ОБО буде true в будь-якому випадку).
Поєднуючи ці дві можливості, ми можемо забезпечити можливість валідації необовʼязкових параметрів:
Тут спочатку ми перевіряємо, чи необовʼязковий параметр відсутній за допомогою !has(params.optionalNumber).
Якщо optionalNumber не був визначений, то вираз скорочується, оскільки !has(params.optionalNumber) оцінюється як true.
Якщо optionalNumber був визначений, тоді друга половина CEL виразу буде оцінена, і optionalNumber буде перевірений, щоб забезпечити, що він містить значення від 5 до 10 включно.
Використовуйте has() для перевірки наявності поля. Щоб перевірити, чи містить мапа ключ, використовуйте оператор in. Наприклад, has(object.metadata.labels) && 'example.com/environment' in object.metadata.labels перевіряє, що поле metadata.labels присутнє і що мапа містить ключ example.com/environment.
Параметри на рівні простору імен
Як автор ValidatingAdmissionPolicy та його ValidatingAdmissionPolicyBinding, ви можете вибрати, чи вказувати параметри на рівні кластера або на рівні простору імен. Якщо ви вказуєте namespace для paramRef привʼязки, панель управління шукає параметри лише в цьому просторі імен.
Проте, якщо namespace не вказано в ValidatingAdmissionPolicyBinding, сервер API може шукати відповідні параметри в просторі імен, до якого відноситься запит. Наприклад, якщо ви робите запит на зміну ConfigMap у просторі імен default, і існує відповідна ValidatingAdmissionPolicyBinding без вказаного namespace, то сервер API шукає обʼєкт параметра в default. Цей дизайн дозволяє конфігурувати правило, що залежить від простору імен ресурсу, який обробляється, для отримання більш точного контролю.
Селектор параметрів
Крім вказання параметра у привʼязці за допомогою name, ви можете вибрати замість цього вказати селектор міток, таким чином, всі ресурси paramKind правила та namespace параметра (якщо застосовується), які відповідають селектору міток, вибираються для оцінки. Див. селектор для отримання додаткової інформації про те, як селектори міток відбирають ресурси.
Якщо умову виконується для декількох параметрів, правила оцінюються для кожного знайденого параметра, а результати будуть оцінені разом через логічне І (AND).
Якщо надано namespace, для вибору допускаються лише обʼєкти paramKind у вказаному просторі імен. В іншому випадку, коли namespace порожній, а paramKind обмежений простором імен, використовується namespace, використаний у запиті для допуску.
Перевірка авторизації
Ми ввели перевірку авторизації для ресурсів параметрів. Очікується, що користувач матиме доступ на читання до ресурсів, на які посилається paramKind у ValidatingAdmissionPolicy та paramRef у ValidatingAdmissionPolicyBinding.
Зверніть увагу, що якщо ресурс у paramKind не вдасться знайти через restmapper, потрібен доступ на читання до всіх ресурсів груп.
paramRef
Поле paramRef визначає ресурс параметра, який використовується політикою. Воно має наступні поля:
name: The name of the parameter resource.
namespace: Простір імен ресурсу параметра.
selector: Селектор мітки для зіставлення декількох ресурсів параметрів.
parameterNotFoundAction: (Обовʼязково) Керує поведінкою, коли вказані параметри не знайдено.
Дозволені значення:
Allow: Відсутність збігів параметрів розцінюється привʼязкою як успішна валідація.
Deny: Відсутність збігу параметрів є предметом failurePolicy політики.
Має бути задано один з параметрів name або selector, але не обидва.
Примітка:
Поле parameterNotFoundAction у paramRef є обовʼязковим. Воно визначає дію, яку слід виконати, якщо не знайдено жодного параметра, що відповідає paramRef. Якщо його не вказати, привʼязка політики може вважатися недійсною і буде проігнорована або призведе до неочікуваної поведінки.
Allow: Якщо встановлено в Allow, і жодних параметрів не знайдено, привʼязка розглядає відсутність параметрів як успішну валідацію, і політика вважається пройденою.
Deny: Якщо встановлено в Deny, і жодних параметрів не знайдено, привʼязка застосовує failurePolicy політики. Якщо failurePolicy має значення Fail, запит буде відхилено.
Переконайтеся, що ви встановили parameterNotFoundAction відповідно до бажаної поведінки при відсутності параметрів.
Обробка відсутніх параметрів з parameterNotFoundAction
При використанні paramRef з селектором може статися так, що селектору не відповідатиме жоден параметр. Поле parameterNotFoundAction визначає поведінку привʼязки у цьому випадку.
failurePolicy визначає, як обробляються неправильні конфігурації та вирази CEL, що викликають помилку в правилах перевірки допуску. Допустимі значення: Ignore або Fail.
Ignore означає, що помилка під час виклику ValidatingAdmissionPolicy ігнорується, і запит API може продовжуватися.
Fail означає, що помилка під час виклику ValidatingAdmissionPolicy призводить до відмови в прийнятті та відхилення запиту API.
Зверніть увагу, що failurePolicy визначається всередині ValidatingAdmissionPolicy:
spec.validations[i].expression представляє вираз, який буде оцінений за допомогою CEL. Для отримання додаткової інформації див. Специфікацію мови CEL. Вирази CEL мають доступ до вмісту запиту/відповіді допуску, організованого в змінні CEL, а також деяких інших корисних змінних:
'object' — Обʼєкт з вхідного запиту. Значення null для запитів DELETE.
'oldObject' — Наявний обʼєкт. Значення null для запитів CREATE.
'params' — Ресурс параметра, на який посилається привʼязка правила, яке оцінюється. Значення null, якщо ParamKind не вказано.
namespaceObject — Простір імен, як ресурс Kubernetes, до якого належить вхідний обʼєкт. Значення null, якщо вхідний обʼєкт має область видимості кластера.
authorizer — Авторизатор CEL. Може використовуватися для виконання перевірок авторизації для принципала (автентифікованого користувача) запиту. Див. AuthzSelectors та Authz в документації бібліотеки Kubernetes CEL для отримання додаткових відомостей.
authorizer.requestResource — Скорочення для перевірки авторизації, налаштоване з ресурсом запиту (група, ресурс, (субресурс), простір імен, імʼя).
У виразах CEL змінні, такі як object та oldObject, є строго типізованими. Ви можете отримати доступ до будь-якого поля в схемі обʼєкта, наприклад object.metadata.labels та полів у spec.
Для будь-якого обʼєкта Kubernetes, включаючи безсхемні власні ресурси, CEL гарантує доступ до мінімального набору властивостей: apiVersion, kind, metadata.name та metadata.generateName.
Рівність у масивах із типом списку 'set' або 'map' ігнорує порядок елементів, тобто [1, 2] == [2, 1]. Конкатенація у масивах з x-kubernetes-list-type використовує семантику типу списку:
'set': X + Y виконує обʼєднання, де позиції масиву всіх елементів в X зберігаються, а
неперетинаючися елементи в Y додаються, зберігаючи їх частковий порядок.
'map': X + Y виконує злиття, де позиції масиву всіх ключів в X зберігаються, але значення
перезаписуються значеннями в Y, коли множини ключів X і Y перетинаються. Елементи в Y з неперетинаючимися ключами додаються, зберігаючи їх частковий порядок.
spec.validation[i].reason представляє машинночитаний опис причини невдачі цієї валідації. Якщо це перша валідація в списку, яка завершується невдачею, ця причина, а також відповідний код відповіді HTTP використовуються у відповіді HTTP клієнту. Підтримувані зараз причини: Unauthorized, Forbidden, Invalid, RequestEntityTooLarge. Якщо не встановлено, StatusReasonInvalid використовується у відповіді клієнту.
Відповідність запитів: matchConditions
Ви можете визначити умови відповідності для ValidatingAdmissionPolicy, якщо вам потрібно дотримуватися детального фільтрування запитів. Ці умови корисні, якщо ви виявите, що правила відповідності, objectSelectors та namespaceSelectors все ще не забезпечують потрібного фільтрування. Умови відповідності — це вирази CEL. Усі умови відповідності повинні оцінюватися як true для ресурсу, який має бути оцінений.
Нижче наведено приклад, що ілюструє кілька різних використань умов відповідності:
apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"demo-policy.example.com"spec:failurePolicy:FailmatchConstraints:resourceRules:- apiGroups:["*"]apiVersions:["*"]operations:["CREATE","UPDATE"]resources:["*"]matchConditions:- name:'exclude-leases'# Імʼя кожної умови має бути унікальнимexpression:'!(request.resource.group == "coordination.k8s.io" && request.resource.resource == "leases")'# Шукати збіг із запитами non-lease.- name:'exclude-kubelet-requests'expression:'!("system:nodes" in request.userInfo.groups)'# Шукати збіг із запитами від користувачів, які не є користувачами вузла.- name:'rbac'# Оминати запити RBAC.expression:'request.resource.group != "rbac.authorization.k8s.io"'validations:- expression:"!object.metadata.name.contains('demo') || object.metadata.namespace == 'demo'"
Умови відповідності мають доступ до тих самих змінних CEL, що й вирази валідації.
У випадку помилки при оцінці умови відповідності правило не оцінюється. Рішення про відхилення запиту визначається наступним чином:
Якщо будь-яка умова відповідності оцінюється як false (незалежно від інших помилок), сервер API пропускає політику.
apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"demo-policy.example.com"spec:failurePolicy:FailmatchConstraints:resourceRules:- apiGroups:["apps"]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["deployments"]validations:- key:"high-replica-count"expression:"object.spec.replicas > 50"messageExpression:"'Deployment spec.replicas set to ' + string(object.spec.replicas)"
Коли запит API перевіряється за цим правилом допуску, отримана подія аудиту буде виглядати так:
#Записанаподіяаудиту{"kind":"Event","apiVersion":"audit.k8s.io/v1","annotations":{"demo-policy.example.com/high-replica-count":"Deployment spec.replicas set to 128"#іншіанотації...}#іншіполя...}
У цьому прикладі анотація буде включена лише тоді, коли spec.replicas у Deployment більше 50, в іншому випадку вираз CEL оцінюється як null, і анотація не буде включена.
Зверніть увагу, що ключі анотацій аудиту мають префікс з імʼям ValidatingAdmissionPolicy та /. Якщо інший контролер допуску, такий як вебхук допуску, використовує точно такий самий ключ анотації аудиту, то значення першого контролера допуску, який включає анотацію аудиту, буде включено в аудит-подію, а всі інші значення будуть ігноруватися.
Вираз повідомлення
Щоб повертати більш дружнє повідомлення, коли правило відхиляє запит, ми можемо використовувати вираз CEL для створення повідомлення з spec.validations[i].messageExpression. Подібно до виразу валідації, вираз повідомлення має доступ до object, oldObject, request, params та namespaceObject. На відміну від валідації, вираз повідомлення має повертати рядок.
Наприклад, щоб краще інформувати користувача про причину відхилення, коли правило посилається на параметр, ми можемо мати наступну валідацію:
apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"deploy-replica-policy.example.com"spec:paramKind:apiVersion:rules.example.com/v1kind:ReplicaLimitmatchConstraints:resourceRules:- apiGroups:["apps"]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["deployments"]validations:- expression:"object.spec.replicas <= params.maxReplicas"messageExpression:"'object.spec.replicas must be no greater than ' + string(params.maxReplicas)"reason:Invalid
Після створення обʼєкту параметрів, який обмежує репліки до 3 та налаштування привʼязки, коли ми спробуємо створити Deployment з 5 репліками, ми отримаємо наступне повідомлення.
$ kubectl create deploy --image=nginx nginx --replicas=5error: failed to create deployment: deployments.apps "nginx" is forbidden: ValidatingAdmissionPolicy 'deploy-replica-policy.example.com' with binding 'demo-binding-test.example.com' denied request: object.spec.replicas must be no greater than 3
Це більш інформативно, ніж статичне повідомлення "занадто багато реплік".
Вираз повідомлення має перевагу над статичним повідомленням, визначеним у spec.validations[i].message, якщо обидва визначені. Однак, якщо вираз повідомлення не вдається оцінити, буде використано статичне повідомлення. Крім того, якщо вираз повідомлення оцінюється як багаторядковий рядок, результат оцінки буде відкинутий, і використовуватиметься статичне повідомлення, якщо воно присутнє. Зауважте, що статичне повідомлення перевіряється на відповідність багаторядковим рядкам.
Перевірка типів
Під час створення або оновлення визначення правил валідації процес валідації аналізує вирази, які він містить, та повідомляє про будь-які синтаксичні помилки, відхиляючи визначення, якщо виявлено помилки. Потім перевіряються змінні, на які є посилання, на наявність помилок типів, включаючи відсутні поля та плутанину типів, відносно відповідних типів spec.matchConstraints. Результат перевірки типів можна отримати з status.typeChecking. Наявність status.typeChecking вказує на завершення перевірки типів, а порожнє status.typeChecking означає, що помилок не виявлено.
apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"deploy-replica-policy.example.com"spec:matchConstraints:resourceRules:- apiGroups:["apps"]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["deployments"]validations:- expression:"object.replicas > 1"# має бути "object.spec.replicas > 1"message:"must be replicated"reason:Invalid
apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"replica-policy.example.com"spec:matchConstraints:resourceRules:- apiGroups:["apps"]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["deployments","replicasets"]validations:- expression:"object.replicas > 1"# має бути "object.spec.replicas > 1"message:"must be replicated"reason:Invalid
буде мати декілька типів та результат перевірки типів кожного типу у повідомленні про попередження.
Відсутнє зіставлення за шаблоном. Якщо spec.matchConstraints.resourceRules містить "*" у будь-якому з apiGroups, apiVersions або resources, типи, які відповідають "*", не будуть перевірені.
Кількість збігів типів обмежена до 10. Це робиться для запобігання використанню правил, що вручну вказує занадто багато типів, що може споживати занадто багато обчислювальних ресурсів. Порядок спадання групи, версії, а потім ресурсу, 11-а комбінація та після буде ігноруватися.
Перевірка типів не впливає на поведінку правил жодним чином. Навіть якщо під час перевірки типів виявляються помилки, політика буде продовжувати оцінюватися. Якщо під час оцінки виникають помилки, політика вибере свій результат.
Перевірка типів не застосовується до CRD, включаючи відповідні типи CRD та посилання на paramKind. Підтримка CRD зʼявиться у майбутній версії.
Склад змінних
Якщо вираз стає занадто складним або частина виразу повторно використовується та має високі обчислювальні витрати, ви можете винести частину виразів у змінні. Змінна — це вираз з назвою, на який можна посилатися пізніше в variables в інших виразах.
Змінна оцінюється ліниво (lazily), під час першого посилання на неї. Про будь-яку помилку, що виникає під час оцінки, буде повідомлено під час оцінки вказаного виразу, на який посилається змінна. Як результат, так і можлива помилка запамʼятовуються і лише один раз враховуються при оцінці під час виконання.
Порядок змінних важливий, оскільки змінна може посилатися на інші змінні, які визначені перед нею. Це упорядкування запобігає циклічним посиланням.
Наведено більш складний приклад змінних, що забезпечує відповідність імен репозиторіїв образів середовищу, визначеному у просторі імен.
# Це правило забезпечує виконання умови, що всі контейнери deployment повинні мати збіг репозиторієв образів з міткою середовища його простору імен.# За винятком deployment, позначених як "exempt", або будь-яких контейнерів, які не належать організації "example.com" (наприклад, загальні sidecar).# Наприклад, якщо у просторі імен є мітка {"environment": "staging"}, всі контейнери повинні мати репозиторій, який є або staging.example.com/*# або не містить "example.com" взагалі, якщо deployment має мітку {"exempt": "true"}.apiVersion:admissionregistration.k8s.io/v1kind:ValidatingAdmissionPolicymetadata:name:"image-matches-namespace-environment.policy.example.com"spec:failurePolicy:FailmatchConstraints:resourceRules:- apiGroups:["apps"]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["deployments"]variables:- name:environmentexpression:"'environment' in namespaceObject.metadata.labels ? namespaceObject.metadata.labels['environment'] : 'prod'"- name:exemptexpression:"'exempt' in object.metadata.labels && object.metadata.labels['exempt'] == 'true'"- name:containersexpression:"object.spec.template.spec.containers"- name:containersToCheckexpression:"variables.containers.filter(c, c.image.contains('example.com/'))"validations:- expression:"variables.exempt || variables.containersToCheck.all(c, c.image.startsWith(variables.environment + '.'))"messageExpression:"'only ' + variables.environment + ' images are allowed in namespace ' + namespaceObject.metadata.name"
З правилом, привʼязаним до простору імен default, який має мітку environment: prod, спроба створити Deployment буде відхилена.
error: failed to create deployment: deployments.apps "invalid" is forbidden: ValidatingAdmissionPolicy 'image-matches-namespace-environment.policy.example.com' with binding 'demo-binding-test.example.com' denied request: only prod images are allowed in namespace default
Види API, що виключені з перевірки допуску
Існують певні типи API, які виключені з перевірки допуску під час валідації. Наприклад, ви не можете створити ValidatingAdmissionPolicy, яка запобігає змінам у ValidatingAdmissionPolicyBindings.
Примітка:
Коли налаштовано через конфігурації на основі маніфестів, ValidatingAdmissionPolicy може перехоплювати всі типи ресурсів, наведені нижче. Це обходить обмеження, які зазвичай застосовуються до політик, створених через REST API, дозволяючи перевіряти навіть конфігурації допуску та ресурси, що потребують підвищеної безпеки. На відміну від REST API, неправильна політика на основі маніфестів, що перехоплює ці ресурси, не буде незворотною, оскільки вона визначена на диску, а не через API.
Список типів API, які виключені з перевірки, наведено нижче:
Якщо ця анотація встановлена в значення true для FlowSchema або PriorityLevelConfiguration, то spec для цього обʼєкта управляється kube-apiserver. Якщо сервер API не розпізнає обʼєкт APF, а ви анотуєте його для автоматичного оновлення, сервер API видаляє весь обʼєкт. У іншому випадку сервер API не управляє специфікацією обʼєкта. Докладніше читайте Обслуговування обовʼязкових та рекомендованих обʼєктів конфігурації.
Використовується для: Обʼєкти, які використовуються як батьки ApplySet.
Використання цієї анотації є альфа-версією. Для Kubernetes версії 1.36 ви можете використовувати цю анотацію на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.
Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця анотація застосовується до батьківського обʼєкта, який використовується для відстеження ApplySet для розширення області застосування ApplySet поза власним простором імен батьківського обʼєкта (якщо є). Значення — це розділені комами імена просторів імен, в яких знаходяться обʼєкти, відмінні від простору імен батьківського обʼєкта.
Використовується для: Обʼєкти, які використовуються як батьки ApplySet.
Використання цієї анотації є альфа-версією. Для Kubernetes версії 1.36 ви можете використовувати цю анотацію на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.
Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця анотація застосовується до батьківського об’єкта, який використовується для відстеження ApplySet для оптимізації списку об’єктів-членів ApplySet. Не є обовʼязковою у специфікації ApplySet, оскільки інструменти можуть виконувати виявлення або використовувати іншу оптимізацію. Однак, починаючи з версії Kubernetes 1.36, kubectl вимагає її наявності. Якщо присутнє, значення цієї анотації має бути розділеним комами списком типів груп у форматі повної назви, тобто. <resource>.<group>.
Використовується для: Обʼєкти, які використовуються як батьки ApplySet.
Для Kubernetes версії 1.36 ви можете використовувати цю анотацію на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.
Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця анотація застосовується до батьківського об’єкта, який використовується для відстеження ApplySet для оптимізації списку об’єктів-членів ApplySet. Не є обовʼязковою у специфікації ApplySet, оскільки інструменти можуть виконувати виявлення або використовувати іншу оптимізацію. Однак, починаючи з версії Kubernetes 1.36, kubectl вимагає її наявності. Якщо присутнє, значення цієї анотації має бути розділеним комами списком типів груп у форматі повної назви, тобто. <resource>.<group>.
Використовується для: Обʼєкти, які використовуються як батьки ApplySet.
Використання цієї мітки є альфа-версією. Для Kubernetes версії 1.36 ви можете використовувати цю мітку на 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 обʼєкта немає звʼязку.
Використовується для: Custom Resource Definition (CRD)
Використання цієї мітки є альфа-версією. Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ви можете встановити цю мітку на CustomResourceDefinition (CRD), щоб ідентифікувати тип власного ресурсу, який він визначає (а не сам CRD) як дозволеного батька для ApplySet. Єдиним допустимим значенням для цієї мітки є "true"; якщо ви хочете позначити CRD як такий, що не є дійсним батьком для ApplySets, пропустіть цю мітку.
Використання цієї мітки є альфа-версією. Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця мітка робить обʼєкт членом ApplySet. Значення мітки повинно збігатися зі значенням мітки applyset.kubernetes.io/id у батьківському обʼєкті.
Використовується для: Обʼєкти, які використовуються як батьки ApplySet.
Використання цієї анотації є альфа-версією. Для Kubernetes версії 1.36 ви можете використовувати цю анотацію на 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 для отримання більш детальної інформації. Зверніть увагу на PodIndexLabel, має бути увімкнено, щоб цю мітку можна було додати до Podʼів.
Ця анотація додається до створених вимог на ресурси. Її значення відповідає назві вимоги ресурсу у файлі .spec будь-якого Podʼа(ів), для якого було створено ResourceClaim. У рамках динамічного розподілу ресурсів функція метаданих виявлених пристроїв використовує цю анотацію для прив’язки згенерованого ResourceClaim до імені заявки Podʼа (pod.spec.resourceClaims[].name) для заявок на основі шаблонів. Цю анотацію управляє Kubernetes, тому її не слід змінювати.
Коли ця анотація має значення "true", автомасштабувальнику кластера дозволяється виселяти Pod навіть якщо інші правила зазвичай забороняють це робити. Автомасштабувальник кластера ніколи не виселяє Podʼи, для яких ця анотація явно встановлена у значення "false"; ви можете встановити це значення для важливого Podʼа, який ви хочете продовжувати виконувати. Якщо цю анотацію не задано, то автомасштабувальник кластера поводитиметься так, як він поводиться на рівні Podʼа.
Ця анотація використовується у маніфестах для позначення обʼєкта як локальної конфігурації, яку не слід передавати до API Kubernetes.
Значення "true" для цієї анотації вказує, що обʼєкт використовується лише клієнтськими інструментами і не повинен бути надісланий на сервер API.
Значення "false" може бути використане для вказівки, що обʼєкт повинен бути надісланий на сервер API, навіть якщо в іншому випадку він вважався б локальним.
Ця анотація є частиною специфікації функцій Kubernetes Resource Model (KRM), яка використовується Kustomize та подібними сторонніми інструментами. Наприклад, Kustomize видаляє обʼєкти з цією анотацією з кінцевого результату збирання коду.
Ця анотація дозволяє вам вказати профіль безпеки AppArmor для контейнера в межах Podʼа Kubernetes. Починаючи з версії Kubernetes 1.30, це слід налаштовувати за допомогою поля appArmorProfile. Щоб дізнатися більше, перегляньте підручник з AppArmor. У підручнику показано, як використовувати AppArmor для обмеження можливостей і доступу контейнера.
Вказаний профіль визначає набір правил і обмежень, яких повинен дотримуватися процес у контейнері. Це допомагає забезпечити дотримання політик безпеки та ізоляцію ваших контейнерів.
Ця анотація встановлюється контролером Deployment на ReplicaSets, якими він керує. Значення представляє бажану кількість реплік (.spec.replicas) з Deployment, якому належить цей ReplicaSet. Контролер Deployment використовує цю анотацію для відстеження бажаного стану під час послідовних оновлень та операцій масштабування.
Це внутрішня анотація, яка використовується контролером Deployment і не повинна змінюватися вручну.
Ця анотація встановлюється контролером Deployment на ReplicaSets, якими він керує. Значення представляє максимальну кількість реплік, яку цей ReplicaSet може мати під час оновлення. Це використовується для реалізації параметра maxSurge стратегії оновлення Rolling Update 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 і не повинна змінюватися вручну.
Ця анотація встановлюється контролером розгортання на ReplicaSet, коли відкат призводить до повторного використання ReplicaSet. Значенням є список, розділений комами, усіх попередніх номерів ревізій, які ReplicaSet обслуговував для Deployment, що зберігається як історія, коли анотація deployment.kubernetes.io/revision оновлюється до нового номера ревізії.
Це внутрішня анотація, яка використовується контролером Deployment і не повинна змінюватися вручну.
internal.config.kubernetes.io/* (reserved prefix)
Тип: Annotation
Використовується для: Всі обʼєкти
Цей префікс зарезервований для внутрішнього використання інструментами, які діють як оркестратори відповідно до специфікації функцій Моделі Ресурсів Kubernetes (KRM). Анотації з цим префіксом є внутрішніми для процесу оркестрування та не зберігаються в маніфестах у файловій системі. Іншими словами, інструмент-оркестратор повинен встановлювати ці анотації при зчитуванні файлів з локальної файлової системи та видаляти їх при записі результатів роботи функцій назад у файлову систему.
Функція KRM не повинна змінювати анотації з цим префіксом, якщо не зазначено інше для конкретної анотації. Це дозволяє інструментам оркестрування додавати додаткові внутрішні анотації без необхідності вносити зміни в існуючі функції.
Ця анотація записує шлях до файлу маніфесту, з якого було завантажено обʼєкт, у вигляді розділеного слешами, незалежного від ОС, відносного шляху. Шлях є відносним до фіксованого розташування у файловій системі, визначеного інструментом-оркестратором.
Ця анотація є частиною специфікації функцій Моделі Ресурсів 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 може включати цю анотацію в обʼєкти, які вона генерує.
Ця анотація записує остаточні бали, які планувальник обчислює з балів, отриманих від втулків планувальника для розрахунку балів, що використовуються https://sigs.k8s.io/kube-scheduler-simulator.
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ʼа.
API-сервер Kubernetes (частина панелі управління) встановлює цю мітку на всі простори імен. Значення мітки встановлюється на імʼя простору імен. Ви не можете змінити значення цієї мітки.
Це корисно, якщо ви хочете вказати конкретний простір імен за допомогою селектора міток selector.
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.
Коли kubelet створює статичний Pod на основі заданого маніфесту, він додає цю анотацію до статичного Pod. Значення анотації — це UID Pod. Зверніть увагу, що kubelet також встановлює .spec.nodeName у поточне імʼя вузла, ніби 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.
Для вказання того, як слід керувати надбудовою, ви можете використовувати мітку addonmanager.kubernetes.io/mode. Ця мітка може мати одне з трьох значень: Reconcile, EnsureExists або Ignore.
Reconcile: Ресурси надбудови періодично будуть зведені до очікуваного стану. Якщо є будь-які відмінності, менеджер надбудов буде переробляти, змінювати конфігурацію або видаляти ресурси за потреби. Цей режим є стандартним режимом, якщо мітка не вказана.
EnsureExists: Ресурси надбудов будуть перевірятися лише на наявність, але не будуть змінюватися після створення. Менеджер надбудов створить або переробить ресурси, коли відсутній жоден екземпляр ресурсу з таким імʼям.
Ignore: Ресурси надбудов будуть ігноруватися. Цей режим корисний для надбудов, які не сумісні з менеджером надбудов або керуються іншим контролером.
Для отримання докладнішої інформації див. Addon-manager.
kube-apiserver встановлює цю мітку для будь-якого обʼєкта APIService, який сервер API створив автоматично. Мітка позначає, як панель управління повинна керувати цим APIService. Ви не повинні додавати, змінювати або видаляти цю мітку самостійно.
Примітка:
Обʼєкти APIService, що автоматично керуються, видаляються kube-apiserver, коли він не має вбудованого або власного API ресурсу користувача, який відповідає API-групі/версії APIService.
Є два можливих значення:
onstart: APIService повинен бути зведений до очікуваного стану при старті сервера API, але не під час інших операцій.
true: Сервер API повинен безперервно зводити цей APIService до очікуваного стану.
Ця анотація раніше використовувалася для вказівки, що контролер Endpoints повинен створювати точки доступу для не готових Podʼів. Починаючи з Kubernetes 1.11, кращим API для цієї функції є поле .publishNotReadyAddresses в Service. Ця анотація не має впливу в Kubernetes 1.36.
Ця анотація використовувалася для налаштування поведінки масштабування для HorizontalPodAutoscaler (HPA) у попередніх версіях Kubernetes. Вона дозволяла вказати, як HPA має масштабувати Podʼи вгору або вниз, включаючи встановлення вікон стабілізації та політик масштабування. Встановлення цієї анотації не має жодного ефекту в будь-якому підтримуваному випуску Kubernetes.
Kubelet заповнює цю мітку імʼям хоста вузла. Зверніть увагу, що імʼя хоста може бути змінене з "фактичного" імʼя хоста за допомогою прапорця --hostname-override для kubelet.
Ця мітка також використовується як частина ієрархії топології. Дивіться topology.kubernetes.io/zone для отримання додаткової інформації.
kubernetes.io/enforce-mountable-secrets є застарілим, починаючи з Kubernetes v1.32. Використовуйте окремі простори імен для ізоляції доступу до змонтованих секретів.
Значення цієї анотації повинно бути true, щоб вона набула чинності. Коли ви встановлюєте цю анотацію у значення "true", Kubernetes застосовує наступні правила для Podʼів, що працюють з цим ServiceAccount:
Secretʼи, змонтовані як томи, повинні бути перелічені в полі secrets ServiceAccount.
Secretʼи, на які посилаються у полі envFrom для контейнерів (включаючи контейнери sidecar і контейнери ініціалізації), також повинні бути перелічені в полі secrets ServiceAccount. Якщо будь-який контейнер в Podʼі посилається на Secret, який не перелічений в полі secrets ServiceAccount (навіть якщо посилання позначене як optional), то Pod не запуститься, і буде згенеровано помилку, що вказує на невідповідне посилання на секрет.
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. Вона все ще може бути встановлена старими інструментами для забезпечення зворотної сумісності.
Ви можете додати мітки до певних робочих вузлів, щоб виключити їх зі списку серверів бекенда, які використовуються зовнішніми балансувальниками навантаження. Наступна команда може бути використана для виключення робочого вузла зі списку серверів бекенда у наборі серверів бекенда:
Ця анотація використовується для встановлення Вартості видалення Podʼа, що дозволяє користувачам впливати на порядок зменшення масштабування ReplicaSet. Значення анотації аналізується як тип int32.
Ця анотація контролює, чи повинен бути виселений Pod DaemonSet за допомогою ClusterAutoscaler. Ця анотація повинна бути вказана на Pod DaemonSet у маніфесті DaemonSet. Коли ця анотація встановлена в значення "true", ClusterAutoscaler дозволяє виселити Pod DaemonSet, навіть якщо інші правила зазвичай цього уникнули б. Щоб заборонити ClusterAutoscaler виселяти Pod DaemonSet, ви можете встановити цю анотацію в значення "false" для важливих Pod DaemonSet. Якщо ця анотація не встановлена, тоді ClusterAutoscaler діє згідно своєї загальної поведінки (тобто виселяє Pod DaemonSets на основі своєї конфігурації).
Примітка:
Ця анотація впливає тільки на 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).
Kubelet заповнює це значенням типу екземпляра, як визначено постачальником хмарних послуг. Це буде встановлено лише в разі використання постачальника хмарних послуг. Це налаштування є зручним, якщо ви хочете спрямувати певні робочі навантаження на певні типи екземплярів, але, як правило, ви хочете покладатися на планувальник Kubernetes для виконання планування на основі ресурсів. Ви повинні намагатися планувати на основі властивостей, а не на основі типів екземплярів (наприклад, потребувати GPU, замість потреби в g2.2xlarge).
Коли ця анотація встановлена на PersistentVolumeClaim (PVC), це вказує на те, що життєвий цикл PVC пройшов через початкове налаштування звʼязування. Коли вона присутня, ця інформація змінює те, як панель управління тлумачить стан обʼєктів PVC. Значення цієї анотації не має значення для Kubernetes.
Використовується для: PersistentVolume, PersistentVolumeClaim
Якщо ця анотація встановлена на PersistentVolume або PersistentVolumeClaim, це вказує на те, що звʼязка зберігання (PersistentVolume → PersistentVolumeClaim або PersistentVolumeClaim → PersistentVolume) була встановлена контролером. Якщо анотація не встановлена, а звʼязка зберігання вже існує, відсутність цієї анотації означає, що звʼязка була встановлена вручну. Значення цієї анотації не має значення.
Ця анотація додається до PersistentVolume (PV), який був динамічно розподілений Kubernetes. Її значення — це імʼя втулка тому, який створив том. Вона служить як користувачам (щоб показати, звідки походить PV), так і Kubernetes (щоб визначити динамічно розподілені PV у своїх рішеннях).
Використовується для: PersistentVolume, PersistentVolumeClaim
Ця анотація додається до PersistentVolume (PV) та PersistentVolumeClaim (PVC), які мають бути динамічно розподілені або видалені відповідним драйвером CSI через власну функціональну можливість CSIMigration. Коли ця анотація встановлена, компоненти Kubernetes "припиняють боротьбу", і external-provisioner діятиме з обʼєктами.
На Node: kubelet або зовнішній cloud-controller-manager заповнюють мітку інформацією від постачальника хмарних послуг. Мітку буде встановлено лише в разі використання постачальника хмарних послуг. Однак ви можете розглянути можливість встановлення її на вузлах, якщо це має сенс у вашій топології.
На PersistentVolume: постачальники томів, що мають відомості про топологію, автоматично встановлюють обмеження на спорідненість вузла для PersistentVolume.
Зона представляє собою логічний домен невдачі. Для підвищення доступності звичайно, кластери Kubernetes охоплюють декілька зон. Хоча точне визначення зони залишається на вибір реалізацій інфраструктури, загальні властивості зон включають дуже низьку мережеву затримку всередині зони, відсутність вартості мережевого трафіку всередині зони та незалежність від невдач інших зон. Наприклад, вузли всередині зони можуть використовувати один мережевий комутатор, але вузли в різних зонах цього робити не повинні.
Регіон представляє собою більшу область, що складається з однієї або декількох зон. Кластери Kubernetes, що охоплюють декілька регіонів, є не звичайним явищем. Хоча точне визначення зони або регіону залишається на вибір реалізацій інфраструктури, загальні властивості регіону включають в себе вищу мережеву затримку між ними, ненульову вартість мережевого трафіку між ними та незалежність від невдач інших зон або регіонів. Наприклад, вузли всередині регіону можуть використовувати спільну інфраструктуру живлення (наприклад, джерело безперебійного живлення або генератор), але вузли в різних регіонах зазвичай ні.
Kubernetes робить кілька припущень щодо структури зон та регіонів:
регіони та зони є ієрархічними: зони є строгими підмножинами регіонів, і жодна зона не може бути в двох регіонах;
імена зон є унікальними у всіх регіонах; наприклад, регіон "africa-east-1" може складатися з зон "africa-east-1a" та "africa-east-1b".
Можна вважати за безпечне припущення, що мітки топології не змінюються. Навіть якщо мітки є строго змінюваними, споживачі можуть припускати, що данний вузол не буде переміщений між зонами без знищення та перестворення.
Kubernetes може використовувати цю інформацію різними способами. Наприклад, планувальник автоматично намагається розподілити Podʼи в ReplicaSet по вузлах в однозонному кластері (щоб зменшити вплив відмови вузла, див. kubernetes.io/hostname). З кластерами, які охоплюють кілька зон, ця поведінка розподілу також застосовується до зон (для зменшення впливу відмови зони). Це досягається за допомогою SelectorSpreadPriority.
SelectorSpreadPriority — це найкраще розміщення. Якщо зони у вашому кластері є гетерогенними (наприклад, різна кількість вузлів, різні типи вузлів або різні вимоги до ресурсів Podʼа), це розміщення може завадити рівномірному розподілу ваших Podʼів між зонами. Якщо це потрібно, ви можете використовувати однорідні зони (однакова кількість і типи вузлів), щоб зменшити ймовірність нерівномірного розподілу.
Планувальник (за допомогою предиката VolumeZonePredicate) також буде забезпечувати, що Podʼи, які вимагають певного тома, будуть розміщені лише в тій же зоні, що й цей том. Томи не можуть бути підключені в різних зонах.
Якщо PersistentVolumeLabel не підтримує автоматичне додавання міток до ваших PersistentVolume, варто розглянути можливість додавання міток вручну (або підтримку PersistentVolumeLabel). З PersistentVolumeLabel планувальник перешкоджає Podʼам монтувати томи в інших зонах. Якщо ваша інфраструктура не має цього обмеження, вам не потрібно додавати мітки зони до томів взагалі.
Використовується для: PersistentVolume, PersistentVolumeClaim
Ця анотація може використовуватися для PersistentVolume(PV) або PersistentVolumeClaim(PVC), щоб вказати імʼя StorageClass. Коли обидва атрибути storageClassName та анотація volume.beta.kubernetes.io/storage-class вказані, анотація volume.beta.kubernetes.io/storage-class має перевагу над атрибутом storageClassName.
Ця анотація застаріла. Замість цього встановіть поле storageClassName для PersistentVolumeClaim або PersistentVolume.
Якщо вузол має анотацію volumes.kubernetes.io/controller-managed-attach-detach, його операції прикріплення та відʼєднання зберігання керуються контролеромприкріплення/відʼєднання тому.
Коли kubelet працює на операційній системі Microsoft Windows, він автоматично позначає міткою свій вузол, щоб зафіксувати версію Windows Server, що використовується.
Значення мітки має формат "MajorVersion.MinorVersion.BuildNumber".
Цю анотацію буде автоматично додано до обʼєкта 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
панель управління додає цей label до об'єктів EndpointSlice та Endpoints, коли власний Service є headless (як підказка для проксі-сервісу, що він може ігнорувати ці точки доступу). Щоб дізнатися більше, прочитайте Headless Services.
Приклад: service.kubernetes.io/topology-mode: Auto
Використовується для: Service
Ця анотація надає спосіб визначення того, як Serviceʼи обробляють топологію мережі; наприклад, ви можете налаштувати Service так, щоб Kubernetes віддавав перевагу збереженню трафіку між клієнтом і сервером в межах однієї топологічної зони. У деяких випадках це може допомогти зменшити витрати або покращити роботу мережі.
Панель управління додає цю мітку лише до Secretʼів, які мають тип kubernetes.io/service-account-token. Значення цієї мітки записує дату (в форматі ISO 8601, в часовому поясі UTC), коли панель управління востаннє бачила запит, де клієнт автентифікувався за допомогою токена службового облікового запису.
Якщо легасі-токен використовувався останній раз до того, як кластер отримав цю функцію (додану у Kubernetes v1.26), то мітка не встановлена.
Панель управління автоматично додає цю мітку до автогенерованих Secretʼів з типом kubernetes.io/service-account-token, за умови, що у вас увімкнено функціональну можливістьLegacyServiceAccountTokenCleanUp. У Kubernetes 1.36 ця поведінка включена стандартно. Ця мітка позначає токен на основі Secret як недійсний для автентифікації. Значення цієї мітки записує дату (в форматі ISO 8601, в часовому поясі UTC), коли панель управління виявляє, що автогенерований Secret не використовувався протягом вказаного періоду (стандартно, один рік).
Ця мітка використовуюється для позначення обʼєктів Endpoints, які були створені Kubernetes (на відміну до Endpoints, стоврених користувачами чи зовнішніми контролерами).
Ця мітка використовується для позначення контролера або сутності, яка керує EndpointSlice. Мета цієї мітки — забезпечити можливість керувати різними обʼєктами EndpointSlice різними контролерами або сутностями в межах одного та самого кластера. Значення endpointslice-controller.k8s.io вказує на обʼєкт EndpointSlice, який було створено автоматично Kubernetes для потреби Service з
селекторами.
Цю мітку можна встановити на значення "true" для ресурсу Endpoints, щоб позначити, що контролер EndpointSliceMirroring не повинен дублювати цей ресурс за допомогою EndpointSlices.
Встановлює значення для цієї мітки, що вказує kube-proxy ігнорувати цей сервіс для проксирування. Це дозволяє використовувати альтернативні реалізації проксі для цього сервісу (наприклад, запуск DaemonSet, який керує nftables своїм способом). Кілька альтернативних реалізацій проксі можуть бути активними одночасно, використовуючи це поле, наприклад, маючи унікальне значення для кожної альтернативної реалізації проксі, щоб відповідати за свої відповідні сервіси.
Використовується для: Gateway, HTTPRoute, і інших ресурсів API Gateway
Ця анотація додається інструментами, які автоматично створюють ресурси Gateway API. Значення визначає інструмент, який створив ресурс (наприклад, ingress2gateway). Анотація є лише інформаційною і не впливає на поведінку жодної реалізації Gateway API.
Якщо ресурс 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 має цю анотацію встановлену на значення "true", новий ресурс PersistentVolumeClaim без вказаного класу буде призначено цей стандартний клас.
Kubelet може встановити цю анотацію на вузлі, щоб вказати його налаштовану адресу IPv4 та/або IPv6.
Коли kubelet запускається з прапорцем --cloud-provider, встановленим на будь-яке значення (включає як зовнішні, так і застарілі постачальники хмарних служб у вбудованому коді), він встановлює цю анотацію на вузлі, щоб вказати IP-адресу, встановлену з командного рядка за допомогою прапорця --node-ip. Цей IP перевіряється постачальником хмарних послуг на дійсність за допомогою cloud-controller-manager.
Контролер Job у kube-controller-manager встановлює це як мітку та анотацію для Podʼів, створених з режимом завершення Indexed.
Зверніть увагу, що для того, щоб це було додано як мітку Podʼа, необхідно увімкнути функціональну можливість PodIndexLabel, інакше це буде просто анотацією.
Використовується для: Jobs and Pods controlled by CronJobs
Ця анотація використовується для запису оригінального (очікуваного) часу створення для завдання, коли це завдання є частиною CronJob. Панель управління встановлює значення цього часового позначення у форматі RFC3339. Якщо завдання належить до CronJob з вказаною часовою зоною, тоді мітка часу знаходиться в цій часовій зоні. В іншому випадку мітка часу відображається в локальному часі controller-manager.
Коли ви використовуєте kubectl create job з прапорцем --from=cronjob/<cronjob-name> для ручного створення завдання з існуючого шаблону CronJob, kubectl встановлює цю анотацію на новостворене завдання. Значення цієї анотації завжди дорівнює manual. Ця анотація дозволяє відрізнити Завдання, які були створені за запитом користувача, від Завдань, які контролер CronJob автоматично створює у запланований час.
Значення анотації — це імʼя контейнера, яке є типовим для цього Podʼа. Наприклад, команди kubectl logs або kubectl exec без прапорця -c або --container використовуватимуть цей типовий контейнер.
Значення анотації — це імʼя контейнера, яке є типовим для логування для цього Podʼа. Наприклад, команда kubectl logs без прапорця -c або --container використовуватиме цей типовий контейнер.
Примітка:
Ця анотація є застарілою. Замість цього, слід використовувати анотацію kubectl.kubernetes.io/default-container. Версії Kubernetes 1.25 і новіші ігнорують цю анотацію.
Командний рядок інструменту kubectl використовує цю анотацію як застарілий механізм для відстеження змін. Цей механізм був замінений на Server-Side Apply.
Використовується для: Deployment, ReplicaSet, StatefulSet, DaemonSet, Pod
Ця анотація містить останній час перезапуску ресурсу (Deployment, ReplicaSet, StatefulSet або DaemonSet), під час якого kubectl запустив розгортання для примусового створення нових Podʼів. Команда kubectl rollout restart <RESOURCE> ініціює перезапуск шляхом виправлення шаблону метаданих усіх Podʼів ресурсу з цією анотацією. У наведеному вище прикладі останній час перезапуску показано як 21 червня 2024 року о 17:27:41 UTC.
Не слід вважати, що ця анотація відображає дату/час останнього оновлення; окремі зміни могли бути внесені з моменту останнього ручного розгортання.
Якщо ви вручну встановите цю анотацію на Pod, нічого не станеться. Побічний ефект перезапуску повʼязаний з тим, як працює управління робочим навантаженням і шаблонізацією Pod.
Панель управління додає цю анотацію до обʼєкта Endpoints, якщо повʼязаний Service має більше 1000 резервних точок доступу. Анотація вказує на те, що обʼєкт Endpoints перевищив потужність, і кількість точок доступу була скорочена до 1000.
Якщо кількість резервних точок доступу опускається нижче 1000, то панель управління видаляє цю анотацію.
Примітка:
API Endpoints є застарілим на користь EndpointSlice. Сервіс може мати кілька обʼєктів EndpointSlice. Як результат, EndpointSlices не потребують обрізання.
Ця анотація встановлює обʼєкт Endpoints, який представляє мітку часу (Мітка часу зберігається у форматі дата-часового рядка RFC 3339. Наприклад, '2018-10-22T19:32:52.1Z'). Це позначка часу останньої зміни в деякому обʼєкті Pod або Service, яка спричинила зміну в обʼєкті 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 походить від імені Job і надає простий спосіб отримати Podʼи, що належать Job.
Використовується для: Jobs та Pods, що керуються через Jobs
Ця мітка використовується як програмний спосіб отримати всі Podʼи, що належать Job. controller-uid є унікальним ідентифікатором, який встановлюється в поле selector, щоб контролер Job міг отримати всі відповідні Podʼи.
Ця анотація вимагає активування контролера допуску PodTolerationRestriction. Ключ цієї анотації дозволяє призначати толерантності для простору імен, і будь-які нові створені в цьому просторі імен Podʼи отримають ці толерантності.
Ця анотація корисна лише тоді, коли активований контролер допуску (Alpha) PodTolerationRestriction. Значення анотації — це JSON-документ, який визначає список допустимих толерантностей для простору імен, який анотується. Під час створення Pod або зміни його толерантностей, сервер API перевіряє толерантності, щоб переконатися, що вони згадуються у списку дозволених. Pod буде прийнятий лише у випадку успішної перевірки.
Kubelet виявляє тиск на памʼять на основі значень memory.available і allocatableMemory.available, спостережуваних на вузлі. Потім спостережені значення порівнюються з відповідними пороговими значеннями, які можна встановити на kubelet, щоб визначити, чи потрібно додати / видалити умову вузла та позначення.
Kubelet виявляє тиск на дискову памʼять на основі значень imagefs.available, imagefs.inodesFree, nodefs.available і nodefs.inodesFree (тільки для Linux), спостережуваних на вузлі. Потім спостережені значення порівнюються з відповідними пороговими значеннями, які можна встановити на kubelet, щоб визначити, чи потрібно додати / видалити умову вузла та позначення.
Це спочатку встановлюється kubelet, коли використовуваний хмарний постачальник вказує на потребу в додатковій конфігурації мережі. Тільки коли маршрут на хмарі налаштований належним чином, хмарний постачальник видаляє позначення.
Kubelet перевіряє D-значення розміру /proc/sys/kernel/pid_max та PID, використані Kubernetes на вузлі, щоб отримати кількість доступних PID, які вказуються метрикою pid.available. Потім цю метрику порівнюють з відповідним пороговим значенням, яке можна встановити на kubelet, щоб визначити, чи потрібно додати / видалити умову вузла та позначення.
Користувач може вручну додати позначення на вузол, відмітивши його як такий що вийшов з ладу. Якщо вузол позначено як неробочий з цією міткою, Podʼи на вузлі буде примусово видалено, якщо на ньому немає відповідних толерантностей, і операції відокремлення тома для Podʼів, що завершуються на вузлі, будуть виконані негайно. Це дозволяє швидко відновити Podʼи на вузлі, що вийшов з ладу, на іншому вузлі.
Увага:
Дивіться Невідповідне вимкнення вузла для отримання додаткових відомостей про те, коли і як використовувати це позначення.
Встановлює цю позначку на вузлі, щоб позначити його як непридатний для використання, коли kubelet запускається з "зовнішнім" хмарним постачальником, доки контролер з cloud-controller-manager ініціалізує цей вузол, а потім видаляє позначку.
Якщо вузол перебуває у визначеному хмарним постачальником стані вимкнення, вузол отримує відповідну позначку з node.cloudprovider.kubernetes.io/shutdown і ефект позначки NoSchedule.
Ці мітки використовуються компонентом виявлення функцій вузла (NFD), щоб оголошувати функції на вузлі. Усі вбудовані мітки використовують простір імен мітки feature.node.kubernetes.io та мають формат feature.node.kubernetes.io/<назва-функції>: "true". NFD має багато точок розширення для створення міток, специфічних для постачальника або застосунку. Для отримання детальної інформації дивіться посібник з налаштування.
Для вузлів, на яких заплановано master виявлення функцій вузла (NFD) , ця анотація записує версію майстра NFD. Вона використовується лише для інформаційних цілей.
Ця анотація записує список міток функцій вузла, розділених комами, керованих виявленням функцій вузла (NFD). NFD використовує це для внутрішнього механізму. Ви не повинні редагувати цю анотацію самостійно.
Ця анотація зберігає розділені комами список розширених ресурсів, керованих виявленням функцій вузла (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 та його компоненти, перейдіть до його офіційної документації.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Значення визначає, як часто балансувальник навантаження записує записи логу. Наприклад, якщо ви встановите значення на 5, записи логу будуть відбуватися з інтервалом у 5 секунд.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Ведення логу доступу активується, якщо ви встановите анотацію на значення "true".
Приклад: service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name: example
Використовується для: Service
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Балансувальник навантаження записує логи до корзини S3 з іменем, яке ви вказуєте.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Балансувальник навантаження записує обʼєкти журналів з префіксом, який ви вказуєте.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує теґи (концепція AWS) для балансувальника навантаження на основі розділених комами пар ключ/значення у значенні цієї анотації.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує прослуховувач балансувальника навантаження на основі значення цієї анотації.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Налаштування затримки зʼєднання балансувальника навантаження залежить від значення, яке ви встановлюєте.
Якщо ви налаштовуєте затримку зʼєднання для Service з type: LoadBalancer, і ви використовуєте хмару AWS, інтеграція налаштовує період затримки на основі цієї анотації. Значення, яке ви встановлюєте, визначає тайм-аут затримки у секундах.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Балансувальник має налаштований період тайм-ауту бездіяльності (у секундах), який застосовується до його зʼєднань. Якщо протягом періоду тайм-ауту бездіяльності не було відправлено або отримано жодних даних, балансувальник закриває зʼєднання.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Якщо ви встановите цю анотацію в значення "true", кожен вузол балансувальника навантаження розподіляє запити рівномірно серед зареєстрованих цілей у всіх увімкнених зонах доступності. Якщо ви вимкнете перехресне балансування зон, кожен вузол балансувальника навантаження розподіляє запити рівномірно серед зареєстрованих цілей лише у своїй зоні доступності.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення є розділеним комами списком ідентифікаторів виділення еластичних IP-адрес.
Ця анотація має сенс тільки для Service з type: LoadBalancer, де балансувальник навантаження є мережевим балансувальником AWS.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації є розділеним комами списком додаткових груп безпеки AWS VPC для налаштування балансувальника навантаження.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає кількість послідовних успішних перевірок стану для бекенду, щоб вважати його справним для передавання трафіку.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає інтервал, в секундах, між запитами перевірки стану, які виконує балансувальник навантаження.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає частину шляху URL, яка використовується для HTTP перевірок стану.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає порт, до якого підключається балансувальник навантаження під час виконання перевірок стану.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає спосіб, яким балансувальник навантаження перевіряє стан бекендів.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації вказує кількість секунд до того, як запит, який ще не вдався, автоматично вважається неуспішним.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає кількість послідовних невдалих перевірок стану, необхідних для того, щоб бекенд вважася несправним для передачі трафіку.
Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Коли ви встановлюєте цю анотацію у значення "true", інтеграція налаштовує внутрішній балансувальник навантаження.
Якщо ви встановлюєте цю анотацію на Service, і також анотуєте цей Service з service.beta.kubernetes.io/aws-load-balancer-type: "external", і ви використовуєте контролер балансувальника навантаження AWS у вашому кластері, тоді контролер балансувальника навантаження AWS встановлює назву цього балансувальника на значення, яке ви встановлюєте для цієї анотації.
Дивіться анотації у документації контролера балансувальника навантаження AWS.
Офіційна інтеграція Kubernetes з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Єдине допустиме значення — "*", що вказує на те, що балансувальник навантаження повинен обгортати TCP-зʼєднання до бекенду Pod за допомогою протоколу PROXY.
Контролер балансувальника навантаження AWS використовує цю анотацію для вказівки розділеного комами списку груп безпеки, які ви хочете прикріпити до балансувальника навантаження AWS. Підтримуються як імʼя, так і ID груп безпеки, де імʼя відповідає тегу Name, а не атрибуту groupName.
Коли ця анотація додається до Service, контролер балансувальника навантаження прикріплює групи безпеки, на які вказує анотація, до балансувальника навантаження. Якщо ви пропускаєте цю анотацію, контролер балансувальника навантаження AWS автоматично створює нову групу безпеки і прикріплює її до балансувальника навантаження.
Примітка:
Починаючи з Kubernetes v1.27, ця анотація більше не встановлюється або не читається безпосередньо. Однак контролер балансувальника навантаження AWS (частина проєкту Kubernetes) все ще використовує анотацію service.beta.kubernetes.io/aws-load-balancer-security-groups.
Офіційна інтеграція з AWS Elastic Load Balancing налаштовує TLS для Service з type: LoadBalancer на основі цієї анотації. Значення анотації — це імʼя ресурсу AWS (ARN) сертифіката X.509, який повинен використовувати прослуховувач балансувальника навантаження.
(Протокол TLS базується на старій технології, яка скорочується до SSL.)
Офіційна інтеграція з AWS Elastic Load Balancing налаштовує TLS для Service з type: LoadBalancer на основі цієї анотації. Значення анотації — це імʼя політики AWS для взаємодії TLS з клієнтом.
Офіційна інтеграція з AWS Elastic Load Balancing налаштовує TLS для Service з type: LoadBalancer на основі цієї анотації. Значення анотації може бути або "*", що означає, що всі порти балансувальника навантаження повинні використовувати TLS, або це може бути розділений комами список номерів портів.
Офіційна інтеграція Kubernetes з AWS використовує цю анотацію для налаштування балансувальника навантаження та визначення, в яких зонах доступності AWS розгорнути керовану службу балансування навантаження. Значення може бути або розділений комами список імен підмереж, або розділений комами список ідентифікаторів підмереж.
Офіційна інтеграція Kubernetes з AWS використовує цю анотацію для визначення, які вузли у вашому кластері повинні бути розглянуті як дійсні цілі для балансувальника навантаження.
Офіційні інтеграції 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, а у вашому кластері є працюючий deployment контролера балансувальника навантаження AWS, то контролер балансувальника навантаження AWS намагатиметься розгорнути балансувальник навантаження на основі специфікації Service.
Увага:
Не змінюйте або додавайте анотацію service.beta.kubernetes.io/aws-load-balancer-type на існуючий обʼєкт Service. Для отримання додаткових відомостей дивіться документацію AWS з цього питання.
Ця анотація працює лише для Service, підтримуваних стандартним балансувальником навантаження Azure. Вона використовується у Service для вказівки, чи слід вимикати або вмикати скидання TCP при бездіяльності. Якщо увімкнено, це допомагає застосункам працювати більш передбачувано, виявляти обриви зʼєднання, видаляти застарілі зʼєднання та ініціювати нові. Ви можете встановити значення як true або false.
Значення обовʼязково повинно бути одним із privileged, baseline або restricted, що відповідає рівням стандарту безпеки для Podʼів. Зокрема, мітка enforceзабороняє створення будь-якого Podʼа у позначеному просторі імен, який не відповідає вимогам, визначеним на вказаному рівні.
Значення має бути latest або дійсна версія Kubernetes у форматі v<major>.<minor>. Це визначає версію політик стандарту безпеки для Podʼів, які застосовуються при перевірці Podʼа.
Значення має бути одним із privileged, baseline або restricted, що відповідають рівням стандарту безпеки для Podʼів. Зокрема, мітка audit не перешкоджає створенню Podʼа у позначеному просторі імен, який не відповідає вимогам, визначеним на вказаному рівні, але додає цю анотацію до Podʼа.
Значення повинно бути latest або дійсна версія Kubernetes у форматі v<major>.<minor>. Це визначає версію політик стандарту безпеки для Podʼів, які застосовуються під час перевірки Podʼа.
Значення має бути одним із privileged, baseline або restricted, що відповідають рівням стандарту безпеки для Podʼів. Зокрема, мітка warn не перешкоджає створенню Podʼа у позначеному просторі імен, який не відповідає вимогам, визначеним на вказаному рівні, але повертає попередження користувачу після цього.
Зверніть увагу, що попередження також відображаються при створенні або оновленні обʼєктів, які містять шаблони Podʼа, такі як Deployments, Jobs, StatefulSets тощо.
Значення повинно бути latest або дійсна версія Kubernetes у форматі v<основний>.<додатковий>. Це визначає версію політик стандарту безпеки для Podʼів, які застосовуються при перевірці поданих Podʼів. Зверніть увагу, що попередження також відображаються при створенні або оновленні обʼєктів, які містять шаблони Podʼа, такі як Deployments, Jobs, StatefulSets тощо.
Використовується для: 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.36 не підтримує API PodSecurityPolicy.
Коли контролер допуску PodSecurityPolicy дав дозвіл Podʼу, він модифікував Pod так, щоб мати цю анотацію. Значення анотації було імʼям PodSecurityPolicy, яке використовувалось для валідації.
Значення може бути або true, або false. Це визначає, чи може користувач змінювати режим джерельного тому при створенні PersistentVolumeClaim із VolumeSnapshot.
Ця мітка/анотація використовується для зберігання назви JobSet, до якого належить Job або Pod. JobSet — це API розширення, яке ви можете розгорнути у своєму кластері Kubernetes.
Контролер JobSet встановлює цю мітку (а також анотацію з тим самим ключем) на дочірніх завданнях JobSet і Pods. Значенням є хеш SHA256 імені Job у просторі імен.
Ви можете встановити цю мітку/анотацію на JobSet, щоб забезпечити ексклюзивне розміщення завдань для кожної топологічної групи. Ви також можете визначити цю мітку або анотацію на тиражованому шаблоні завдання. Щоб дізнатися більше, прочитайте документацію до JobSet.
Ця мітка/анотація може бути застосована до JobSet. Коли вона встановлена, контролер JobSet модифікує Jobs і відповідні їм Pods, додаючи селектори вузлів і толерації. Це забезпечує ексклюзивне розміщення завдань в домені топології, обмежуючи планування цих Podʼів конкретними вузлами на основі стратегії.
Ця мітка встановлюється на вузлах вручну або автоматично (наприклад, кластерним автомасштабувальником). Коли alpha.jobset.sigs.k8s.io/node-selector встановлено у "true", контролер JobSet додає nodeSelector до цієї мітки вузла (разом з толерантністю до позначення alpha.jobset.sigs.k8s.io/no-schedule, описаної далі).
Ця позначка встановлюється або вручну, або автоматично (наприклад, кластерним автомасштабувальником) на вузлах. Коли alpha.jobset.sigs.k8s.io/node-selector встановлено у "true", контролер JobSet додає толерантність до цієї позначки вузла (разом із селектором вузла до мітки alpha.jobset.sigs.k8s.io/namespaced-job, описаної раніше).
Ця анотація/мітка використовується на Jobs та Pods для зберігання стабільної точки доступу, де можна знайти pod координатора, якщо у специфікації JobSet визначено поле .spec.coordinator.
Анотація, яку kubeadm додає до локально керованих Podʼів etcd для відстеження списку URL-адрес, до яких повинні підключатися клієнти etcd. Це використовується головним чином для перевірки стану справності кластера etcd.
Анотація, яку kubeadm додає до ConfigMapʼів, що ним керуються для налаштування компонентів. Вона містить хеш (SHA-256), який використовується для визначення, чи застосував користувач налаштування, відмінні від стандартних налаштувань для конкретного компонента.
node-role.kubernetes.io/control-plane
Тип: Label
Використовується для: Node
Мітка-маркер, що вказує, що вузол використовується для запуску компонентів панелі управління. Інструмент kubeadm застосовує цю мітку до вузлів панелі управління, якими він керує. Інші інструменти управління кластером зазвичай також встановлюють це позачення.
Ви можете позначити вузли панелі управління цією міткою, щоб спростити розміщення Podʼів лише на цих вузлах або уникнути запуску Podʼів на панелі управління. Якщо ця мітка встановлена, контролер EndpointSlice ігнорує цей вузол під час розрахунку підказок, що враховують топологію.
node-role.kubernetes.io/*
Тип: Label
Приклад: node-role.kubernetes.io/gpu: gpu
Використовується для: Node
Ця необовʼязкова мітка застосовується до вузла, коли ви хочете позначити роль вузла. Роль вузла (текст після / у ключі мітки) можна встановити, якщо загальний ключ відповідає правилам синтаксису для міток обʼєктів.
У Kubernetes визначено одну специфічну роль вузла, панель управління. Мітка, яку ви можете використовувати для позначення цієї ролі вузла, має вигляд node-role.kubernetes.io/control-plane.
Позначення, що kubeadm накладає на вузли панелі управління для обмеження розміщення Podʼів і дозволяє розміщувати на них лише певні Podʼи.
Якщо це позначення застосовано, вузли панелі управління дозволяють розміщувати у себе лише критичні навантаження. Ви можете видалити це позначення вручну за допомогою такої команди на відповідному вузлі.
Позначення, що раніше kubeadm застосовував на вузли панелі управління, щоб дозволити розміщувати на них лише критичні навантаження. Замінений позначенням node-role.kubernetes.io/control-plane. kubeadm більше не встановлює або не використовує це застаріле позначення.
Використовується для надання адміністративного доступу до певних типів API resource.k8s.io у просторі імен. Коли ця мітка встановлена у просторі імен зі значенням ”true" (чутливою до регістру), вона дозволяє використання adminAccess: true для будь-яких типів API у просторі імен resource.k8s.io. Наразі цей дозвіл застосовується до обʼєктів ResourceClaim та ResourceClaimTemplate.
Ця сторінка служить довідником по анотаціях аудиту простору імен kubernetes.io. Ці анотації застосовуються до обʼєктів Event з API-групи audit.k8s.io.
Примітка:
Наступні анотації не використовуються в межах Kubernetes API. Коли ви вмикаєте аудит у своєму кластері, дані аудиту подій записуються за допомогою Event з API-групи audit.k8s.io. Ці анотації застосовуються до подій аудиту. Події аудиту відрізняються від обʼєктів у API подій (API-група events.k8s.io).
k8s.io/deprecated
Приклад: k8s.io/deprecated: "true"
Значення повинно бути "true" або "false". Значення "true" вказує на те, що в запит використовував застарілу версію API.
k8s.io/removed-release
Приклад: k8s.io/removed-release: "1.22"
Значення повинно бути у форматі "<MAJOR>.<MINOR>". Встановлюється на цільовий випуск видалення на запити до застарілих версій API з цільовим випуском видалення.
Значення повинно бути одним із user, namespace або runtimeClass, що відповідає вимогам виключень безпеки Pod. Ця анотація вказує на те, на чому засновано виключення з дотримання безпеки Pod.
Значення повинно бути privileged:<version>, baseline:<version>,
restricted:<version>, що відповідає рівням стандарту безпеки Pod, супроводжуваних версією, яка повинна бути latest або дійсною версією Kubernetes у форматі v<MAJOR>.<MINOR>. Ця анотація надає інформацію про рівень виконання, який дозволив або відхилив Pod під час допуску PodSecurity.
Приклад: pod-security.kubernetes.io/audit-violations: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "example" must set securityContext.allowPrivilegeEscalation=false), ...
Значення деталізує порушення аудиту політики, воно містить рівень стандарту безпеки Pod, який був порушений, а також конкретні політики з полів, які були порушені з дотримання безпеки Pod.
Значення завжди "true". Ця анотація вказує на те, що подія аудиту була скорочена через те, що розмір події перевищив налаштований максимум. Скорочення зазвичай вимкнено і повинно бути явно увімкнено через прапорці сервера API.
Ця анотація вказує на міру затримки, що виникає на рівні зберігання, вона враховує час, необхідний для надсилання даних до etcd і отримання повної відповіді назад.
Значення цієї анотації аудиту не включає час, витрачений на допуск або перевірку.
Приклад: missing-san.invalid-cert.kubernetes.io/example-svc.example-namespace.svc: "покладається на застаріле поле загального імені замість розширення SAN для перевірки субʼєкта"
Використовується у Kubernetes версії v1.24 та пізніше.
Ця анотація вказує, що вебхук або агрегований API-сервер використовує недійсний сертифікат, у якого відсутні subjectAltNames. Підтримка цих сертифікатів відключена у Kubernetes 1.19 та видалена у Kubernetes 1.23.
Запити до точок доступу, які використовують ці сертифікати, будуть невдалими. Serviceʼи, які використовують ці сертифікати, повинні замінити їх якомога швидше, щоб уникнути перерви у роботі при використанні середовищ Kubernetes 1.23+.
Використовується у Kubernetes версії v1.24 та пізніше.
Ця анотація вказує, що вебхук або агрегований API-сервер використовує недійсний сертифікат, підписаний небезпечним хешем SHA-1. Підтримка цих небезпечних сертифікатів відключена у Kubernetes 1.24 та буде видалена в майбутніх версіях.
Serviceʼи, які використовують ці сертифікати, повинні замінити їх якнайшвидше, щоб забезпечити належну безпеку зʼєднань та уникнути перебоїв у майбутніх випусках.
Використовується у Kubernetes версії v1.27 та пізніше.
Ця анотація вказує, що перевірка політики допуску не вдалася для запиту API або що перевірка призвела до помилки, коли політика була налаштована з failurePolicy: Fail.
Значення анотації є обʼєктом JSON. message у JSON надає повідомлення про невдачу перевірки.
policy, binding і expressionIndex в JSON ідентифікують імʼя ValidatingAdmissionPolicy, імʼя ValidatingAdmissionPolicyBinding та індекс у політиці validations виразів CEL, які не вдалося, відповідно.
validationActions показують, які дії були вжиті для цієї невдачі перевірки. Див. Політика валідації допуску для отримання додаткових відомостей щодо validationActions.
5 - API Kubernetes
API Kubernetes це застосунок, який обслуговує функціонал Kubernetes через RESTful інтерфейс та зберігає стан кластера.
Ресурси Kubernetes та "записи про наміри" зберігаються як обʼєкти API та модифікуються за допомогою RESTful викликів до API. API дозволяє керувати конфігурацією декларативним способом. Користувачі можуть взаємодіяти з API Kubernetes безпосередньо або за допомогою інструментів, таких як kubectl. Ядро API Kubernetes є гнучким та може бути розширено для підтримки власних ресурсів користувачів.
5.1 - Групи API
Групи API Kubernetes та їхні версії, що підтримуються.
Групи API та їхні версії підсумовані в наступній таблиці.
Група
Версії
admissionregistration.k8s.io
v1, v1beta1, v1alpha1
apiextensions.k8s.io
v1
apiregistration.k8s.io
v1
apps
v1
authentication.k8s.io
v1
authorization.k8s.io
v1
autoscaling
v2, v1
batch
v1
certificates.k8s.io
v1, v1beta1, v1alpha1
coordination.k8s.io
v1, v1beta1, v1alpha2
core
v1
discovery.k8s.io
v1
events.k8s.io
v1
flowcontrol.apiserver.k8s.io
v1
internal.apiserver.k8s.io
v1alpha1
networking.k8s.io
v1, v1beta1
node.k8s.io
v1
policy
v1
rbac.authorization.k8s.io
v1
resource.k8s.io
v1, v1beta2, v1beta1, v1alpha3
scheduling.k8s.io
v1, v1alpha2
storage.k8s.io
v1, v1beta1
storagemigration.k8s.io
v1beta1
5.2 - Admissionregistration
5.2.1 - MutatingAdmissionPolicy
MutatingAdmissionPolicy описує визначення політики мутації допуску, яка змінює обʼєкт, що надходить у ланцюжок допуску.
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
MutatingAdmissionPolicy
MutatingAdmissionPolicy описує визначення політики мутації допуску, яка змінює обʼєкт, що надходить у ланцюжок допуску.
spec визначає бажану поведінку MutatingAdmissionPolicy.
MutatingAdmissionPolicySpec
MutatingAdmissionPolicySpec визначає бажану поведінку політики допуску.
Поле
Опис
failurePolicy string
failurePolicy визначає, як обробляти помилки для політики допуску. Помилки можуть виникати через помилки розбору виразів CEL, помилки перевірки типів, помилки виконання та недійсні або неправильно налаштовані визначення політик або привʼязки. Політика є недійсною, якщо paramKind посилається на Kind, що не існує. Привʼязка є недійсною, якщо paramRef.name посилається на ресурс, якого не існує. failurePolicy не визначає, як обробляються перевірки, які оцінюються як false. Дозволені значення: Ignore або Fail. Стандартне значення — Fail.
Можливі значення enum:
"Fail" означає, що помилка виклику вебхука призводить до відхилення допуску.
"Ignore" означає, що помилка виклику вебхука ігнорується.
`matchConditions` — це список умов, які повинні бути виконані для перевірки запиту. Умови відповідності фільтрують запити, які вже були відібрані за допомогою `matchConstraints`. Порожній список matchConditions відповідає всім запитам. Допускається максимум 64 умови відповідності. Якщо надано об’єкт параметра, доступ до нього можна отримати через дескриптор `params` так само, як і до виразів перевірки. Точна логіка відповідності така (за порядком):
Якщо БУДЬ-ЯКА умова matchCondition має значення FALSE, політика пропускається.
Якщо ВСІ умови matchConditions мають значення TRUE, політика оцінюється.
Якщо будь-яка умова matchCondition має значення помилки (але жодна не має значення FALSE):
Параметр matchConstraints визначає, які ресурси ця політика призначена перевіряти. Політика MutatingAdmissionPolicy враховує запит, якщо він відповідає _всім_ обмеженням. Однак, щоб запобігти переходу кластерів у нестабільний стан, з якого неможливо відновитися за допомогою API, MutatingAdmissionPolicy не може відповідати MutatingAdmissionPolicy та MutatingAdmissionPolicyBinding. Дозволено операції CREATE, UPDATE та CONNECT. Операція DELETE не може відповідати. '*' відповідає CREATE, UPDATE та CONNECT. Обовʼязковий параметр.
mutations містить операції, які слід виконати з відповідними об'єктами. Список mutations не може бути порожнім; потрібно вказати щонайменше одну операцію. Операції з mutations обчислюються послідовно та повторно викликаються відповідно до reinvoationPolicy. Операції з mutations політики викликаються для кожного зв'язування цієї політики, а повторний виклик операцій відбувається для кожного зв'язування окремо.
paramKind визначає тип ресурсів, які використовуються для параметризації цієї політики. Якщо відсутній, параметри для цієї політики відсутні, і змінна param CEL не буде надана для виразів перевірки. Якщо paramKind посилається на тип, що не існує, визначення цієї політики некоректне, і застосовується FailurePolicy. Якщо paramKind вказано, але paramRef не встановлено в MutatingAdmissionPolicyBinding, змінна params буде null.
reinvocationPolicy string
reinvocationPolicy показує, чи можуть мутації викликатися кілька разів для одного MutatingAdmissionPolicyBinding в рамках однієї оцінки допуску. Дозволені значення: "Never" та "IfNeeded". Never: Ці мутації не будуть викликані більше одного разу для одного звʼязування в рамках однієї оцінки допуску. IfNeeded: Ці мутації можуть бути викликані більше одного разу для одного звʼязування в рамках одного запиту на допуск, і немає гарантії порядку щодо інших втулків допуску, вебхуків допуску, звʼязувань цієї політики та політик допуску. Мутації викликаються повторно лише тоді, коли мутації змінюють обʼєкт після виклику цієї мутації. Обовʼязковий параметр.
Можливі значення enum:
"IfNeeded" вказує, що мутація може бути викликана принаймні один додатковий раз в рамках оцінки допуску, якщо обʼєкт, що допускається, змінюється іншими плагінами допуску після початкового виклику мутації.
"Never" вказує, що мутація не повинна викликатися більше одного разу в рамках однієї оцінки допуску.
variables містить визначення змінних, які можна використовувати при складанні інших виразів. Кожна змінна визначається як іменований вираз CEL. Змінні, визначені тут, будуть доступні у variables в інших виразах політики, за винятком matchConditions, оскільки matchConditions оцінюються перед рештою політики. Вираз змінної може посилатися на інші змінні, визначені раніше в списку, але не на ті, що йдуть після. Таким чином, змінні повинні бути відсортовані за порядком першої появи та бути ациклічними.
MutatingAdmissionPolicyList
MutatingAdmissionPolicyList є списком MutatingAdmissionPolicy.
ApplyConfiguration визначає бажану конфігурацію обʼєкта.
Поле
Опис
expression string
expression буде оброблено CEL для створення конфігурації apply. Див: https://github.com/google/cel-spec. Конфігурації Apply оголошуються в CEL за допомогою ініціалізації обʼєкта. Наприклад, цей вираз CEL повертає конфігурацію apply для встановлення одного поля:
Конфігурації Apply не можуть змінювати атомарні структури, мапи або масиви через ризик випадкового видалення значень, які не включені в конфігурацію apply. Вирази CEL мають доступ до типів обʼєктів, необхідних для створення конфігурацій apply:
'Object' — тип CEL для обʼєкта ресурсу.
'Object.\' — тип CEL для поля обʼєкта (наприклад, 'Object.spec')
'Object.\.\...\' — тип CEL для вкладеного поля (наприклад, 'Object.spec.containers')
Вирази CEL мають доступ до вмісту API-запиту, організованого у змінні CEL, а також до деяких інших корисних змінних:
'object' — Обʼєкт з вхідного запиту. Значення null для запитів DELETE.
'oldObject' — Наявний обʼєкт. Значення null для запитів CREATE.
'params' — Ресурс параметрів, на який посилається привʼязка політики, що оцінюється. Заповнюється лише якщо політика має ParamKind.
'namespaceObject' — Обʼєкт простору імен, до якого належить вхідний обʼєкт. Значення null для ресурсів з областю кластера.
'variables' — Мапа композитних змінних, від імені до його відкладено обчисленого значення. Наприклад, змінну з імʼям 'foo' можна отримати як 'variables.foo'.
'authorizer.requestResource' — Ресурс CEL, створений з 'authorizer' і налаштований з ресурсом запиту.
apiVersion, kind, metadata.name та metadata.generateName завжди доступні з кореня обʼєкта. Жодні інші властивості метаданих недоступні. Доступні лише імена властивостей у формі [a-zA-Z_.-/][a-zA-Z0-9_.-/]*. Обовʼязково.
JSONPatch
JSONPatch визначає JSON Patch.
Поле
Опис
expression string
expression буде оброблено CEL для створення JSON patch. Див: https://github.com/google/cel-spec. Вираз повинен повертати масив значень JSONPatch. Наприклад, цей вираз CEL повертає JSON patch для умовної зміни значення:
Вирази CEL мають доступ до типів, необхідних для створення JSON патчів та обʼєктів:
'JSONPatch' — тип CEL для операцій JSON Patch. JSONPatch має поля 'op', 'from', 'path' та 'value'. Див: JSON patch для деталей. Поле 'value' може мати будь-яке значення: рядок, ціле число, масив, мапа або обʼєкт. Якщо встановлено, поля 'path' та 'from' повинні бути встановлені на JSON pointer рядок, де функція CEL 'jsonpatch.escapeKey()' може бути використана для екранування ключів шляху, що містять '/' та '~'.
'Object' — тип CEL для обʼєкта ресурсу.
'Object.<fieldName>' — тип CEL для поля обʼєкта (наприклад, 'Object.spec').
'Object.<fieldName1>.<fieldName2>...<fieldNameN>' — тип CEL для вкладеного поля (наприклад, 'Object.spec.containers').
Вирази CEL мають доступ до вмісту API-запиту, організованого у змінні CEL, а також деякі інші корисні змінні:
'object' — Обʼєкт з вхідного запиту. Значення null для DELETE-запитів.
'oldObject' — Наявний обʼєкт. Значення null для CREATE-запитів.
'params' — Ресурс параметрів, на який посилається привʼязку політики, що оцінюється. Заповнюється лише якщо політика має ParamKind.
'namespaceObject' — Обʼєкт простору імен, до якого належить вхідний обʼєкт. Значення null для ресурсів, що мають глобальну область застосування.
'variables' — Мапа композитних змінних, від імені до його відкладено обчисленого значення. Наприклад, змінну з імʼям 'foo' можна отримати як 'variables.foo'.
applyConfiguration визначає бажані значення конфігурації обʼєкта. Конфігурація застосовується до обʼєкта допуску за допомогою structured merge diff. CEL вираз використовується для створення конфігурації apply.
jsonPatch визначає JSON patch операцію для виконання мутації обʼєкта. CEL вираз використовується для створення JSON patch.
patchType* string
patchType вказує стратегію патчу, що використовується. Дозволені значення: "ApplyConfiguration" та "JSONPatch". Обовʼязково.
Можливі значення enum:
"ApplyConfiguration" ApplyConfiguration вказує, що мутація використовує конфігурацію apply для зміни обʼєкта.
"JSONPatch" JSONPatch вказує, що обʼєкт змінюється за допомогою JSON Patch.
Операції
post Create
HTTP Запит
POST /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicies
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicies/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва MutatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicies/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва MutatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicies
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/mutatingadmissionpolicies/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва MutatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/mutatingadmissionpolicies
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
MutatingAdmissionPolicyBinding повʼязує MutatingAdmissionPolicy з параметризованими ресурсами. MutatingAdmissionPolicyBinding та необовʼязковий ресурс параметрів разом визначають, як адміністратори кластера налаштовують політики для кластерів.
Для даного запиту на допуск кожне привʼязування призведе до оцінки його політики N разів, де N дорівнює 1 для політик/привʼязувань, які не використовують параметри, інакше N дорівнює кількості параметрів, вибраних привʼязуванням. Кожна оцінка обмежується бюджетом витрат часу виконання.
Додавання/видалення політик, привʼязувань або параметрів не може вплинути на те, чи знаходиться дана комбінація (політика, привʼязування, параметр) у межах власного бюджету CEL.
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
MutatingAdmissionPolicyBinding
MutatingAdmissionPolicyBinding повʼязує MutatingAdmissionPolicy з параметризованими ресурсами. MutatingAdmissionPolicyBinding та необовʼязковий ресурс параметрів разом визначають, як адміністратори кластера налаштовують політики для кластерів.
Для даного запиту на допуск кожне привʼязування призведе до оцінки його політики N разів, де N дорівнює 1 для політик/привʼязувань, які не використовують параметри, інакше N дорівнює кількості параметрів, вибраних привʼязуванням. Кожна оцінка обмежується бюджетом витрат часу виконання.
Додавання/видалення політик, привʼязувань або параметрів не може вплинути на те, чи знаходиться дана комбінація (політика, привʼязування, параметр) у межах власного бюджету CEL.
matchResources обмежує, які ресурси збігаються з цією привʼязкою і можуть бути змінені нею. Зверніть увагу, що якщо matchResources збігається з ресурсом, цей ресурс також повинен відповідати matchConstraints та matchConditions політики, перш ніж його можна буде змінити. Якщо matchResources не задано, це не обмежує збіг ресурсів, і для зміни ресурсу достатньо, щоб він мав збіг лише matchConstraints та matchConditions політики. Крім того, matchResources.resourceRules є необовʼязковими і не обмежують відповідність, якщо не встановлені. Зверніть увагу, що це відрізняється від matchConstraints MutatingAdmissionPolicy, де resourceRules є обовʼязковими. Дозволені операції CREATE, UPDATE та CONNECT. Операція DELETE не може мати збігу. '*' відповідає CREATE, UPDATE та CONNECT.
paramRef визначає ресурс параметра, який використовується для налаштування політики контролю доступу. Він повинен вказувати на ресурс типу, зазначеного в spec.ParamKind привʼязаного MutatingAdmissionPolicy. Якщо політика вказує ParamKind, а ресурс, на який посилається ParamRef, не існує, ця привʼязка вважається неправильно налаштованою, і застосовується FailurePolicy MutatingAdmissionPolicy. Якщо політика не вказує ParamKind, це поле ігнорується, і правила оцінюються без параметра.
policyName string
policyName посилається на імʼя MutatingAdmissionPolicy, до якої привʼязується MutatingAdmissionPolicyBinding. Якщо посиланий ресурс не існує, ця привʼязка вважається недійсною і буде ігноруватися. Є обовʼязковим.
MutatingAdmissionPolicyBindingList
MutatingAdmissionPolicyBindingList є списком MutatingAdmissionPolicyBinding.
POST /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicybindings
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надіслати попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicybindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва MutatingAdmissionPolicyBinding
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надіслати попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Час у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль означає негайне видалення. Якщо це значення дорівнює nil, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для кожного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
якщо встановлено значення true, це призведе до небезпечного видалення ресурсу у випадку, якщо звичайний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища через а) неможливість трансформації даних, наприклад, помилка дешифрування, або б) невдачу при декодуванні в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження фіналізаторів, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на звичайний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicybindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва MutatingAdmissionPolicyBinding
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/admissionregistration.k8s.io/v1/mutatingadmissionpolicybindings
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/mutatingadmissionpolicybindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
назва MutatingAdmissionPolicyBinding
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/mutatingadmissionpolicybindings
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
MutatingWebhook описує admission webhook та ресурси і операції, до яких він застосовується.
Поле
Опис
admissionReviewVersions* string array
admissionReviewVersions є впорядкованим списком переважних версій AdmissionReview, які очікує Webhook. Сервер API спробує використати першу версію зі списку, яку він підтримує. Якщо жодна з версій, зазначених у цьому списку, не підтримується сервером API, перевірка цього обʼєкта завершиться невдачею. Якщо збережена конфігурація webhook вказує дозволені версії і не включає жодної версії, відомої серверу API, виклики до webhook завершаться невдачею і підпадатимуть під політику обробки помилок.
`matchConditions` — це список умов, які повинні бути виконані для перевірки запиту. Умови відповідності фільтрують запити, які вже були відібрані за допомогою `matchConstraints`. Порожній список matchConditions відповідає всім запитам. Допускається максимум 64 умови відповідності. Якщо надано об’єкт параметра, доступ до нього можна отримати через дескриптор `params` так само, як і до виразів перевірки. Точна логіка відповідності така (за порядком):
Якщо БУДЬ-ЯКА умова matchCondition має значення FALSE, політика пропускається.
Якщо ВСІ умови matchConditions мають значення TRUE, політика оцінюється.
Якщо будь-яка умова matchCondition має значення помилки (але жодна не має значення FALSE):
Якщо failurePolicy=Fail, запит відхиляється
Якщо failurePolicy=Ignore, політика пропускається
matchPolicy string
matchPolicy визначає, як список "rules" використовується для порівняння з вхідними запитами. Дозволені значення: "Exact" або "Equivalent".
Exact: запит збігається лише тоді, коли він точно відповідає вказаному правилу. Наприклад, якщо розгортання можна змінювати через apps/v1, apps/v1beta1 та extensions/v1beta1, але "rules" включає лише apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запит до apps/v1beta1 або extensions/v1beta1 не буде надіслано до вебхука.
Equivalent: запит збігається, якщо він змінює ресурс, зазначений у rules, навіть через іншу групу API або версію. Наприклад, якщо розгортання можна змінювати через apps/v1, apps/v1beta1 та extensions/v1beta1, і "rules" включає лише apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запит до apps/v1beta1 або extensions/v1beta1 буде перетворено на apps/v1 і надіслано до вебхука.
Стандартне значення — "Equivalent"
Можливі значення enum:
"Equivalent" означає, що запити повинні надсилатися до вебхука, якщо вони змінюють ресурс, зазначений у rules, через іншу групу API або версію.
"Exact" означає, що запити повинні надсилатися до вебхука лише тоді, коли вони точно відповідають вказаному правилу.
name* string
name є назвою вебхука допуску. Назва повинна бути повністю кваліфікованою, наприклад, imagepolicy.kubernetes.io, де "imagepolicy" є назвою вебхука, а kubernetes.io є назвою організації. Обовʼязково.
namespaceSelector вирішує, чи запускати вебхук на обʼєкті на основі того, чи відповідає простір імен цього обʼєкта селектору. Якщо сам обʼєкт є простором імен, збіг перевіряється для object.metadata.labels. Якщо обʼєкт є іншим ресурсом з областю кластера, вебхук ніколи не пропускається.
Наприклад, щоб запускати вебхук на будь-яких обʼєктах, простір імен яких не повʼязаний з "runlevel" значенням "0" або "1", встановіть селектор наступним чином:
Якщо замість цього ви хочете запускати вебхук лише на обʼєктах, простір імен яких повʼязаний з "environment" значенням "prod" або "staging", встановіть селектор наступним чином:
objectSelector вирішує, чи запускати вебхук на основі того, чи має обʼєкт відповідні мітки. objectSelector оцінюється як для oldObject, так і для newObject, які будуть надіслані вебхуку, і вважається, що він має збіг, якщо будь-який з обʼєктів відповідає селектору. Null-обʼєкт (oldObject у випадку створення або newObject у випадку видалення) або обʼєкт, який не може мати мітки (наприклад, DeploymentRollback або PodProxyOptions), не вважається відповідним. Використовуйте objectSelector лише якщо вебхук є опціональним, оскільки кінцеві користувачі можуть пропустити вебхук, встановивши мітки. Зазвичай використовується порожній LabelSelector, який збігаєтсья зі всіма обʼєктами.
reinvocationPolicy string
reinvocationPolicy показує, чи цей вебхук повинен викликатися кілька разів в рамках одного оцінювання допуску. Дозволені значення: "Never" та "IfNeeded".
Never: вебхук не буде викликаний більше одного разу в рамках одного оцінювання допуску.
IfNeeded: вебхук буде викликаний принаймні один додатковий раз в рамках оцінювання допуску, якщо обʼєкт, що допускається, змінюється іншими втулками допуску після початкового виклику вебхука. Вебхуки, які вказують цю опцію, повинні бути ідемпотентними, здатними обробляти обʼєкти, які вони раніше допустили. Примітка:
не гарантується що кількість додаткових викликів буде точно один.
якщо додаткові виклики призводять до подальших змін обʼєкта, не гарантується що вебхуки будуть викликані знову.
вебхуки, які використовують цю опцію, можуть бути переставлені для мінімізації кількості додаткових викликів.
для перевірки обʼєкта після завершення всіх мутацій використовуйте замість цього вебхук перевірки.
Стандартне значення — "Never".
Можливі значення enum:
"IfNeeded" вказує, що мутація може бути викликана принаймні один додатковий раз в рамках оцінювання допуску, якщо обʼєкт, що допускається, змінюється іншими втулками допуску після початкового виклику мутації.
"Never" вказує, що мутація не повинна викликатися більше одного разу в рамках одного оцінювання допуску.
rules описує, які операції з якими ресурсами/субресурсами цікавлять вебхук. Вебхук цікавиться операцією, якщо вона відповідає будь-якому правилу. Однак, щоб запобігти ситуації, коли ValidatingAdmissionWebhooks та MutatingAdmissionWebhooks ставлять кластер у стан, з якого неможливо відновитися без повного відключення втулка, ValidatingAdmissionWebhooks та MutatingAdmissionWebhooks ніколи не викликаються для запитів на допуск для обʼєктів ValidatingWebhookConfiguration та MutatingWebhookConfiguration.
sideEffects* string
sideEffects вказує, чи має цей вебхук має побічні ефекти. Допустимі значення: None, NoneOnDryRun (вебхуки, створені через v1beta1, також можуть вказувати Some або Unknown). Вебхуки з побічними ефектами МАЮТЬ реалізовувати систему узгодження, оскільки запит може бути відхилений на наступному кроці в ланцюжку допуску, і побічні ефекти потрібно буде скасувати. Запити з атрибутом dryRun будуть автоматично відхилені, якщо вони відповідають вебхуку з sideEffects == Unknown або Some.
Можливі значення enum:
"None" означає, що виклик вебхуку не матиме побічних ефектів.
"NoneOnDryRun" означає, що виклик вебхуку може мати побічні ефекти, але якщо запит, що перевіряється, має атрибут dry-run, побічні ефекти будуть придушені.
"Some" означає, що виклик вебхуку може мати побічні ефекти. Якщо запит з атрибутом dry-run викличе цей вебхук, запит буде відхилено.
"Unknown" означає, що інформація про побічні ефекти виклику вебхуку відсутня. Якщо запит з атрибутом dry-run викличе цей вебхук, запит буде відхилено.
timeoutSeconds integer
timeoutSeconds визначає час очікування для цього вебхуку. Після закінчення часу очікування виклик вебхуку буде ігноровано або виклик API завершиться невдачею залежно від політики помилок. Значення часу очікування повинно бути між 1 і 30 секундами. Стандартно — 10 секунд.
Операції
post Create
HTTP Запит
POST /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва MutatingWebhookConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
назва MutatingWebhookConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва MutatingWebhookConfiguration
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
status представляє поточний стан ValidatingAdmissionPolicy, включаючи попередження, які корисні для визначення, чи політика працює очікуваним чином. Заповнюється системою. Тільки для читання.
ValidatingAdmissionPolicySpec
ValidatingAdmissionPolicySpec є специфікацією бажаної поведінки AdmissionPolicy.
auditAnnotations містить вирази CEL, які використовуються для створення анотацій аудиту для події аудиту запиту API. Поля validations і auditAnnotations не можуть бути обидва порожні; необхідно мати принаймні один з validations або auditAnnotations.
failurePolicy string
failurePolicy визначає, як обробляти помилки для політики допуску. Помилки можуть виникати через помилки розбору виразів CEL, помилки перевірки типів, помилки виконання та недійсні або неправильно налаштовані визначення політики або привʼязки. Політика є недійсною, якщо spec.paramKind посилається на Kind, який не існує. Привʼязка є недійсною, якщо spec.paramRef.name посилається на ресурс, якого не існує. failurePolicy не визначає, як обробляються перевірки, які оцінюються як false. Коли failurePolicy встановлено на Fail, дії перевірки ValidatingAdmissionPolicyBinding визначають, як застосовуються помилки. Дозволені значення: Ignore або Fail. Стандартне значення — Fail.
Можливі значення enum:
"Fail" означає, що помилка виклику вебхука призводить до відмови у допуску.
"Ignore" означає, що помилка виклику вебхука ігнорується.
matchConditions — це список умов, які повинні бути виконані для перевірки запиту. Умови відповідності фільтрують запити, які вже були відібрані за допомогою matchConstraints. Порожній список matchConditions відповідає всім запитам. Допускається максимум 64 умови відповідності. Якщо надано об’єкт параметра, доступ до нього можна отримати через дескриптор params так само, як і до виразів перевірки. Точна логіка відповідності така (за порядком):
Якщо БУДЬ-ЯКА умова matchCondition має значення FALSE, політика пропускається.
Якщо ВСІ умови matchConditions мають значення TRUE, політика оцінюється.
Якщо будь-яка умова matchCondition має значення помилки (але жодна не має значення FALSE):
Параметр matchConstraints визначає, які ресурси ця політика призначена перевіряти. Політика AdmissionPolicy розглядає запит, якщо він відповідає _усім_ обмеженням. Однак, щоб запобігти переходу кластерів у нестабільний стан, який неможливо відновити за допомогою API, ValidatingAdmissionPolicy не може відповідати ValidatingAdmissionPolicy та ValidatingAdmissionPolicyBinding. Обов’язкове.
paramKind визначає тип ресурсів, які використовуються для параметризації цієї політики. Якщо відсутній, параметри для цієї політики відсутні, і змінна param CEL не буде надана для виразів перевірки. Якщо paramKind посилається на тип, що не існує, визначення цієї політики некоректне, і застосовується FailurePolicy. Якщо paramKind вказано, але paramRef не встановлено в ValidatingAdmissionPolicyBinding, змінна params буде null.
validations містить вирази CEL, які використовуються для застосування перевірки. Validations та AuditAnnotations не можуть бути обидва порожні; мінімум один з них обовʼязковий.
variables Variable array patch strategy: злиття за ключем name
variables містить визначення змінних, які можна використовувати при складанні інших виразів. Кожна змінна визначається як іменований вираз CEL. Змінні, визначені тут, будуть доступні у variables в інших виразах політики, за винятком MatchConditions, оскільки MatchConditions оцінюються перед рештою політики. Вираз змінної може посилатися на інші змінні, визначені раніше в списку, але не на ті, що йдуть після. Таким чином, Variables повинні бути відсортовані за порядком першої появи і бути ациклічними.
ValidatingAdmissionPolicyStatus
ValidatingAdmissionPolicyStatus представляє стан політики перевірки допуску.
AuditAnnotation описує, як створити анотацію аудиту для запиту API.
Поле
Опис
key* string
key визначає ключ анотації аудиту. Ключі анотацій аудиту ValidatingAdmissionPolicy повинні бути унікальними. Ключ повинен бути кваліфікованим імʼям ([A-Za-z0-9][-A-Za-z0-9_.]*) довжиною не більше 63 байтів. Ключ комбінується з імʼям ресурсу ValidatingAdmissionPolicy для створення ключа анотації аудиту: "{ValidatingAdmissionPolicy name}/{key}". Якщо вебхук допуску використовує те саме імʼя ресурсу, що й цей ValidatingAdmissionPolicy, і той самий ключ анотації аудиту, ключ анотації буде ідентичним. У цьому випадку перша анотація, записана з цим ключем, буде включена в подію аудиту, а всі наступні анотації з тим самим ключем будуть відкинуті. Обовʼязково.
valueExpression* string
valueExpression визначає вираз, який оцінюється за допомогою CEL для створення значення анотації аудиту. Вираз повинен оцінюватися як рядок або null. Якщо вираз оцінюється як рядок, анотація аудиту включається зі значенням рядка. Якщо вираз оцінюється як null або порожній рядок, анотація аудиту буде пропущена. Довжина valueExpression не повинна перевищувати 5 КБ. Якщо результат valueExpression перевищує 10 КБ, він буде обрізаний до 10 КБ. Якщо кілька ресурсів ValidatingAdmissionPolicyBinding відповідають запиту API, valueExpression буде оцінюватися для кожного звʼязування. Усі унікальні значення, отримані з valueExpression, будуть обʼєднані в список, розділений комами. Обовʼязково.
ExpressionWarning
ExpressionWarning описує інформацію про попередження, що стосується конкретного виразу.
Поле
Опис
fieldRef* string
fieldRef визначає шлях до поля, яке посилається на вираз. Наприклад, посилання на вираз першого елемента валідацій виглядає як "spec.validations[0].expression"
warning* string
warning містить інформацію про перевірку типів у зручній для читання формі. Кожен рядок попередження містить тип, проти якого перевіряється вираз, а також помилку перевірки типу від компілятора.
TypeChecking
TypeChecking містить результати перевірки типів виразів у ValidatingAdmissionPolicy
Вирази CEL мають доступ до вмісту запиту/відповіді API, організованого у змінні CEL, а також деякі інші корисні змінні:
'object' — Обʼєкт з вхідного запиту. Значення null для запитів DELETE.
'oldObject' — Наявний обʼєкт. Значення null для запитів CREATE.
'request' — Атрибути запиту API ([ref](/pkg/apis/admission/types.go#AdmissionRequest)).
'params' — Ресурс параметрів, на який посилається привʼязка політики, що оцінюється. Заповнюється лише якщо політика має ParamKind.
'namespaceObject' — Обʼєкт простору імен, до якого належить вхідний обʼєкт. Значення null для ресурсів з областю кластера.
'variables' — Мапа складених змінних, від їх імені до відкладено оціненого значення. Наприклад, змінну з імʼям 'foo' можна отримати як 'variables.foo'.
'authorizer.requestResource' — CEL ResourceCheck, створений з 'authorizer' і налаштований з ресурсом запиту.
apiVersion, kind, metadata.name та metadata.generateName завжди доступні з кореня обʼєкта. Жодні інші властивості метаданих недоступні.
Лише імена властивостей у формі [a-zA-Z_.-/][a-zA-Z0-9_.-/]* доступні.
Доступні імена властивостей екрануються відповідно до наступних правил при доступі у виразі:
'__' екранується як '__underscores__'
'.' екранується як '__dot__'
'-' екранується як '__dash__'
'/' екранується як '__slash__'
Імена властивостей, які точно збігаються з зарезервованим ключовим словом CEL, екрануються як '__{keyword}__'.
Вираз, що отримує доступ до властивості з імʼям "namespace": {"Expression": "object.__namespace__ > 0"}
Вираз, що отримує доступ до властивості з імʼям "x-prop": {"Expression": "object.x__dash__prop > 0"}
Вираз, що отримує доступ до властивості з імʼям "redact__d": {"Expression": "object.redact__underscores__d > 0"}
При порівнянні масивів з типом списку 'set' або 'map' порядок елементів ігнорується, тобто [1, 2] == [2, 1]. Конкатенація масивів з x-kubernetes-list-type використовує семантику типу списку:
'set': X + Y виконує обʼєднання, де позиції всіх елементів у X зберігаються, а неперетинаючі елементи в Y додаються, зберігаючи їх частковий порядок.
'map': X + Y виконує злиття, де позиції всіх ключів у X зберігаються, але значення перезаписуються значеннями з Y, коли множини ключів X і Y перетинаються. Елементи в Y з неперетинаючими ключами додаються, зберігаючи їх частковий порядок.
Обовʼязково.
message string
message представляє повідомлення, яке показується, коли перевірка не проходить. Повідомлення обовʼязкове, якщо Expression містить розриви рядків. Повідомлення не повинно містити розривів рядків. Якщо не встановлено, повідомлення буде "failed rule: {Rule}". Наприклад: "must be a URL with the host matching spec.host". Якщо вираз містить розриви рядків, повідомлення обовʼязкове. Повідомлення не повинно містити розривів рядків. Якщо не встановлено, повідомлення буде "failed Expression: {Expression}".
messageExpression string
messageExpression оголошує CEL-вираз, який оцінюється до повідомлення про помилку перевірки, яке повертається, коли це правило не проходить. Оскільки messageExpression використовується як повідомлення про помилку, воно повинно оцінюватися як рядок. Якщо обидва поля message і messageExpression присутні у перевірці, то messageExpression буде використано, якщо перевірка не пройде. Якщо messageExpression призводить до помилки виконання, помилка виконання реєструється, і повідомлення про помилку перевірки генерується так, ніби поле messageExpression не встановлено. Якщо messageExpression оцінюється як порожній рядок, рядок, що містить лише пробіли, або рядок, що містить розриви рядків, тоді повідомлення про помилку перевірки також буде згенеровано так, ніби поле messageExpression не встановлено, і факт, що messageExpression призвело до порожнього рядка/рядка, що містить лише пробіли/рядка з розривами рядків, буде зареєстровано. messageExpression має доступ до всіх тих самих змінних, що й expression, за винятком 'authorizer' та 'authorizer.requestResource'. Приклад: "object.x must be less than max ("+string(params.max)+")"
reason string
reason представляє машиночитаний опис того, чому ця перевірка не пройшла. Якщо це перша перевірка в списку, яка не пройшла, цей reason, а також відповідний HTTP-код відповіді, використовуються у HTTP-відповіді клієнту. Поточні підтримувані причини: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". Якщо не встановлено, у відповіді клієнту використовується StatusReasonInvalid.
Операції
post Create
HTTP Запит
POST /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обовʼязковим для запитів apply (application/apply-patch), але необовʼязковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicy
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
ValidatingAdmissionPolicyBinding повʼязує ValidatingAdmissionPolicy з параметризованими ресурсами. ValidatingAdmissionPolicyBinding та CRD-файли параметрів разом визначають, як адміністратори кластерів налаштовують політики для кластерів.
Для заданого запиту на допуск кожне привʼязування призведе до того, що його політика буде оцінена N разів, де N дорівнює 1 для політик/прив'язувань, які не використовують параметри, в іншому випадку N — це кількість параметрів, обраних привʼязуванням.
Вирази CEL політики повинні мати обчислений бюджет витрат CEL, що не перевищує максимальний бюджет CEL. Кожній оцінці політики присвоюється незалежний бюджет витрат CEL. Додавання/видалення політик, привʼязок або параметрів не може вплинути на те, чи знаходиться дана комбінація (політика, прив'язка, параметр) у межах власного бюджету витрат CEL.
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ValidatingAdmissionPolicyBinding
ValidatingAdmissionPolicyBinding повʼязує ValidatingAdmissionPolicy з параметризованими ресурсами. ValidatingAdmissionPolicyBinding та CRD-файли параметрів разом визначають, як адміністратори кластерів налаштовують політики для кластерів.
Для заданого запиту на допуск кожне привʼязування призведе до того, що його політика буде оцінена N разів, де N дорівнює 1 для політик/прив'язувань, які не використовують параметри, в іншому випадку N — це кількість параметрів, обраних привʼязуванням.
Вирази CEL політики повинні мати обчислений бюджет витрат CEL, що не перевищує максимальний бюджет CEL. Кожній оцінці політики присвоюється незалежний бюджет витрат CEL. Додавання/видалення політик, привʼязок або параметрів не може вплинути на те, чи знаходиться дана комбінація (політика, прив'язка, параметр) у межах власного бюджету витрат CEL.
Параметр `matchResources` визначає, які ресурси відповідають цій привʼязці та будуть перевірені за її допомогою. Зверніть увагу, що цей параметр перетинається з параметром `matchConstraints` політики, тому за допомогою нього можуть бути відібрані лише ті запити, які відповідають політиці. Якщо цей параметр не вказано, всі ресурси, що відповідають політиці, перевіряються за допомогою цієї привʼязки. Якщо параметр `resourceRules` не вказано, він не обмежує відповідність ресурсів. Якщо ресурс відповідає іншим полям цього об’єкта, він буде перевірений. Зверніть увагу, що це відрізняється від matchConstraints у ValidatingAdmissionPolicy, де resourceRules є обовʼязковими.
paramRef визначає ресурс параметра, який використовується для налаштування політики контролю доступу. Він повинен вказувати на ресурс типу, зазначеного в ParamKind привʼязаної ValidatingAdmissionPolicy. Якщо політика вказує ParamKind, а ресурс, на який посилається ParamRef, не існує, ця привʼязка вважається неправильно налаштованою, і застосовується FailurePolicy привʼязаної ValidatingAdmissionPolicy. Якщо політика не вказує ParamKind, це поле ігнорується, а правила оцінюються без параметра.
policyName* string
policyName вказує на назву ValidatingAdmissionPolicy, до якої привʼязується ValidatingAdmissionPolicyBinding. Якщо зазначений ресурс не існує, ця привʼязка вважається недійсною і буде ігноруватися. Обовʼязково.
validationActions* string array
validationActions визначає як виконуються перевірки зазначеної ValidatingAdmissionPolicy. Якщо перевірка оцінюється як хибна, вона завжди виконується відповідно до цих дій. Помилки, визначені FailurePolicy ValidatingAdmissionPolicy, виконуються відповідно до цих дій лише якщо FailurePolicy встановлено на Fail; в іншому випадку помилки ігноруються. Це включає помилки компіляції, помилки виконання та неправильні конфігурації політики. validationActions оголошується як набір значень дій. Порядок не має значення. validationActions не може містити дублікатів однієї й тієї ж дії.
Підтримувані значення дій:
"Deny" визначає, що у разі невдачі перевірки запит буде відхилено.
"Warn" визначає, що у разі невдачі перевірки клієнт запиту отримає повідомлення у заголовках HTTP Warning з кодом попередження 299. Попередження можуть надсилатися як для дозволених, так і для відхилених запитів.
"Audit" визначає, що у разі невдачі перевірки інформація буде включена до опублікованого аудиту події для запиту.
Подія аудиту міститиме анотацію аудиту validation.policy.admission.k8s.io/validation_failure зі значенням, що містить деталі невдач перевірки, відформатовані як список обʼєктів у форматі JSON, кожен з яких має наступні поля:
message: Рядок повідомлення про невдачу перевірки
policy: Назва ресурсу ValidatingAdmissionPolicy
binding: Назва ресурсу ValidatingAdmissionPolicyBinding
expressionIndex: Індекс невдалих перевірок у ValidatingAdmissionPolicy
validationActions: Заходи щодо забезпечення виконання, вжиті у зв’язку з невиконанням вимог щодо валідації
Клієнти повинні очікувати обробки додаткових значень, ігноруючи будь-які невідомі значення.
"Deny" та "Warn" не можуть використовуватися разом, оскільки ця комбінація безпідставно дублює невдачу перевірки як у тілі відповіді API, так і в заголовках HTTP Warning.
Обовʼязково.
ValidatingAdmissionPolicyBindingList
ValidatingAdmissionPolicyBindingList є списком ресурсів ValidatingAdmissionPolicyBinding.
POST /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обовʼязковим для запитів apply (application/apply-patch), але необовʼязковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicyBinding
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicyBinding
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingAdmissionPolicyBinding
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
ValidatingWebhook описує вебхуки допуску та ресурси і операції, до яких вони застосовуються.
Поле
Опис
admissionReviewVersions* string array
admissionReviewVersions є впорядкованим списком переважних версій `AdmissionReview`, які очікує вебхук. Сервер API спробує використовувати першу версію зі списку, яку він підтримує. Якщо жодна з версій, зазначених у цьому списку, не підтримується сервером API, перевірка цього обʼєкта завершиться невдачею. Якщо збережена конфігурація вебхука вказує дозволені версії і не включає жодної версії, відомої серверу API, виклики до вебхука завершаться невдачею і підпадатимуть під політику обробки помилок.
matchConditions є списком умов, які повинні бути виконані, щоб запит був надісланий цьому вебхуку. Умови відповідності фільтрують запити, які вже були відібрані за допомогою правил, namespaceSelector та objectSelector. Порожній список matchConditions відповідає всім запитам. Допускається максимум 64 умови відповідності.
Логіка точного збігу виглядає так (за порядком)
Якщо БУДЬ-ЯКА умова matchCondition має значення FALSE, вебхук пропускається.
Якщо ВСІ умови matchConditions мають значення TRUE, вебхук викликається.
Якщо будь-яка умова matchCondition має значення помилки (але жодна не має значення FALSE):
Якщо failurePolicy=Fail, запит відхиляється.
Якщо failurePolicy=Ignore, помилка ігнорується, і вебхук пропускається.
matchPolicy string
matchPolicy визначає, як список "rules" використовується для перевірки вхідних запитів. Дозволені значення: "Exact" або "Equivalent".
Exact: відповідність запиту лише у випадку точного збігу з вказаним правилом. Наприклад, якщо розгортання можна змінювати через apps/v1, apps/v1beta1 та extensions/v1beta1, але "rules" включає лише apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запит до apps/v1beta1 або extensions/v1beta1 не буде надіслано вебхуку.
Equivalent: відповідність запиту, якщо він змінює ресурс, зазначений у rules, навіть через іншу групу API або версію. Наприклад, якщо розгортання можна змінювати через apps/v1, apps/v1beta1 та extensions/v1beta1, і "rules" включає лише apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запит до apps/v1beta1 або extensions/v1beta1 буде перетворено на apps/v1 і надіслано вебхуку.
Стандартне значення — "Equivalent".
Можливі значення enum:
"Equivalent" означає, що запити повинні надсилатися вебхуку, якщо вони змінюють ресурс, зазначений у rules, через іншу групу API або версію.
"Exact" означає, що запити повинні надсилатися вебхуку лише у випадку точного збігу з вказаним правилом.
name* string
name є імʼям вебхуку допуску. Імʼя повинно бути повністю кваліфікованим, наприклад, imagepolicy.kubernetes.io, де "imagepolicy" є імʼям вебхуку, а kubernetes.io є імʼям організації. Обов'язково.
namespaceSelector вирішує, чи запускати вебхук на обʼєкті на основі того, чи відповідає простір імен цього обʼєкта селектору. Якщо обʼєкт сам є простором імен, відповідність перевіряється для object.metadata.labels. Якщо обʼєкт є іншим ресурсом з областю кластера, вебхук ніколи не пропускається.
Наприклад, щоб запускати вебхук на будь-яких обʼєктах, простір імен яких не повʼязаний з "runlevel" значенням "0" або "1", ви встановлюєте селектор наступним чином:
Наприклад, щоб запускати вебхук лише на обʼєктах, простір імен яких повʼязаний з "environment" значенням "prod" або "staging", ви встановлюєте селектор наступним чином:
objectSelector вирішує, чи запускати вебхук на обʼєкті на основі того, чи відповідає обʼєкт селектору міток. objectSelector оцінюється як для oldObject, так і для newObject, які будуть надіслані вебхуку, і вважається, що він відповідає, якщо будь-який з обʼєктів відповідає селектору. Null-обʼєкт (oldObject у випадку створення або newObject у випадку видалення) або обʼєкт, який не може мати мітки (наприклад, DeploymentRollback або PodProxyOptions), не вважається відповідним. Використовуйте objectSelector лише якщо вебхук є опціональним, оскільки кінцеві користувачі можуть пропустити вебхук, встановивши мітки. Стандартно використовується порожній LabelSelector, який відповідає всім обʼєктам.
rules визначає, які операції з якими ресурсами/субресурсами цікавлять вебхук. Вебхук реагує на операцію, якщо вона відповідає _будь-якому_ правилу. Однак, щоб запобігти тому, щоб ValidatingAdmissionWebhooks та MutatingAdmissionWebhooks перевели кластер у стан, з якого неможливо відновитися без повного вимкнення втулка, ValidatingAdmissionWebhooks та MutatingAdmissionWebhooks ніколи не викликаються для запитів на допуск для об’єктів ValidatingWebhookConfiguration та MutatingWebhookConfiguration.
sideEffects* string
sideEffects вказує, чи має цей вебхук має побічні ефекти. Допустимі значення: None, NoneOnDryRun (вебхуки, створені через v1beta1, також можуть вказувати Some або Unknown). Вебхуки з побічними ефектами МАЮТЬ реалізовувати систему узгодження, оскільки запит може бути відхилений на наступному кроці в ланцюжку допуску, і побічні ефекти потрібно буде скасувати. Запити з атрибутом dryRun будуть автоматично відхилені, якщо вони відповідають вебхуку з sideEffects == Unknown або Some
Можливі значення enum:
"None" означає, що виклик вебхуку не матиме побічних ефектів.
"NoneOnDryRun" означає, що виклик вебхуку може мати побічні ефекти, але якщо запит, що перевіряється, має атрибут dry-run, побічні ефекти будуть придушені.
"Some" означає, що виклик вебхуку може мати побічні ефекти. Якщо запит з атрибутом dry-run викличе цей вебхук, запит буде відхилено.
"Unknown" означає, що інформація про побічні ефекти виклику вебхуку відсутня. Якщо запит з атрибутом dry-run викличе цей вебхук, запит буде відхилено.
timeoutSeconds integer
timeoutSeconds визначає час очікування для цього вебхуку. Після закінчення часу очікування виклик вебхуку буде ігноровано або виклик API завершиться невдачею залежно від політики помилок. Значення часу очікування повинно бути між 1 і 30 секундами. Стандартно — 10 секунд.
Операції
post Create
HTTP Запит
POST /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingWebhookConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingWebhookConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ValidatingWebhookConfiguration
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
conversion визначає налаштування конверсії для CRD.
group* string
group є API групою визначеного власного ресурсу. Власні ресурси обслуговуються як /apis/\/.... Повинно відповідати імені CustomResourceDefinition (у формі \.\).
names визначає імена ресурсу та типи для власного ресурсу.
preserveUnknownFields boolean
preserveUnknownFields показує як поля обʼєкта, які не вказані в схемі OpenAPI, повинні зберігатися при збереженні в сховище. apiVersion, kind, metadata та відомі поля всередині metadata завжди зберігаються. Це поле визнане застарілим на користь встановлення x-preserve-unknown-fields в true в spec.versions[*].schema.openAPIV3Schema. Деталі див. на https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning.
scope* string
scope показує, чи визначений власний ресурс є кластерним або просторово обмеженим. Дозволені значення: Cluster та Namespaced.
versions є списком усіх версій API визначеного власного ресурсу. Імена версій використовуються для обчислення порядку, у якому обслуговувані версії відображаються в API discovery. Якщо рядок версії є "kube-подібний", він буде сортуватися вище за не "kube-подібні" рядки версій, які впорядковуються лексикографічно. "Kube-подібні" версії починаються з "v", потім слідує число (основна версія), потім необовʼязково рядок "alpha" або "beta" і ще одне число (додаткова версія). Вони сортуються спочатку за GA > beta > alpha (де GA — це версія без суфікса, такого як beta або alpha), а потім за порівнянням основної версії, потім додаткової версії. Приклад відсортованого списку версій: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
CustomResourceDefinitionStatus
CustomResourceDefinitionStatus показує стан CustomResourceDefinition
conditions показують стан для конкретних аспектів CustomResourceDefinition
observedGeneration integer
observedGeneration показує покоління, яке спостерігає контролер CRD.
storedVersions string array
storedVersions містить усі версії CustomResources, які коли-небудь зберігалися. Відстеження цих версій дозволяє створити шлях міграції для збережених версій у etcd. Поле є змінним, щоб контролер міграції міг завершити міграцію на іншу версію (забезпечуючи, що старі обʼєкти не залишаються в сховищі), а потім видалити решту версій із цього списку. Версії не можуть бути видалені з spec.versions, поки вони існують у цьому списку.
CustomResourceDefinitionList
CustomResourceDefinitionList є списком CustomResourceDefinition objects.
jsonPath є простим шляхом JSON (тобто з нотацією масиву), який оцінюється для кожного користувацького ресурсу, щоб отримати значення для цього стовпця.
name* string
name є зрозумілим для людини імʼям цього стовпця.
priority integer
priority є цілим числом, що визначає відносну важливість цього стовпця порівняно з іншими. Менші числа вважаються більш пріоритетними. Стовпці, які можуть бути опущені в умовах обмеженого простору, повинні мати пріоритет більше 0.
CustomResourceConversion описує, як конвертувати різні версії CR.
Поле
Опис
strategy* string
strategy визначає, як конвертувати власні ресурси між версіями. Дозволені значення:
"None": Конвертер лише змінює apiVersion і не торкається жодного іншого поля у власному ресурсі.
"Webhook": API Server викликає зовнішній вебхук для виконання конвертації. Для цього варіанту потрібна додаткова інформація. Це вимагає, щоб spec.preserveUnknownFields було false, а spec.conversion.webhook було встановлено.
lastTransitionTime — це останній час, коли стан перейшов з одного стану в інший.
message string
message — це повідомлення, зрозуміле людині, яке вказує деталі щодо переходу. Це може бути порожній рядок.
observedGeneration integer
observedGeneration представляє .metadata.generation, на основі якого була встановлено стан. Наприклад, якщо .metadata.generation наразі 12, але .status.conditions[x].observedGeneration дорівнює 9, стан застарів щодо поточного стану екземпляра.
reason string
reason є унікальним, однослівним описом у форматі CamelCase, що пояснює причину останнього переходу стану
status* string
status є станом статусу. Може бути True, False, Unknown.
type* string
type є типом стану. Типи включають Established, NamesAccepted та Terminating.
CustomResourceDefinitionNames
CustomResourceDefinitionNames вказує імена для обслуговування цього CustomResourceDefinition
Поле
Опис
categories string array
categories є списком згрупованих ресурсів, до яких належить цей власний ресурс (наприклад, 'all'). Публікується в документах відкриття API і використовується клієнтами для підтримки викликів, таких як kubectl get all.
kind* string
kind є серіалізованим типом ресурсу. Зазвичай він у форматі CamelCase і в однині. Екземпляри власного ресурсу використовуватимуть це значення як атрибут kind у викликах API.
listKind string
listKind є серіалізованим типом списку для цього ресурсу. Зазвичай "kindList".
plural* string
plural є назвою ресурсу у множині для обслуговування. Власні ресурси обслуговуються за адресою /apis/\/\/.../\. Має відповідати назві CustomResourceDefinition (у формі \.\). Все має бути літерами нижнього регістру.
shortNames string array
shortNames є короткими іменами для ресурсу, які публікуються в документах відкриття API і використовуються клієнтами для підтримки викликів, таких як kubectl get \. Все має бути літерами нижнього регістру.
singular string
singular є одниною назви ресурсу. Все має бути літерами нижнього регістру. Стандартно використовується нижній регістр kind.
CustomResourceDefinitionVersion
CustomResourceDefinitionVersion описує версію для CRD.
deprecated вказує, що ця версія API власного ресурсу застаріла. Якщо встановлено значення true, запити до цієї версії отримують заголовок попередження у відповіді сервера. Стандартно — false.
deprecationWarning string
deprecationWarning перевизначає стандартне попередження, яке повертається клієнтам API. Може бути встановлено лише тоді, коли deprecated дорівнює true. Стандартне попередження вказує, що ця версія застаріла, і рекомендує використовувати найновішу обслуговувану версію з рівною або більшою стабільністю, якщо така існує.
name* string
name є назвою версії, наприклад “v1”, “v2beta1” тощо. Власні ресурси обслуговуються під цією версією за адресою /apis/\/\/..., якщо served дорівнює true.
selectableFields вказує шляхи до полів, які можуть використовуватися як селектори полів. Дозволяється максимум 8 вибіркових полів. Див. документаціюhttps://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors
.
served* boolean
served є прапорцем, який дозволяє або забороняє обслуговування цієї версії через REST API
storage* boolean
storage вказує, що ця версія повинна використовуватися при збереженні власних ресурсів у сховищі. Має бути рівно одна версія з storage=true.
subresources вказує, які субресурси має ця версія визначеного власного ресурсу.
CustomResourceSubresourceScale
CustomResourceSubresourceScale визначає, як обслуговувати субресурс scale для власних ресурсів.
Поле
Опис
labelSelectorPath string
labelSelectorPath визначає шлях JSON всередині власного ресурсу, який відповідає Scale status.selector. Дозволяються лише шляхи JSON без нотації масиву. Має бути шлях JSON під .status або .spec. Має бути встановлено для роботи з HorizontalPodAutoscaler. Поле, на яке вказує цей шлях JSON, має бути рядковим полем (не складною структурою селектора), яке містить серіалізований селектор міток у вигляді рядка. Більше інформації: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource Якщо під заданим шляхом у власному ресурсі немає значення, значення status.selector у субресурсі /scale за замовчуванням буде порожнім рядком.
specReplicasPath* string
specReplicasPath визначає шлях JSON всередині власного ресурсу, який відповідає Scale spec.replicas. Дозволяються лише шляхи JSON без нотації масиву. Має бути шлях JSON під .spec. Якщо під заданим шляхом у власному ресурсі немає значення, субресурс /scale поверне помилку при GET.
statusReplicasPath* string
statusReplicasPath визначає шлях JSON всередині власного ресурсу, який відповідає Scale status.replicas. Дозволяються лише шляхи JSON без нотації масиву. Має бути шлях JSON під .status. Якщо під заданим шляхом у власному ресурсі немає значення, значення status.replicas у підресурсі /scale за замовчуванням буде 0.
CustomResourceSubresourceStatus
CustomResourceSubresourceStatus визначає, як обслуговувати субресурс статусу для власних ресурсів. Статус представлений шляхом JSON .status всередині власного ресурсу. Коли встановлено, * відкриває субресурс /status для власного ресурсу * PUT-запити до субресурсу /status приймають обʼєкт власного ресурсу і ігнорують зміни всього, крім секції статусу * PUT/POST/PATCH-запити до власного ресурсу ігнорують зміни секції статусу
CustomResourceSubresources
CustomResourceSubresources визначає, як обслуговувати субресурси статусу та масштабу для власних ресурсів.
default є стандартним значенням для невизначених полів обʼєкта. Defaulting є бета-функцією під керуванням функціональної можливості CustomResourceDefaulting. Defaulting вимагає, щоб spec.preserveUnknownFields було false.
x-kubernetes-embedded-resource визнає, що значення є вбудованим Kubernetes runtime.Object, з TypeMeta та ObjectMeta. Тип повинен бути object. Дозволяється додатково обмежувати вбудований обʼєкт. kind, apiVersion та metadata перевіряються автоматично. x-kubernetes-preserve-unknown-fields дозволяється встановлювати в true, але не обовʼязково, якщо обʼєкт повністю визначений (до kind, apiVersion, metadata).
x-kubernetes-int-or-string boolean
x-kubernetes-int-or-string визначає, що це значення є або цілим числом, або рядком. Якщо це true, дозволяється порожній тип, і тип як дочірній елемент anyOf дозволяється, якщо дотримано один із наступних шаблонів:
anyOf:
type: integer
type: string
allOf:
anyOf:
type: integer
type: string
x-kubernetes-list-map-keys string array
x-kubernetes-list-map-keys додає анотацію до масиву з типом x-kubernetes-list-type map, вказуючи ключі, що використовуються як індекси мапи. Цей тег ПОВИНЕН використовуватися лише для списків, у яких для розширення "x-kubernetes-list-type" встановлено значення "map". Крім того, значення, вказані для цього атрибута, повинні бути полем скалярного типу дочірньої структури (вкладеність не підтримується). Вказані властивості повинні бути обов’язковими або мати стандартне значення, щоб гарантувати їх наявність для всіх елементів списку.
x-kubernetes-list-type string
x-kubernetes-list-type додає анотацію до масиву, щоб детальніше описати його топологію. Це розширення повинно використовуватися лише для списків і може мати 3 можливі значення:
atomic: список обробляється як єдиний обʼєкт, подібно до скаляра. Атомарні списки будуть повністю замінені при оновленні. Це розширення може використовуватися для будь-якого типу списку (структура, скаляр тощо).
set: Множини — це списки, які не повинні мати кілька елементів з однаковим значенням. Кожне значення повинно бути скаляром, обʼєктом з x-kubernetes-map-type atomic або масивом з x-kubernetes-list-type atomic.
map: Ці списки схожі на мапи тим, що їх елементи мають неіндексований ключ, який використовується для їх ідентифікації. Порядок зберігається при обʼєднанні. Тег map повинен використовуватися лише для списків з елементами типу обʼєкт. Стандартно для масивів використовується atomic.
x-kubernetes-map-type string
x-kubernetes-map-type додає анотацію до обʼєкта, щоб детальніше описати його топологію. Це розширення повинно використовуватися лише тоді, коли тип обʼєкта є object, і може мати 2 можливі значення:
granular: Ці мапи є фактичними мапами (пари ключ-значення), і кожне поле є незалежним від інших (вони можуть бути оброблені окремими акторами). Це стандартна поведінка для всіх мап.
atomic: мапа обробляється як єдиний обʼєкт, подібно до скаляра. Атомарні мапи будуть повністю замінені при оновленні.
x-kubernetes-preserve-unknown-fields boolean
x-kubernetes-preserve-unknown-fields зупиняє крок декодування API-сервера від обрізання полів, які не вказані в схемі валідації. Це впливає на поля рекурсивно, але повертає нормальну поведінку обрізання, якщо в схемі вказані вкладені властивості або additionalProperties. Може бути true або undefined. False заборонено.
x-kubernetes-validations ValidationRule array patch strategy: злиття за ключем rule
x-kubernetes-validations описує список правил валідації, написаних мовою виразів CEL.
JSONSchemaPropsOrArray
JSONSchemaPropsOrArray представляє значення, яке може бути або JSONSchemaProps, або масивом JSONSchemaProps. В основному використовується для цілей серіалізації.
JSONSchemaPropsOrBool
JSONSchemaPropsOrBool представляє JSONSchemaProps або булеве значення. За замовчуванням для булевого властивості встановлено true.
SelectableField
SelectableField вказує шлях JSON до поля, яке може використовуватися з селекторами полів.
Поле
Опис
jsonPath* string
jsonPath — це простий JSON шлях, який оцінюється для кожного власного ресурсу, щоб отримати значення селектора поля. Дозволені лише JSON шляхи без нотації масиву. Повинен вказувати на поле типу string, boolean або integer. Дозволені типи з enum значеннями та рядки з форматами. Якщо jsonPath посилається на відсутнє поле в ресурсі, jsonPath оцінюється як порожній рядок. Не повинен вказувати на поля метаданих. Обовʼязково.
ServiceReference
ServiceReference містить посилання на Service.legacy.k8s.io
Поле
Опис
name* string
name — це імʼя сервісу. Обовʼязково.
namespace* string
namespace — це простір імен сервісу. Обовʼязково.
path string
path — це необовʼязковий URL шлях, за яким буде звертатися вебхук.
port integer
port — це необовʼязковий порт сервісу, за яким буде звертатися вебхук. port повинен бути дійсним номером порту (1-65535, включно). Стандартно використовується 443 для зворотної сумісності.
ValidationRule
ValidationRule описує правило валідації, написане мовою виразів CEL.
Поле
Опис
fieldPath string
fieldPath представляє шлях до поля, який повертається, коли валідація не проходить. Він повинен бути відносним JSON шляхом (тобто з нотацією масиву), обмеженим до місця розташування цього розширення x-kubernetes-validations у схемі, і посилатися на наявне поле. Наприклад, коли валідація перевіряє, чи конкретний атрибут foo присутній у мапі testMap, fieldPath може бути встановлений на .testMap.foo. Якщо перевірка передбачає, що два списки повинні містити унікальні атрибути, для параметра fieldPath можна вказати будь-який із цих списків: наприклад, .testList. Не підтримує числовий індекс списку. Підтримує операцію дочірнього елемента для посилання на наявне поле. Див. Підтримка JSONPath у Kubernetes для отримання додаткової інформації. Числовий індекс масиву не підтримується. Для імен полів, які містять спеціальні символи, використовуйте ['specialName'] для посилання на імʼя поля. Наприклад, для атрибута foo.34$, який зʼявляється у списку testList, fieldPath може бути встановлений на .testList['foo.34$']
message string
Message представляє повідомлення, яке показується, коли валідація не проходить. Повідомлення є обовʼязковим, якщо правило містить розриви рядків. Повідомлення не повинно містити розриви рядків. Якщо не встановлено, повідомлення буде "failed rule: {Rule}". Наприклад: "must be a URL with the host matching spec.host"
messageExpression string
MessageExpression оголошує вираз CEL, який оцінюється як повідомлення про помилку валідації, що повертається, коли це правило не проходить. Оскільки messageExpression використовується як повідомлення про помилку, воно повинно оцінюватися як рядок. Якщо обидва поля message і messageExpression присутні в правилі, то messageExpression буде використано у разі невдачі валідації. Якщо messageExpression призводить до помилки виконання, помилка виконання реєструється, а повідомлення про помилку валідації генерується так, ніби поле messageExpression не встановлено. Якщо messageExpression оцінюється як порожній рядок, рядок, що містить лише пробіли, або рядок, що містить розриви рядків, то повідомлення про помилку валідації також генерується так, ніби поле messageExpression не встановлено, і факт, що messageExpression призвело до порожнього рядка/рядка з лише пробілами/рядка з розривами рядків, буде зареєстровано. messageExpression має доступ до всіх тих самих змінних, що й правило; єдина різниця — тип, що повертається. Приклад: "x must be less than max ("+string(self.max)+")"
optionalOldSelf boolean
optionalOldSelf використовується для включення правила переходу в обчислення навіть під час першого створення об’єкта або якщо старий об’єкт не містить значення. Якщо ця опція увімкнена, oldSelf буде опціональним елементом CEL, значення якого дорівнюватиме None, якщо старе значення відсутнє або якщо об’єкт створюється вперше. Ви можете перевірити наявність oldSelf за допомогою oldSelf.hasValue() і розпакувати його після перевірки за допомогою oldSelf.value(). Докладнішу інформацію дивіться в документації CEL щодо типів Optional: https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes Не може бути встановлено, якщо oldSelf не використовується в rule.
reason string
reason надає придатну для машинного зчитування причину помилки перевірки, яка повертається абоненту, коли запит не відповідає цьому правилу перевірки. Код статусу HTTP, що повертається абоненту, відповідатиме причині першого правила перевірки, яке не пройшло перевірку. Наразі підтримуються такі причини: "FieldValueInvalid", "FieldValueForbidden", "FieldValueRequired", "FieldValueDuplicate". Якщо цей параметр не вказано, за замовчуванням використовується "FieldValueInvalid". Усі причини, додані в майбутньому, повинні бути прийняті клієнтами під час зчитування цього значення, а невідомі причини слід розглядати як FieldValueInvalid.
Можливі значення enum:
"FieldValueDuplicate" використовується для повідомлення про конфлікти значень, які мають бути унікальними (наприклад, унікальні ідентифікатори).
"FieldValueForbidden" використовується для повідомлення про валідні (відповідно до правил форматування) значення, які будуть прийняті за певних умова, але які не дозволені поточними умовами (такими як політики бузпеки).
"FieldValueInvalid" використовується для повідомлення про спотворені значення (напр. збій регулярного виразу, дуже довгі, поза межами).
"FieldValueRequired" використовується для повідомлення про потрібні значення які не були надані (напр. порожні рядкі, значення null або порожні масиви).
Rule поширюється на місце розташування розширення x-kubernetes-validations у схемі. Змінна self у виразі CEL привʼязана до значення, визначеного в цій області.
Наприклад правило, яке поширюється на корінь ресурсу з субресурсом статусу:
Якщо правило поширюється на обʼєкт з властивостями, доступні властивості обʼєкта можна вибирати за допомогою self.field, а наявність поля можна перевірити за допомогою has(self.field). Поля зі значенням null вважаються відсутніми в виразах CEL.
Якщо правило поширюється на обʼєкт з додатковими властивостями (тобто на мапу), значення мапи доступні через self[mapKey], наявність ключа в мапі можна перевірити через mapKey in self, а всі записи мапи доступні через макроси та функції CEL, такі як self.all(...).
Якщо правило поширюється на масив, елементи масиву доступні через self[i] і також через макроси та функції.
Якщо правило поширюється на скалярне значення, self привʼязане до скалярного значення.
Приклади:
Правило, яке поширюється на мапу обʼєктів: {"rule": "self.components['Widget'].priority \< 10"}
Правило, яке поширюється на список цілих чисел: {"rule": "self.values.all(value, value >= 0 && value \< 100)"}
Правило, яке поширюється на рядкове значення: {"rule": "self.startsWith('kube')"}
apiVersion, kind, metadata.name та metadata.generateName завжди доступні з кореня обʼєкта та з будь-яких обʼєктів, анотованих як x-kubernetes-embedded-resource. Жодні інші властивості метаданих недоступні.
Невідомі дані, збережені у власних ресурсах через x-kubernetes-preserve-unknown-fields, недоступні у виразах CEL. Це включає:
Невідомі значення полів, які зберігаються схемами обʼєктів з x-kubernetes-preserve-unknown-fields.
Властивості обʼєктів, де схема властивості є "невідомого типу". "Невідомий тип" визначається рекурсивно як:
Схема без типу і з x-kubernetes-preserve-unknown-fields, встановленим у true.
Масив, де схема елементів є "невідомого типу".
Обʼєкт, де схема additionalProperties є "невідомого типу".
Лише імена властивостей у формі [a-zA-Z_.-/][a-zA-Z0-9_.-/]* доступні.
Доступні імена властивостей екрануються відповідно до наступних правил при доступі у виразі:
'__' екранується як '__underscores__'.
'.' екранується як '__dot__'.
'-' екранується як '__dash__'.
'/' екранується як '__slash__'.
Імена властивостей, які точно збігаються з зарезервованим ключовим словом CEL, екрануються як '__{keyword}__'.
Правило, яке отримує доступ до властивості з ім'ям "namespace": {"rule": "self.__namespace__ > 0"}
Правило, яке отримує доступ до властивості з ім'ям "x-prop": {"rule": "self.x__dash__prop > 0"}
Правило, яке отримує доступ до властивості з ім'ям "redact__d": {"rule": "self.redact__underscores__d > 0"}
Рівність масивів з x-kubernetes-list-type 'set' або 'map' ігнорує порядок елементів, тобто [1, 2] == [2, 1].
Конкатенація масивів з x-kubernetes-list-type використовує семантику типу списку:
'set': X + Y виконує обʼєднання, де зберігаються позиції всіх елементів у X, а неперетинаючі елементи з Y додаються, зберігаючи їх частковий порядок.
'map': X + Y виконує злиття, де зберігаються позиції всіх ключів у X, але значення перезаписуються значеннями з Y, коли множини ключів X і Y перетинаються. Елементи в Y з неперетинаючими ключами додаються, зберігаючи їх частковий порядок.
Якщо rule використовує змінну oldSelf, вона неявно є transition rule.
Стандартно змінна oldSelf має той самий тип, що й self. Коли optionalOldSelf встановлено в true, змінна oldSelf є CEL optional змінною, значення якої value() має той самий тип, що й self. Див. документацію для поля optionalOldSelf для деталей.
Правила переходу стандартно застосовуються лише до запитів UPDATE і пропускаються, якщо старе значення не знайдено. Ви можете зробити правило переходу безумовним, встановивши optionalOldSelf в true.
WebhookClientConfig
WebhookClientConfig містить інформацію для встановлення TLS-зʼєднання з вебхуком.
Поле
Опис
caBundle string
caBundle є PEM закодованим CA-пакунком, який буде використаний для перевірки сертифіката сервера вебхука. Якщо не вказано, використовуються системні кореневі довірчі сертифікати на apiserver.
service є посиланням на сервіс для цього вебхука. Має бути вказано або service, або url. Якщо вебхук працює всередині кластера, слід використовувати service.
url string
url дає місцезнаходження вебхука у стандартній формі URL (scheme://host:port/path). Має бути вказано лише одне з полів url або service. Поле host не повинно посилатися на сервіс, що працює в кластері; замість цього слід використовувати поле service. Хост може бути визначений через зовнішній DNS в деяких apiserver (наприклад, kube-apiserver не може визначати внутрішній DNS кластера, оскільки це порушило б шарову архітектуру). host також може бути IP-адресою. Зверніть увагу, що використання localhost або 127.0.0.1 як host є ризикованим, якщо ви не забезпечите запуск цього вебхука на всіх хостах, які запускають apiserver і можуть потребувати викликів до цього вебхука. Такі установки, ймовірно, будуть непереносимими, тобто їх буде важко розгорнути в новому кластері. Схема повинна бути "https"; URL повинен починатися з "https://". Шлях є необовʼязковим, і якщо він присутній, може бути будь-яким рядком, допустимим у URL. Ви можете використовувати шлях для передачі довільного рядка вебхуку, наприклад, ідентифікатора кластера. Використання користувача або базової автентифікації, наприклад "user:password@", не дозволяється. Фрагменти ("#...") та параметри запиту ("?...") також не дозволяються.
WebhookConversion
WebhookConversion описує, як викликати вебхук для конверсії
clientConfig містить інструкції щодо виклику вебхука, якщо стратегія встановлена на Webhook.
conversionReviewVersions* string array
conversionReviewVersions є впорядкованим списком переважних версій ConversionReview, які очікує вебхук. API-сервер використовуватиме першу версію зі списку, яку він підтримує. Якщо жодна з версій, зазначених у цьому списку, не підтримується API-сервером, конверсія для власного ресурсу не вдасться. Якщо збережена конфігурація вебхука вказує дозволені версії і не включає жодної версії, відомої API-серверу, виклики до вебхука не вдасться.
Операції
post Create
HTTP Запит
POST /apis/apiextensions.k8s.io/v1/customresourcedefinitions
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CustomResourceDefinition
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CustomResourceDefinition
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CustomResourceDefinition
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва CustomResourceDefinition
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва CustomResourceDefinition
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
APIServiceSpec містить інформацію для знаходження та взаємодії з сервером. Підтримується лише https, хоча ви можете вимкнути перевірку сертифіката.
Поле
Опис
caBundle string
caBundle — це PEM-кодований CA-пакунок, який буде використаний для перевірки сертифіката сервера вебхука. Якщо не вказано, використовуються системні кореневі сертифікати на apiserver.
group string
Group — це назва API-групи, яку обслуговує цей сервер
groupPriorityMinimum* integer
GroupPriorityMinimum — це мінімальний пріоритет, який повинна мати ця група. Вищий пріоритет означає, що клієнти віддають перевагу цій групі перед групами з нижчим пріоритетом. Зверніть увагу, що інші версії цієї групи можуть мати ще вищі значення GroupPriorityMinimum, завдяки чому вся група отримає вищий пріоритет. Первинне сортування здійснюється за GroupPriorityMinimum у порядку від найбільшого до найменшого значення (20 перед 10). Вторинне сортування базується на алфавітному порівнянні імені об’єкта. (v1.bar перед v1.foo) Ми рекомендуємо щось на зразок: *.k8s.io (крім розширень) на 18000, а PaaS (OpenShift, Deis) рекомендується розміщувати в діапазоні 2000s
insecureSkipTLSVerify boolean
InsecureSkipTLSVerify вимикає перевірку сертифіката TLS при взаємодії з цим сервером. Це категорично не рекомендується. Ви повинні використовувати caBundle замість цього.
Service — це посилання на сервіс для цього API-сервера. Він повинен спілкуватися на порту 443. Якщо Service дорівнює nil, це означає, що обробка для групи версій API обробляється локально на цьому сервері. Виклик просто делегує до нормального ланцюга обробників для виконання.
version string
Version — це версія API, яку обслуговує цей сервер. Наприклад, "v1"
versionPriority* integer
VersionPriority контролює порядок цієї версії API всередині її групи. Має бути більше нуля. Первинне сортування здійснюється за VersionPriority у порядку від найбільшого до найменшого значення (20 перед 10). Оскільки це всередині групи, число може бути невеликим, ймовірно в діапазоні 10. У разі однакових пріоритетів версій, рядок версії буде використаний для обчислення порядку всередині групи. Якщо рядок версії є "kube-подібний", він буде сортуватися вище за не "kube-подібні" рядки версій, які впорядковуються лексикографічно. "Kube-подібні" версії починаються з "v", потім слідує число (основна версія), потім необов'язково рядок "alpha" або "beta" і ще одне число (допоміжна версія). Вони сортуються спочатку за GA > beta > alpha (де GA є версією без суфікса, такого як beta або alpha), а потім за порівнянням основної версії, потім допоміжної версії. Приклад відсортованого списку версій: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
APIServiceStatus
APIServiceStatus містить похідну інформацію про API-сервер
Останній раз стан перейшов з одного рівня в інший.
message string
Зрозуміле людині повідомлення, що вказує на деталі останнього переходу стану.
reason string
Унікальна, однословна, CamelCase причина останнього переходу стану.
status* string
Status є статусом стану. Може бути True, False, Unknown.
type* string
Type є типом стану.
ServiceReference
ServiceReference містить посилання на Service.legacy.k8s.io
Поле
Опис
name string
Name є імʼям сервісу
namespace string
Namespace є простором імен сервісу
port integer
Якщо вказано, порт на сервісі, який хостить вебхук. Стандартно 443 для зворотної сумісності. port повинен бути дійсним номером порту (1-65535, включно).
Операції
post Create
HTTP Запит
POST /apis/apiregistration.k8s.io/v1/apiservices
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/apiregistration.k8s.io/v1/apiservices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
назва APIService
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apiregistration.k8s.io/v1/apiservices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва APIService
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apiregistration.k8s.io/v1/watch/apiservices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
назва APIService
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apiregistration.k8s.io/v1/watch/apiservices
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/apiregistration.k8s.io/v1/apiservices/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва APIService
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apiregistration.k8s.io/v1/apiservices/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва APIService
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
status визначає версію, яку екземпляр API сервера може декодувати та кодувати обʼєкти при збереженні їх у бекенді.
StorageVersionSpec
StorageVersionSpec визначає порожню специфікацію.
StorageVersionStatus
Екземпляри API сервера повідомляють про версії, які вони можуть декодувати, та версію, в яку вони кодують обʼєкти при збереженні їх у бекенді.
Поле
Опис
commonEncodingVersion string
commonEncodingVersion встановлюється на версію кодування сховища, якщо всі екземпляри API сервера використовують одну й ту ж версію. Якщо вони не використовують одну версію сховища, це поле залишається порожнім. API сервери повинні завершити оновлення свого запису storageVersionStatus перед обслуговуванням операцій запису, щоб це поле було синхронізоване з реальністю.
Екземпляр API сервера повідомляє про версію, яку він може декодувати, та версію, в яку він кодує обʼєкти при збереженні їх у бекенді.
Поле
Опис
apiServerID* string
apiServerID це ідентифікатор API сервера, який повідомляє про версію.
decodableVersions* string array
decodableVersions це версії кодування, які API сервер може обробляти для декодування. API сервер може декодувати обʼєкти, закодовані в цих версіях. encodingVersion має бути включена до decodableVersions.
encodingVersion* string
encodingVersion це версія, в яку API сервер кодує обʼєкт при збереженні його в бекенді (наприклад, etcd).
servedVersions string array
servedVersions виводить список всіх версій, які API сервер може обслуговувати. DecodableVersions має включати всі ServedVersions.
lastTransitionTime це останній час, коли статус стану змінився з одного на інший.
message* string
message це рядок, зрозумілий людині, що вказує на деталі переходу.
observedGeneration integer
observedGeneration представляє .metadata.generation, на основі якої було встановлено умову, якщо поле встановлено.
reason* string
reason для останнього переходу умови.
status* string
status стану, одне з True, False, Unknown.
type* string
type стану.
Операції
post Create
HTTP Запит
POST /apis/internal.apiserver.k8s.io/v1alpha1/storageversions
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
<
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надіслати попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надіслати попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersion
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
<
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надіслати попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersion
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/internal.apiserver.k8s.io/v1alpha1/storageversions
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/internal.apiserver.k8s.io/v1alpha1/watch/storageversions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersion
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/internal.apiserver.k8s.io/v1alpha1/watch/storageversions
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
<
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надіслати попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersion
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersion
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
<
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надіслати попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
ControllerRevision реалізує незмінну знімку стану даних. Клієнти відповідають за серіалізацію та десеріалізацію обʼєктів, що містять їх внутрішній стан. Після успішного створення ControllerRevision його не можна оновити. API Server відхилить всі запити, які намагаються змінити поле Data. Однак ControllerRevisions можуть бути видалені. Зверніть увагу, що через його використання як контролерами DaemonSet, так і StatefulSet для оновлення та відкату, цей обʼєкт є бета-версією. Однак він може зазнати змін у назві та представленні в майбутніх випусках, і клієнти не повинні залежати від його стабільності. Він призначений переважно для внутрішнього використання контролерами.
apiVersion: apps/v1
import "k8s.io/api/apps/v1"
ControllerRevision
ControllerRevision реалізує незмінну знімку стану даних. Клієнти відповідають за серіалізацію та десеріалізацію обʼєктів, що містять їх внутрішній стан. Після успішного створення ControllerRevision його не можна оновити. API Server відхилить всі запити, які намагаються змінити поле Data. Однак ControllerRevisions можуть бути видалені. Зверніть увагу, що через його використання як контролерами DaemonSet, так і StatefulSet для оновлення та відкату, цей обʼєкт є бета-версією. Однак він може зазнати змін у назві та представленні в майбутніх випусках, і клієнти не повинні залежати від його стабільності. Він призначений переважно для внутрішнього використання контролерами.
POST /apis/apps/v1/namespaces/{namespace}/controllerrevisions
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ControllerRevision
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва простору імен та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ControllerRevision
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/apps/v1/namespaces/{namespace}/controllerrevisions
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}
Параметри шляху
Назва
Тип
Опис
name
string
назва ControllerRevision
namespace
string
назва обʼєкта та область автентифікації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions
Параметри шляху
Назва
Тип
Опис
namespace
string
назва обʼєкта та область автентифікації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Мінімальна кількість секунд, протягом яких новостворений под DaemonSet повинен бути готовий без аварійного завершення будь-якого з його контейнерів, щоб вважатися доступним. Стандартно — 0 (под вважається доступним, як тільки він готовий).
revisionHistoryLimit integer
Кількість старих версій, які слід зберігати для можливості відкату. Це вказівник, щоб відрізнити явне нульове значення від не вказаного. Стандартно — 10.
Обʼєкт, який описує под, який буде створено. Набір демонів створить точно одну копію цього поду на кожному вузлі, який відповідає селектору вузла шаблону (або на кожному вузлі, якщо селектор вузла не вказано). Єдине дозволене значення template.spec.restartPolicy — "Always". Детальніше: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
Стратегія оновлення для заміни наявних подів DaemonSet новими подами.
DaemonSetStatus
DaemonSetStatus представляє поточний стан набору демонів.
Поле
Опис
collisionCount integer
Кількість колізій хешів для набору демонів. Контролер набору демонів використовує це поле як механізм уникнення колізій, коли потрібно створити імʼя для найновішого ControllerRevision.
Параметри конфігурації поступового оновлення. Присутні лише якщо type = "RollingUpdate".
rollingUpdate.maxSurge
Максимальна кількість вузлів з наявним доступним подом DaemonSet, які можуть мати оновлений под DaemonSet під час оновлення. Значення може бути абсолютним числом (наприклад: 5) або відсотком від бажаної кількості подів (наприклад: 10%). Це не може бути 0, якщо MaxUnavailable дорівнює 0. Абсолютне число обчислюється з відсотка, округлюючи вгору до мінімуму 1. Стандартне значення — 0. Наприклад: коли це встановлено на 30%, максимум 30% від загальної кількості вузлів, які повинні запускати демон-под (тобто status.desiredNumberScheduled), можуть мати створений новий под перед тим, як старий под буде позначений як видалений. Оновлення починається з запуску нових подів на 30% вузлів. Після того як оновлений под стає доступним (Ready принаймні minReadySeconds), старий под DaemonSet на цьому вузлі позначається як видалений. Якщо старий под стає недоступним з будь-якої причини (Ready переходить у false, він виселяється або очищається), оновлений под негайно створюється на цьому вузлі без урахування обмежень на надлишок. Дозвіл на пікове навантаження передбачає можливість того, що обсяг ресурсів, які споживає набір демонів на будь-якому вузлі, може подвоїтися у разі невдалої перевірки готовності; отже, набори демонів, що вимагають значних ресурсів, повинні враховувати, що вони можуть спричинити витіснення під час розладів.
rollingUpdate.maxUnavailable
Максимальна кількість подів DaemonSet, які можуть бути недоступними під час оновлення. Значення може бути абсолютним числом (наприклад: 5) або відсотком від загальної кількості подів DaemonSet на початку оновлення (наприклад: 10%). Абсолютне число обчислюється з відсотка, округлюючи вгору. Це не може бути 0, якщо MaxSurge дорівнює 0. Стандартне значення — 1. Наприклад: коли це встановлено на 30%, максимум 30% від загальної кількості вузлів, які повинні запускати демон-под (тобто status.desiredNumberScheduled), можуть мати свої поди зупинені для оновлення в будь-який момент часу. Оновлення починається з зупинки максимум 30% цих подів DaemonSet, а потім запускає нові поди DaemonSet на їх місце. Після того як нові поди стають доступними, процес переходить до інших подів DaemonSet, забезпечуючи, що принаймні 70% від початкової кількості подів DaemonSet доступні протягом усього оновлення.
type string
Тип оновлення набору демонів. Може бути "RollingUpdate" або "OnDelete". Стандартно використовується RollingUpdate.
Можливі значення enum:
`"OnDelete"` Замінює старі демони лише тоді, коли вони вбиваються
`"RollingUpdate"` Замінює старі демони новими за допомогою поступового оновлення, тобто замінює їх на кожному вузлі один за одним.
Операції
post Create
HTTP Запит
POST /apis/apps/v1/namespaces/{namespace}/daemonsets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва DaemonSet
namespace
string
Імʼя обʼєкта та область автентифікації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Імʼя обʼєкта та область автентифікації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва DaemonSet
namespace
string
Назва обʼєкта та область автентифікації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/apps/v1/namespaces/{namespace}/daemonsets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область автентифікації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
назва DaemonSet
namespace
string
назва простору імен та область автентифікації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/daemonsets
Параметри шляху
Назва
Тип
Опис
namespace
string
назва простору імен та область автентифікації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле є обов'язковим для запитів apply (application/apply-patch), але необов'язковим для інших типів патчів (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва DaemonSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва DaemonSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд та проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
DeploymentSpec це специфікація бажаної поведінки Deployment.
Поле
Опис
minReadySeconds integer
Мінімальна кількість секунд, протягом яких новостворений под DaemonSet повинен бути готовий без аварійного завершення будь-якого з його контейнерів, щоб вважатися доступним. Стандартно — 0 (под вважається доступним, як тільки він готовий).
paused boolean
Вказує, що розгортання призупинено.
progressDeadlineSeconds integer
Максимальний час у секундах, протягом якого розгортання повинно працювати, перш ніж вважатися невдалим. Контролер розгортання продовжуватиме обробляти невдалі розгортання, і стан з причиною ProgressDeadlineExceeded буде показано в статусі розгортання. Зверніть увагу, що прогрес не буде оцінюватися під час призупинення розгортання. Стандартно — 600 секунд.
replicas integer
Кількість бажаних подів. Це вказівник, щоб відрізнити явний нуль від не вказаного значення. Стандартно — 1.
revisionHistoryLimit integer
Кількість старих ReplicaSets, які слід зберігати для можливості відкату. Це вказівник, щоб відрізнити явний нуль від не вказаного значення. Стандартно — 10.
Селектор міток для подів. Наявні ReplicaSets, чиї поди вибираються цим селектором, будуть впливати на це розгортання. Він повинен відповідати міткам шаблону пода.
Параметри конфігурації поступового оновлення. Присутні лише якщо DeploymentStrategyType = RollingUpdate.
strategy.rollingUpdate.maxSurge
Максимальна кількість подів, які можуть бути заплановані понад бажану кількість подів. Значення може бути абсолютним числом (наприклад, 5) або відсотком від бажаної кількості подів (наприклад, 10%). Не може бути 0, якщо MaxUnavailable = 0. Абсолютне число обчислюється з відсотка шляхом округлення вгору. Стандартно — 25%. Наприклад: коли значення встановлено на 30%, новий ReplicaSet може бути масштабований відразу після початку поступового оновлення, так що загальна кількість старих і нових подів не перевищує 130% від бажаної кількості подів. Після того як старі поди будуть знищені, новий ReplicaSet може бути масштабований далі, забезпечуючи, що загальна кількість подів, що працюють у будь-який момент під час оновлення, не перевищує 130% від бажаної кількості подів.
strategy.rollingUpdate.maxUnavailable
Максимальна кількість подів, які можуть бути недоступні під час оновлення. Значення може бути абсолютним числом (наприклад, 5) або відсотком від бажаної кількості подів (наприклад, 10%). Абсолютне число обчислюється з відсотка шляхом округлення вниз. Не може бути 0, якщо MaxSurge = 0. Стандартно — 25%. Наприклад: коли значення встановлено на 30%, старий ReplicaSet може бути зменшений до 70% від бажаної кількості подів відразу після початку поступового оновлення. Після того як нові поди будуть готові, старий ReplicaSet може бути зменшений далі, а новий ReplicaSet масштабований вгору, забезпечуючи, що загальна кількість подів, доступних у будь-який момент під час оновлення, становить щонайменше 70% від бажаної кількості подів.
strategy.type string
Тип розгортання. Може бути "Recreate" або "RollingUpdate". Зазвичай використовується RollingUpdate.
Можливі значення enum:
"Recreate" Вбиває всі наявні поди перед створенням нових.
"RollingUpdate" Замінює старі ReplicaSets новими за допомогою поступового оновлення, тобто поступово зменшує старі ReplicaSets і збільшує нові.
Template описує поди, які будуть створені. Єдине дозволене значення template.spec.restartPolicy — "Always".
DeploymentStatus
DeploymentStatus це найновіший спостережуваний стан розгортання.
Поле
Опис
availableReplicas integer
Загальна кількість доступних подів, які не перебувають в стані завершення роботи, готові принаймні протягом minReadySeconds, на які націлено це розгортання.
collisionCount integer
Кількість колізій хешів для розгортання. Контролер розгортання використовує це поле як механізм уникнення колізій, коли потрібно створити імʼя для найновішого ReplicaSet.
Загальна кількість подів, які не перебувають в стані завершення роботи, на які спрямовано це розгортання, зі станом Ready.
replicas integer
Загальна кількість подів, які не перебувають в стані завершення роботи, на які спрямовано це розгортання (їхні мітки відповідають селектору).
terminatingReplicas integer
Загальна кількість подів, які перебувають у стані завершення роботи, на які спрямовано це розгортання. Поди, що завершуються, мають ненульовий .metadata.deletionTimestamp і ще не досягли стану Failed або Succeeded .status.phase. Це бета-поле і вимагає увімкнення функції DeploymentReplicaSetTerminatingReplicas (стандартно увімкнено).
unavailableReplicas integer
Загальна кількість недоступних подів, на які спрямовано це розгортання. Це загальна кількість подів, які ще потрібні для досягнення 100% доступності розгортання. Вони можуть бути або подами, що працюють, але ще не доступні, або подами, які ще не були створені.
updatedReplicas integer
Загальна кількість подів, які не перебувають в стані завершення роботи, на які спрямовано це розгортання і які мають бажану специфікацію шаблону.
Зрозуміле для людини повідомлення, що вказує деталі про перехід.
reason string
Причина останнього переходу стану.
status* string
Статус стану, один з True, False, Unknown.
type* string
Тип стану розгортання.
Операції
post Create
HTTP Запит
POST /apis/apps/v1/namespaces/{namespace}/deployments
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Deployment
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Deployment
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/apps/v1/namespaces/{namespace}/deployments
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Deployment
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/deployments
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Deployment
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Deployment
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
name of the Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
name of the Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
ReplicaSetSpec is the specification of a ReplicaSet.
Поле
Опис
minReadySeconds integer
Мінімальна кількість секунд, протягом яких новостворений под повинен бути готовим без будь-яких збоїв контейнера, щоб вважатися доступним. Стандартно — 0 (под вважається доступним, як тільки він готовий)
ReplicaSetStatus представляє поточний статус ReplicaSet.
Поле
Опис
availableReplicas integer
Загальна кількість доступних подів, які не перебувають в стані завершення роботи, готові принаймні протягом minReadySeconds, на які націлено це розгортання.
Кількість подів, які перебувають у стані завершення роботи для цього ReplicaSet. Поди, що завершуються, мають ненульовий .metadata.deletionTimestamp і ще не досягли стану Failed або Succeeded .status.phase. Це бета-поле і вимагає увімкнення функції DeploymentReplicaSetTerminatingReplicas (стандартно увімкнено).
Останній раз, коли стан змінився з одного статусу на інший.
message string
Зрозуміле для людини повідомлення, що вказує деталі про перехід.
reason string
Причина останнього переходу стану.
status* string
Статус стану, один з True, False, Unknown.
type* string
Тип стану ReplicaSet.
Операції
post Create
HTTP Запит
POST /apis/apps/v1/namespaces/{namespace}/replicasets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/apps/v1/namespaces/{namespace}/replicasets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicaSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/namespaces/{namespace}/replicasets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicaSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/apps/v1/namespaces/{namespace}/replicasets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicaSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/replicasets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicaSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicaSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
GET /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
name of the Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
name of the Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Status визначає поточний стан Podʼів у цьому StatefulSet. Ці дані можуть бути застарілими на деякий проміжок часу.
StatefulSetSpec
StatefulSetSpec визначає специфікацію StatefulSet.
Поле
Опис
minReadySeconds integer
Мінімальна кількість секунд, протягом яких новостворений под повинен бути готовим без будь-яких збоїв контейнера, щоб вважатися доступним. Стандартно — 0 (под вважається доступним, як тільки він готовий)
ordinals контролює нумерацію індексів реплік у StatefulSet. Стандартна поведінка ordinals призначає індекс "0" першій репліці та збільшує індекс на один для кожної додаткової запитаної репліки.
persistentVolumeClaimRetentionPolicy описує життєвий цикл persistent volume claims, створених з volumeClaimTemplates. Стандартно усі persistent volume claims створюються за потреби та зберігаються до ручного видалення. Ця політика дозволяє змінювати життєвий цикл, наприклад, видаляючи persistent volume claims, коли їхній stateful set видаляється, або коли їхній pod масштабується вниз.
podManagementPolicy string
podManagementPolicy контролює, як створюються поди під час початкового масштабування, заміни подів на вузлах або масштабування вниз. Стандартною є політика — OrderedReady, де поди створюються в зростаючому порядку (pod-0, потім pod-1 і т.д.), і контролер чекатиме, поки кожен под не буде готовий, перш ніж продовжити. Під час масштабування вниз поди видаляються у зворотному порядку. Альтернативна політика — Parallel, яка створює поди паралельно, щоб відповідати бажаному масштабу без очікування, і під час масштабування вниз видаляє всі поди одночасно.
Можливі значення enum:
"OrderedReady" створює поди строго в зростаючому порядку під час масштабування вгору і строго в спадаючому порядку під час масштабування вниз, просуваючись лише тоді, коли попередній под готовий або завершився. Максимум один под змінюється одночасно.
"Parallel" створює та видаляє поди відразу після зміни кількості реплік stateful set і не чекає, поки поди будуть готові або завершать термінацію.
replicas integer
replicas є бажаною кількістю реплік даного шаблону. Це репліки в сенсі того, що вони є екземплярами одного й того ж шаблону, але окремі репліки також мають цілісну ідентичність. Якщо не вказано, зазвичай дорівнює 1.
revisionHistoryLimit integer
revisionHistoryLimit є максимальною кількістю ревізій, які будуть зберігатися в історії ревізій StatefulSet. Історія ревізій складається з усіх ревізій, які не представлені поточно застосованою версією StatefulSetSpec. Стандартне значення — 10.
serviceName це імʼя сервісу, який керує цим StatefulSet. Цей сервіс повинен існувати до створення StatefulSet і відповідає за мережеву ідентичність набору. Поди отримують DNS/hostname, які відповідають шаблону: pod-specific-string.serviceName.default.svc.cluster.local, де "pod-specific-string" керується контролером StatefulSet.
template це обʼєкт, який описує под, що буде створений, якщо виявиться недостатня кількість реплік. Кожен под, створений StatefulSet, відповідатиме цьому шаблону, але матиме унікальну ідентичність серед інших подів StatefulSet. Кожен под буде названий у форматі <statefulsetname>-<podindex>. Наприклад, под у StatefulSet з назвою "web" з індексом "3" буде названий "web-3". Єдине дозволене значення template.spec.restartPolicy — "Always".
volumeClaimTemplates є списком запитів, на які поди можуть посилатися. Контролер StatefulSet відповідає за зіставлення мережевих ідентичностей з запитами таким чином, щоб зберегти ідентичність пода. Кожен запит у цьому списку повинен мати принаймні один відповідний (за назвою) volumeMount у одному контейнері в шаблоні. Запит у цьому списку має пріоритет над будь-якими томами в шаблоні з тією ж назвою.
StatefulSetStatus
StatefulSetStatus представляє поточний статус StatefulSet.
Поле
Опис
availableReplicas integer
Загальна кількість доступних подів (готових принаймні протягом minReadySeconds), на які націлений цей StatefulSet.
collisionCount integer
collisionCount це кількість колізій хешів для StatefulSet. Контролер StatefulSet використовує це поле як механізм уникнення колізій, коли потрібно створити імʼя для найновішого ControllerRevision.
Представляє останні доступні спостереження за поточним станом StatefulSet.
currentReplicas integer
currentReplicas це кількість подів, створених контролером StatefulSet з версії StatefulSet, вказаної в currentRevision.
currentRevision string
currentRevision, якщо не порожнє, вказує версію StatefulSet, використану для створення подів у послідовності [0,currentReplicas).
observedGeneration integer
observedGeneration це останнє спостережуване покоління для цього StatefulSet. Воно відповідає поколінню StatefulSet, яке оновлюється при зміні через API Server.
readyReplicas integer
readyReplicas це кількість подів, створених для цього StatefulSet зі станом Ready.
replicas* integer
replicas це кількість подів, створених контролером StatefulSet.
updateRevision string
updateRevision, якщо не порожнє, вказує версію StatefulSet, використану для створення подів у послідовності [replicas-updatedReplicas,replicas)
updatedReplicas integer
updatedReplicas це кількість подів, створених контролером StatefulSet з версії StatefulSet, вказаної в updateRevision.
RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.
Поле
Опис
maxUnavailable
Максимальна кількість подів, які можуть бути недоступні під час оновлення. Значення може бути абсолютним числом (наприклад: 5) або відсотком від бажаної кількості подів (наприклад: 10%). Абсолютне число обчислюється з відсотка шляхом округлення вгору. Не може бути 0. Стандартно — 1. Це поле знаходиться на рівні бета і є стандартно увімкненим. Поле застосовується до всіх подів у діапазоні від 0 до Replicas-1. Це означає, що якщо будь-який под у діапазоні від 0 до Replicas-1 недоступний, він буде врахований у MaxUnavailable. Це налаштування може бути неефективним для OrderedReady podManagementPolicy. Ця політика забезпечує створення подів і їх готовність по одному.
partition integer
Partition вказує порядковий номер, на якому StatefulSet повинен бути розділений для оновлень. Під час поступового оновлення всі поди від порядкового номера Replicas-1 до Partition оновлюються. Всі поди від порядкового номера Partition-1 до 0 залишаються без змін. Це корисно для здійснення канаркового розгортання. Стандартне значення — 0.
StatefulSetCondition
StatefulSetCondition описує стан StatefulSet у певний момент часу.
Останній раз, коли стан змінився з одного статусу на інший.
message string
Зрозуміле для людини повідомлення, що вказує деталі про перехід.
reason string
Причина останньої зміни стану умови.
status* string
Статус стану, одне з: True, False, Unknown.
type* string
Тип стану StatefulSet.
StatefulSetOrdinals
StatefulSetOrdinals описує політику, що використовується для призначення порядкових номерів реплік у цьому StatefulSet.
Поле
Опис
start integer
start — це число, що представляє індекс першої репліки. Воно може використовуватися для нумерації реплік з альтернативного індексу (наприклад, 1-індексованого) замість стандартних 0-індексованих імен, або для організації поступового переміщення реплік з одного StatefulSet до іншого. Якщо встановлено, індекси реплік будуть у діапазоні: [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas). Якщо не встановлено, за замовчуванням 0. Індекси реплік будуть у діапазоні: [0, .spec.replicas).
StatefulSetPersistentVolumeClaimRetentionPolicy
StatefulSetPersistentVolumeClaimRetentionPolicy описує політику, що використовується для PVC, створених з VolumeClaimTemplates StatefulSet.
Поле
Опис
whenDeleted string
WhenDeleted визначає, що відбувається з PVC, створеними з VolumeClaimTemplates StatefulSet, коли StatefulSet видаляється. Стандартна політика Retain призводить до того, що PVC не впливаються на видалення StatefulSet. Політика Delete призводить до видалення цих PVC.
whenScaled string
WhenScaled визначає, що відбувається з PVC, створеними з VolumeClaimTemplates StatefulSet, коли StatefulSet масштабується вниз. Стандартна політика Retain призводить до того, що PVC не впливаються на зменшення масштабу. Політика Delete призводить до видалення повʼязаних PVC для всіх подів, кількість яких перевищує кількість реплік.
StatefulSetUpdateStrategy
StatefulSetUpdateStrategy описує стратегію, яку контролер StatefulSet використовуватиме для виконання оновлень. Вона включає будь-які додаткові параметри, необхідні для виконання оновлення для вказаної стратегії.
RollingUpdate використовується для передачі параметрів, коли Type є RollingUpdateStatefulSetStrategyType.
type string
Type вказує тип StatefulSetUpdateStrategy. Стандартно використовується RollingUpdate.
Можливі значення enum:
"OnDelete" запускає спадкову поведінку. Відстеження версій та впорядковані поступові перезапуски вимкнені. Поди створюються заново з StatefulSetSpec, коли вони видаляються вручну. Коли виконується операція масштабування з цією стратегією, версія специфікації вказується поточною ревізією StatefulSet.
"RollingUpdate" вказує, що оновлення буде застосовано до всіх подів у StatefulSet з урахуванням обмежень порядку StatefulSet. Коли виконується операція масштабування з цією стратегією, нові поди будуть створені з версії специфікації, вказаної в updateRevision StatefulSet.
Операції
post Create
HTTP Запит
POST /apis/apps/v1/namespaces/{namespace}/statefulsets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StatefulSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StatefulSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/apps/v1/namespaces/{namespace}/statefulsets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StatefulSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/apps/v1/watch/namespaces/{namespace}/statefulsets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва StatefulSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва StatefulSet
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
name of the Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту {#query-parameters}-14
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
name of the Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
HorizontalPodAutoscaler є конфігурацією для горизонтального автомасштабувальника подів, який автоматично керує кількістю реплік будь-якого ресурсу, що реалізує субресурс масштабування, на основі вказаних метрик.
apiVersion: autoscaling/v2
import "k8s.io/api/autoscaling/v2"
HorizontalPodAutoscaler
HorizontalPodAutoscaler є конфігурацією для горизонтального автомасштабувальника подів, який автоматично керує кількістю реплік будь-якого ресурсу, що реалізує субресурс масштабування, на основі вказаних метрик.
behavior налаштовує поведінку масштабування цільового ресурсу в обох напрямках: вгору та вниз (поля scaleUp та scaleDown відповідно). Якщо не встановлено, використовуються стандартні правила HPAScalingRules для масштабування вгору та вниз.
maxReplicas* integer
maxReplicas це верхня межа для кількості реплік, до якої автомасштабувальник може масштабуватися вгору. Вона не може бути меншою за minReplicas.
metrics містить специфікації, які використовуються для обчислення бажаної кількості реплік (використовується максимальна кількість реплік серед усіх метрик). Бажана кількість реплік обчислюється шляхом множення співвідношення між цільовим значенням і поточним значенням на поточну кількість подів. Тобто, використані метрики повинні зменшуватися при збільшенні кількості подів і навпаки. Дивіться окремі типи джерел метрик для отримання додаткової інформації про те, як кожен тип метрики повинен реагувати. Якщо не встановлено, за замовчуванням буде встановлено метрику 80% середнього використання CPU.
minReplicas integer
minReplicas це нижня межа для кількості реплік, до якої автомасштабувальник може масштабуватися вниз. Стандартно встановлено 1 под. minReplicas може бути 0, якщо увімкнено альфа-функцію HPAScaleToZero і налаштовано принаймні одну метрику Object або External. Масштабування активне, поки доступне принаймні одне значення метрики.
lastScaleTime це останній час, коли горизонтальний автомасштабувальник подів змінив кількість подів, використовується автомасштабувальником для контролю частоти зміни кількості подів.
observedGeneration integer
observedGeneration це останнє покоління, спостережене цим автомасштабувальником.
HorizontalPodAutoscalerList
HorizontalPodAutoscalerList список обʼєктів горизонтального автомасштабувальника подів.
ContainerResourceMetricSource показує, як масштабуватися за метрикою ресурсу, відомою Kubernetes, як зазначено в запитах і обмеженнях, описуючи кожен под у поточній цільовій групі масштабування (наприклад, CPU або памʼять). Значення будуть усереднені перед порівнянням з цільовим значенням. Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування поверх тих, що доступні для звичайних метрик для кожного пода, використовуючи джерело "pods". Повинно бути встановлено лише один тип "target".
Поле
Опис
container* string
container це назва контейнера в подах цільової групи масштабування
target визначає цільове значення для даної метрики
ContainerResourceMetricStatus
ContainerResourceMetricStatus показує поточне значення метрики ресурсу, відомої Kubernetes, як зазначено в запитах і обмеженнях, описуючи один контейнер у кожному поді в поточній цільовій групі масштабування (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування поверх тих, що доступні для звичайних метрик для кожного пода, використовуючи джерело "pods".
Поле
Опис
container* string
container це назва контейнера в подах цільової групи масштабування
ExternalMetricSource вказує, як масштабувати за метрикою, яка не повʼязана з жодним обʼєктом Kubernetes (наприклад, довжина черги в хмарному сервісі обміну повідомленнями або QPS від балансувальника навантаження, що працює поза кластером).
metric визначає цільову метрику за назвою та селектором
HPAScalingPolicy
HPAScalingPolicy є окремою політикою, яка повинна дотримуватися протягом зазначеного інтервалу часу.
Поле
Опис
periodSeconds* integer
periodSeconds вказує вікно часу, протягом якого політика повинна дотримуватися. PeriodSeconds має бути більше нуля і менше або дорівнювати 1800 (30 хв).
type* string
type використовується для вказівки політики масштабування.
value* integer
value містить величину зміни, дозволену політикою. Вона повинна бути більше нуля
HPAScalingRules
HPAScalingRules налаштовує поведінку масштабування в одному напрямку за допомогою правил політики масштабування та налаштовуваного допуску метрик.
Правила політики масштабування застосовуються після обчислення DesiredReplicas на основі метрик для HPA. Вони можуть обмежувати швидкість масштабування, вказуючи політики масштабування. Вони можуть запобігати коливанням, вказуючи вікно стабілізації, щоб кількість реплік не встановлювалася миттєво, замість цього обирається найбезпечніше значення з вікна стабілізації.
Допуск застосовується до значень метрик і запобігає занадто швидкому масштабуванню при невеликих коливаннях метрик. (Зверніть увагу, що для встановлення допуску потрібно ввімкнути бета-функцію HPAConfigurableTolerance.)
policies є списком потенційних політик масштабування, які можуть бути використані під час масштабування. Якщо не встановлено, використовуються стандартні значення:
Для масштабування вгору: дозволяється подвоєння кількості подів або абсолютна зміна на 4 поди за 15 секунд.
Для масштабування вниз: дозволяється видалити всі поди за 15 секунд.
selectPolicy string
selectPolicy використовується для вказівки, яка політика повинна бути використана. Якщо не встановлено, використовується стандартне значення Max.
stabilizationWindowSeconds integer
stabilizationWindowSeconds вказує кількість секунд, протягом яких слід враховувати попередні рекомендації під час масштабування вгору або вниз. StabilizationWindowSeconds має бути більше або дорівнювати нулю і менше або дорівнювати 3600 (одна година). Якщо не встановлено, використовуються стандартні значення:
Для масштабування вгору: 0 (тобто стабілізація не виконується).
Для масштабування вниз: 300 (тобто вікно стабілізації триває 300 секунд).
tolerance є допуском на співвідношення між поточним і бажаним значенням метрики, при якому не вносяться оновлення до бажаної кількості реплік (наприклад, 0.01 для 1%). Має бути більше або дорівнювати нулю. Якщо не встановлено, застосовується стандартний допуск для всього кластера (стандартно — 10%). Наприклад, якщо автомасштабувальник налаштований з цільовим споживанням памʼяті 100Mi, а допуски на зменшення та збільшення масштабу становлять 5% та 1% відповідно, масштабування буде ініційовано, коли фактичне споживання впаде нижче 95Mi або перевищить 101Mi. Це бета-поле і вимагає увімкнення функціональної можливості HPAConfigurableTolerance.
HorizontalPodAutoscalerBehavior
HorizontalPodAutoscalerBehavior налаштовує поведінку масштабування цілі в обох напрямках: вгору та вниз (поля scaleUp та scaleDown відповідно).
scaleDown є політикою масштабування для зменшення масштабу. Якщо не встановлено, стандартне значення дозволяє зменшити кількість подів до minReplicas з вікном стабілізації 300 секунд (тобто використовується найвища рекомендація за останні 300 секунд).
scaleUp є політикою масштабування для збільшення масштабу. Якщо не встановлено, стандартне значення дозволяє збільшити кількість подів не більше ніж на 4 за 60 секунд або подвоїти кількість подів за 60 секунд. Стабілізація не використовується.
HorizontalPodAutoscalerCondition
HorizontalPodAutoscalerCondition описує стан HorizontalPodAutoscaler у певний момент часу.
selector — це рядок, закодований у форматі стандартного селектора міток Kubernetes для заданої метрики. Якщо встановлено, він передається як додатковий параметр серверу метрик для більш точного визначення метрик. Якщо не встановлено, використовується лише metricName для збору метрик.
MetricSpec
MetricSpec визначає, як масштабувати на основі однієї метрики (повинні бути встановлені лише type та одне інше відповідне поле одночасно).
containerResource посилається на метрику ресурсу (наприклад, ті, що вказані в параметрах requests та limits), відому Kubernetes, яка описує окремий контейнер у кожному поді поточній цільовій метриці масштабування (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додачу до тих, що доступні для звичайних метрик на рівні подів із використанням джерела "pods".
external посилається на глобальну метрику, яка не повʼязана з жодним обʼєктом Kubernetes. Вона дозволяє автоматичне масштабування на основі інформації, що надходить від компонентів, які працюють поза кластером (наприклад, довжина черги в хмарному сервісі обміну повідомленнями або QPS від балансувальника навантаження, що працює поза кластером).
pods посилається на метрику, що описує кожен под у поточному цільовому масштабі (наприклад, транзакції, оброблені за секунду). Значення будуть усереднені перед порівнянням з цільовим значенням.
resource посилається на метрику ресурсу (наприклад, ті, що вказані в параметрах requests та limits), відому Kubernetes, яка описує кожен под у поточному цільовому масштабі (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додачу до тих, що доступні для звичайних метрик на рівні подів із використанням джерела "pods".
type* string
type є типом джерела метрики. Воно повинно бути одним із "ContainerResource", "External", "Object", "Pods" або "Resource", кожне з яких відповідає відповідному полю в об'єкті.
container resource посилається на метрику ресурсу (наприклад, ті, що вказані в параметрах requests та limits), відому Kubernetes, яка описує один контейнер у кожному поді поточній цільовій метриці масштабування (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додачу до тих, що доступні для звичайних метрик на рівні подів із використанням джерела "pods".
external посилається на глобальну метрику, яка не пов'язана з жодним об'єктом Kubernetes. Вона дозволяє автоматичне масштабування на основі інформації, що надходить від компонентів, які працюють поза кластером (наприклад, довжина черги в хмарному сервісі обміну повідомленнями або QPS від балансувальника навантаження, що працює поза кластером).
pods посилається на метрику, що описує кожен под у поточному цільовому масштабі (наприклад, кількість оброблених транзакцій за секунду). Значення будуть усереднені перед порівнянням із цільовим значенням.
resource посилається на метрику ресурсу (наприклад, ті, що вказані в параметрах requests та limits), відому Kubernetes, яка описує кожен под у поточному цільовому масштабі (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додачу до тих, що доступні для звичайних метрик на рівні подів із використанням джерела "pods".
type* string
type є типом джерела метрики. Воно повинно бути одним із "ContainerResource", "External", "Object", "Pods" або "Resource", кожне з яких відповідає відповідному полю в об'єкті.
MetricTarget
MetricTarget визначає цільове значення, середнє значення або середнє використання конкретної метрики
Поле
Опис
averageUtilization integer
averageUtilization є цільовим значенням середнього значення метрики ресурсу для всіх відповідних подів, представленим у відсотках від запитуваного значення ресурсу для подів. Наразі дійсно лише для типу джерела метрики Resource.
value є цільовим значенням метрики (як кількість).
MetricValueStatus
MetricValueStatus визначає поточне значення метрики
Поле
Опис
averageUtilization integer
currentAverageUtilization є поточним значенням середнього значення метрики ресурсу для всіх відповідних подів, представленим у відсотках від запитуваного значення ресурсу для подів.
metric визначає цільову метрику за назвою та селектором
PodsMetricSource
PodsMetricSource визначає, як масштабуватися за метрикою, що описує кожен под у поточному цільовому масштабі (наприклад, кількість оброблених транзакцій за секунду). Значення будуть усереднені перед порівнянням з цільовим значенням.
target визначає цільове значення для даної метрики
PodsMetricStatus
PodsMetricStatus визначає поточне значення метрики, що описує кожен под у поточному цільовому масштабі (наприклад, кількість оброблених транзакцій за секунду).
metric визначає цільову метрику за назвою та селектором
ResourceMetricSource
ResourceMetricSource визначає, як масштабуватися за метрикою ресурсу, відомою Kubernetes, як зазначено в запитах і обмеженнях, описуючи кожен под у поточному цільовому масштабі (наприклад, CPU або памʼять). Значення будуть усереднені перед порівнянням з цільовим значенням. Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування поверх тих, що доступні для звичайних метрик на поди за допомогою джерела "pods". Повинно бути встановлено лише один тип "target".
target визначає цільове значення для даної метрики
ResourceMetricStatus
ResourceMetricStatus визначає поточне значення метрики ресурсу, відомої Kubernetes, як зазначено в запитах і обмеженнях, описуючи кожен под у поточному цільовому масштабі (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування поверх тих, що доступні для звичайних метрик на поди за допомогою джерела "pods".
current містить поточне значення для даної метрики
name* string
name визначає назву ресурсу, про який йде мова.
Операції
post Create
HTTP Запит
POST /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва HorizontalPodAutoscaler
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва HorizontalPodAutoscaler
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва HorizontalPodAutoscaler
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту {#query-parameters}-9
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/autoscaling/v2/watch/horizontalpodautoscalers
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва HorizontalPodAutoscaler
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва HorizontalPodAutoscaler
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Опціональний термін у секундах для запуску завдання, якщо воно пропустило запланований час з будь-якої причини. Пропущені виконання завдань будуть враховані як невдалі.
successfulJobsHistoryLimit integer
Кількість успішно завершених завдань для збереження. Значення повинно бути невід'ємним цілим числом. Стандартно — 3.
suspend boolean
Цей прапорець повідомляє контролеру призупинити подальші виконання, він не застосовується до вже розпочатих виконань. Стандартно — false.
timeZone string
Назва часового поясу для заданого розкладу, див. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. Якщо не вказано, зазвичай використовується часовий пояс процесу kube-controller-manager. Набір дійсних назв часових поясів та зсув часових поясів завантажується з системної бази даних часових поясів під час перевірки CronJob API-сервером та під час виконання контролером. Якщо системна база даних часових поясів не знайдена, використовується вбудована версія бази даних. Якщо назва часового поясу стає недійсною під час життя CronJob або через зміну конфігурації хоста, контролер припинить створювати нові завдання і створить системну подію з причиною UnknownTimeZone. Детальніше можна знайти в https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones.
CronJobStatus
CronJobStatus represents the current state of a cron job.
POST /apis/batch/v1/namespaces/{namespace}/cronjobs
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CronJob
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CronJob
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/batch/v1/namespaces/{namespace}/cronjobs
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/batch/v1/watch/namespaces/{namespace}/cronjobs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CronJob
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/batch/v1/watch/namespaces/{namespace}/cronjobs
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва CronJob
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва CronJob
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Визначає тривалість у секундах відносно startTime, протягом якої завдання може бути безперервно активним, перш ніж система спробує його завершити; значення повинно бути додатним цілим числом. Якщо завдання призупинено (під час створення або через оновлення), цей таймер фактично зупиняється і скидається, коли завдання відновлюється.
backoffLimit integer
Вказує кількість спроб перед тим, як позначити це завдання як невдале. Зазвичай встановлюється значення 6, якщо не вказано параметр backoffLimitPerIndex (лише для індексованих завдань). Якщо вказано параметр backoffLimitPerIndex, типове значення backoffLimit становить 2147483647.
backoffLimitPerIndex integer
Вказує обмеження на кількість повторних спроб для кожного індексу перед тим, як позначити цей індекс як невдалий. Коли увімкнено, кількість невдач для кожного індексу зберігається в анотації pod's batch.kubernetes.io/job-index-failure-count. Може бути встановлено лише тоді, коли completionMode завдання = Indexed, а політика перезапуску Pod = Never. Поле є незмінним.
completionMode string
completionMode визначає, як відстежуються завершення Pod. Може бути NonIndexed (стандартно) або Indexed. NonIndexed означає, що завдання вважається завершеним, коли було успішно завершено.spec.completions Pod. Кожне завершення Pod є однорідним. Indexed означає, що Podʼи завдання отримують асоційований індекс завершення від 0 до (.spec.completions — 1), доступний в анотації batch.kubernetes.io/job-completion-index. Завдання вважається завершеним, коли є один успішно завершений Pod для кожного індексу. Коли значення Indexed, .spec.completions повинно бути вказано, а .spec.parallelism повинно бути менше або дорівнювати 10^5. Крім того, імʼя Podʼа має форму $(job-name)-$(index)-$(random-string), а хостнейм Podʼа має форму $(job-name)-$(index). У майбутньому можуть бути додані інші режими завершення. Якщо контролер Job спостерігає режим, який він не розпізнає, що можливо під час оновлень через версійну різницю, контролер пропускає оновлення для завдання.
Можливі значення enum:
"Indexed" є режимом завершення Job. У цьому режимі Pods завдання отримують асоційований індекс завершення від 0 до (.spec.completions - 1). Завдання вважається завершеним, коли Pod завершується для кожного індексу завершення.
"NonIndexed" є режимом завершення Job. У цьому режимі завдання вважається завершеним, коли було успішно завершено .spec.completions Pod. Завершення Pod є однорідними.
completions integer
Визначає бажану кількість успішно завершених Podʼів, з якими має виконуватися завдання. Встановлення значення null означає, що успіх будь-якого Podʼа сигналізує про успіх усіх Podʼів, і дозволяє паралелізму мати будь-яке позитивне значення. Встановлення значення 1 означає, що паралелізм обмежений до 1, і успіх цього Podʼа сигналізує про успіх завдання. Більше інформації: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
managedBy string
Поле ManagedBy вказує контролер, який керує Job. Контролер Job Kubernetes узгоджує завдання, які не мають цього поля або значення поля є зарезервованим рядком kubernetes.io/job-controller, але пропускає узгодження завдань з користувацьким значенням цього поля. Значення повинно бути дійсним шляхом з префіксом домену (наприклад, acme.io/foo) — усі символи перед першим "/" повинні бути дійсним піддоменом, як визначено в RFC 1123. Усі символи після першого "/" повинні бути дійсними символами HTTP Path, як визначено в RFC 3986. Значення не може перевищувати 63 символи. Це поле є незмінним.
manualSelector boolean
manualSelector контролює генерацію міток Podʼа і селекторів Podʼа. Залишайте manualSelector невстановленим, якщо ви не впевнені, що робите. Коли значення false або невстановлене, система вибирає мітки, унікальні для цього завдання, і додає ці мітки до шаблону Podʼа. Коли значення true, користувач відповідає за вибір унікальних міток і вказівку селектора. Невдалий вибір унікальної мітки може призвести до неправильного функціонування цього та інших завдань. Однак, ви можете побачити manualSelector=true у завданнях, створених за допомогою старого API extensions/v1beta1. Більше інформації: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector
maxFailedIndexes integer
Визначає максимальну кількість невдалих індексів перед тим, як позначити Job як невдалий, коли встановлено backoffLimitPerIndex. Після перевищення цієї кількості невдалих індексів весь Job позначається як Failed, і його виконання припиняється. Якщо залишити значення null, завдання продовжує виконання всіх своїх індексів і позначається з станом Complete. Може бути вказано лише тоді, коли встановлено backoffLimitPerIndex. Може бути null або до completions. Обовʼязково і повинно бути менше або дорівнювати 10^4, коли completions більше 10^5.
parallelism integer
Визначає максимальну бажану кількість Podʼів, які завдання повинно виконувати одночасно. Фактична кількість Podʼів у стабільному стані буде меншою за це число, коли ((.spec.completions - .status.successful) < .spec.parallelism), тобто коли залишок роботи менший за максимальний паралелізм. Більше інформації: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
Визначає політику обробки невдалих Podʼів. Зокрема, дозволяє вказати набір дій та умов, які повинні бути виконані для виконання відповідної дії. Якщо порожнє, застосовується стандартна поведінка — лічильник невдалих Podʼів, представлений полем .status.failed завдання, збільшується і перевіряється щодо backoffLimit. Це поле не можна використовувати разом з restartPolicy=OnFailure.
podReplacementPolicy string
podReplacementPolicy визначає, коли створювати замінні Podʼи. Можливі значення:
TerminatingOrFailed означає, що ми відтворюємо Podʼи, коли вони завершуються (мають metadata.deletionTimestamp) або зазнали невдачі.
Failed означає чекати, поки раніше створений Pod повністю не завершиться (має фазу Failed або Succeeded), перш ніж створювати замінний Pod. При використанні podFailurePolicy, Failed є єдиним дозволеним значенням. TerminatingOrFailed і Failed дозволені значення, коли podFailurePolicy не використовується.
Можливі значення enum:
"Failed" означає чекати, поки раніше створений Pod повністю не завершиться (має фазу Failed або Succeeded), перш ніж створювати замінний Pod.
"TerminatingOrFailed" означає, що ми відтворюємо Podʼи, коли вони завершуються (мають metadata.deletionTimestamp) або зазнали невдачі.
successPolicy визначає політику, коли завдання може бути оголошене успішним. Якщо порожнє, застосовується стандартна поведінка — завдання оголошується успішним лише тоді, коли кількість успішних Podʼів дорівнює completions. Коли поле вказане, воно повинно бути незмінним і працює лише для Indexed Jobs. Після того, як завдання відповідає SuccessPolicy, залишкові Podʼи завершуються.
suspend boolean
suspend визначає, чи повинен контролер Job створювати Podʼи чи ні. Якщо Job створено з suspend, встановленим у true, контролер Job не створює Podʼи. Якщо Job призупинено після створення (тобто прапорець змінюється з false на true), контролер Job видалить усі активні Podʼи, пов'язані з цим Job. Користувачі повинні розробити своє навантаження так, щоб воно могло коректно обробляти це. Призупинення Job скидає поле StartTime Job, фактично скидаючи таймер ActiveDeadlineSeconds. Стандартно встановлено false.
ttlSecondsAfterFinished обмежує тривалість життя Job, який завершив виконання (Complete або Failed). Якщо це поле встановлено, після завершення Job він може бути автоматично видалений. Під час видалення Job будуть дотримані гарантії його життєвого циклу (наприклад, finalizers). Якщо це поле не встановлено, Job не буде автоматично видалений. Якщо це поле встановлено в нуль, Job може бути видалений негайно після завершення.
JobStatus
JobStatus представляє поточний стан Job.
Поле
Опис
active integer
Кількість очікуючих та працюючих Podʼів, які не завершуються (без deletionTimestamp). Значення дорівнює нулю для завершених завдань.
completedIndexes string
completedIndexes містить завершені індекси, коли .spec.completionMode = "Indexed" у текстовому форматі. Індекси представлені як десяткові цілі числа, розділені комами. Числа перераховані у зростаючому порядку. Коли три або більше послідовних чисел стискаються — вони представлені першим і останнім елементом серії, розділеними дефісом. Наприклад, якщо завершені індекси 1, 3, 4, 5 і 7, вони представлені як "1,3-5,7".
Представляє час, коли завдання було завершено. Не гарантується, що він буде встановлений у порядку "happens-before" між окремими операціями. Він представлений у форматі RFC3339 і знаходиться в UTC. Час завершення встановлюється, коли завдання успішно завершується, і тільки тоді. Значення не можна оновлювати або видаляти. Значення вказує на той самий або пізніший момент часу, ніж поле startTime.
Останні доступні спостереження за поточним станом обʼєкта. Коли Job зазнає невдачі, один зі станів матиме тип "Failed" і статус true. Коли Job призупинено, один зі станів матиме тип "Suspended" і статус true; коли Job відновлено, статус цього стану стане false. Коли Job завершено, один зі станів матиме тип "Complete" і статус true. Job вважається завершеним, коли він знаходиться в термінальному стані, або "Complete", або "Failed". Job не може мати одночасно стани "Complete" і "Failed". Крім того, він не може бути в станах "Complete" і "FailureTarget". Стани "Complete", "Failed" і "FailureTarget" не можна вимкнути. Детальніше: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/.
failed integer
Кількість Podʼів, які досягли фази Failed. Значення зростає монотонно.
failedIndexes string
FailedIndexes містить невдалі індекси, коли spec.backoffLimitPerIndex встановлено. Індекси представлені у текстовому форматі аналогічно полю completedIndexes, тобто вони зберігаються як десяткові цілі числа, розділені комами. Числа перераховані у зростаючому порядку. Коли три або більше послідовних чисел стискаються — вони представлені першим і останнім елементом серії, розділеними дефісом. Наприклад, якщо невдалі індекси 1, 3, 4, 5 і 7, вони представлені як "1,3-5,7". Набір невдалих індексів не може перекриватися з набором завершених індексів.
ready integer
Кількість активних Podʼів, які мають стан Ready і не завершуються (без deletionTimestamp).
Час, коли контролер Job почав обробку Job. Коли Job створюється в призупиненому стані, це поле не встановлюється до першого відновлення. Це поле скидається щоразу, коли Job відновлюється з призупиненого стану. Воно представлено у форматі RFC3339 і знаходиться в UTC. Після встановлення поле можна видалити лише тоді, коли Job призупинено. Поле не можна змінювати, поки Job не призупинено або не завершено.
succeeded integer
Кількість Podʼів, які досягли фази Succeeded. Значення зростає монотонно для даного spec. Однак воно може зменшуватися у відповідь на зменшення масштабів еластичних індексованих Job.
terminating integer
Кількість Podʼів, які завершуються (у фазі Pending або Running і мають deletionTimestamp). Це поле знаходиться на рівні бета. Контролер Job заповнює поле, коли ввімкнено функціональну можливість JobPodReplacementPolicy (стандартно увімкнено).
uncountedTerminatedPods містить UID Podʼів, які завершилися, але контролер Job ще не врахував їх у лічильниках стану. Контролер Job створює Podʼи з завершувачем. Коли Pod завершується (успішно або з помилкою), контролер виконує три кроки, щоб врахувати його в статусі Job: 1. Додає UID Podʼа до масивів у цьому полі. 2. Видаляє завершувач Podʼа. 3. Видаляє UID Podʼа з масивів, збільшуючи відповідний лічильник. Старі Job можуть не відстежуватися за допомогою цього поля, у такому випадку поле залишається null. Структура порожня для завершених Job.
Список правил політики невдалих подів. Правила оцінюються в порядку їх визначення. Як тільки правило відповідає невдалому поду, решта правил ігноруються. Якщо жодне правило не відповідає невдалому поду, застосовується стандартна обробка — лічильник невдалих подів збільшується і перевіряється щодо backoffLimit. Дозволяється не більше 20 елементів.
PodFailurePolicyOnExitCodesRequirement
PodFailurePolicyOnExitCodesRequirement описує вимоги до обробки невдалого поду на основі кодів завершення його контейнерів. Зокрема, він перевіряє .state.terminated.exitCode для кожного статусу контейнера застосунка та ініціалізаційного контейнера, представленого відповідно полями .status.containerStatuses та .status.initContainerStatuses у статусі Podʼа. Контейнери, які завершилися успішно (код завершення 0), виключаються з перевірки вимог.
Поле
Опис
containerName string
Обмежує перевірку кодів завершення контейнера контейнером із зазначеним імʼям. Якщо null, правило застосовується до всіх контейнерів. Якщо вказано, імʼя повинно відповідати одному з імен контейнера або initContainer у шаблоні поду.
operator* string
Визначає відношення між кодом(ами) завершення контейнера та зазначеними значеннями. Контейнери, які завершилися успішно (код завершення 0), виключаються з перевірки вимог. Можливі значення:
In: вимога задовольняється, якщо принаймні один код завершення контейнера (може бути кілька, якщо є кілька контейнерів, не обмежених полем 'containerName') входить до набору зазначених значень.
NotIn: вимога задовольняється, якщо принаймні один код завершення контейнера (може бути кілька, якщо є кілька контейнерів, не обмежених полем 'containerName') не входить до набору зазначених значень.
Додаткові значення можуть бути додані в майбутньому. Клієнти повинні реагувати на невідомий оператор, вважаючи, що вимога не задовольняється.
Можливі значення enum:
In
NotIn
values* integer array
Визначає набір значень. Кожен повернений код завершення контейнера (може бути кілька у випадку кількох контейнерів) перевіряється щодо цього набору значень з урахуванням оператора. Список значень повинен бути впорядкованим і не містити дублікатів. Значення '0' не може використовуватися для оператора In. Потрібен принаймні один елемент. Дозволяється не більше 255 елементів.
PodFailurePolicyOnPodConditionsPattern
PodFailurePolicyOnPodConditionsPattern описує шаблон для відповідності фактичному типу стану поду.
Поле
Опис
status string
Визначає необхідний статус стану Podʼа. Щоб відповідати стану Podʼа, вказаний статус повинен збігатися зі статусом стану Podʼа. Стандартне значення — True.
type* string
Визначає необхідний тип стану Podʼа. Щоб відповідати стану Podʼа, вказаний тип повинен збігатися з типом стану Podʼа.
PodFailurePolicyRule
PodFailurePolicyRule описує, як обробляється збій поду, коли вимоги виконані. У кожному правилі можна використовувати або onExitCodes, або onPodConditions, але не обидва.
Поле
Опис
action* string
Визначає дію, яка виконується при збої поду, коли вимоги виконані. Можливі значення:
FailJob: вказує, що робота пода позначається як Failed і всі запущені поди завершуються.
FailIndex: вказує, що індекс пода позначається як Failed і не буде перезапущений.
Ignore: вказує, що лічильник до .backoffLimit не збільшується і створюється замінюючий под.
Count: вказує, що под обробляється стандартно — лічильник до .backoffLimit збільшується.
Додаткові значення можуть бути додані в майбутньому. Клієнти повинні реагувати на невідомі дії, пропускаючи правило.
Можливі значення enum:
"Count" Це дія, яка може бути виконана при збої пода, збій пода обробляється стандартно — лічильник до .backoffLimit, представлений полем .status.failed роботи, збільшується.
"FailIndex" Це дія, яка може бути виконана при збої пода — позначити індекс роботи як failed, щоб уникнути перезапусків у цьому індексі. Ця дія може бути використана лише тоді, коли встановлено backoffLimitPerIndex.
"FailJob" Це дія, яка може бути виконана при збої пода — позначити роботу пода як Failed і завершити всі запущені поди.
"Ignore" Це дія, яка може бути виконана при збої пода — лічильник до .backoffLimit, представлений полем .status.failed роботи, не збільшується і створюється замінюючий под.
Представляє вимогу до станів пода. Вимога представлена як список шаблонів станів пода. Вимога задовольняється, якщо принаймні один шаблон відповідає фактичному стану пода. Дозволяється не більше 20 елементів.
SuccessPolicy
SuccessPolicy описує, коли роботу можна вважати успішною на основі успіху деяких індексів.
rules представляє список альтернативних правил для оголошення роботи успішною до того, як .status.succeeded >= .spec.completions. Як тільки будь-яке з правил буде виконано, додається умова "SuccessCriteriaMet", і залишкові поди видаляються. Кінцевий стан для такої роботи має умову "Complete". Крім того, ці правила оцінюються в порядку; як тільки робота відповідає одному з правил, інші правила ігноруються. Дозволяється не більше 20 елементів.
SuccessPolicyRule
SuccessPolicyRule описує правило для оголошення роботи успішною. Кожне правило повинно мати принаймні одне з полів "succeededIndexes" або "succeededCount".
Поле
Опис
succeededCount integer
succeededCount вказує мінімальний необхідний розмір фактичного набору успішних індексів для роботи. Коли succeededCount використовується разом із succeededIndexes, перевірка обмежується лише набором індексів, зазначених у succeededIndexes. Наприклад, якщо succeededIndexes дорівнює "1-4", succeededCount дорівнює "3", а завершені індекси — "1", "3" і "5", робота не вважається успішною, оскільки лише індекси "1" і "3" враховуються в цьому правилі. Коли це поле дорівнює null, воно не має значення за замовчуванням і ніколи не оцінюється. Якщо вказано, воно повинно бути додатним цілим числом.
succeededIndexes string
succeededIndexes вказує набір індексів, які повинні бути присутніми у фактичному наборі успішних індексів для роботи. Список індексів повинен бути в межах від 0 до ".spec.completions-1" і не повинен містити дублікатів. Потрібен принаймні один елемент. Індекси представлені як інтервали, розділені комами. Інтервали можуть бути десятковими цілими числами або парою десяткових цілих чисел, розділених дефісом. Числа перераховані, представлені першим і останнім елементом серії, розділені дефісом. Наприклад, якщо завершені індекси 1, 3, 4, 5 і 7, вони представлені як "1,3-5,7". Коли це поле дорівнює null, воно не має значення за замовчуванням і ніколи не оцінюється.
UncountedTerminatedPods
UncountedTerminatedPods містить UIDs подів, які завершилися, але ще не були враховані у лічильниках стану роботи.
Поле
Опис
failed string array
failed містить UIDs подів, які завершилися з помилкою.
succeeded string array
succeeded містить UIDs подів, які завершилися успішно.
Операції
post Create
HTTP Запит
POST /apis/batch/v1/namespaces/{namespace}/jobs
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/batch/v1/namespaces/{namespace}/jobs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Job
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/batch/v1/namespaces/{namespace}/jobs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Job
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Job
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/batch/v1/watch/namespaces/{namespace}/jobs
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Job
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Job
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Обʼєкт CertificateSigningRequest надає механізм отримання x509 сертифікатів шляхом подання запиту на підписання сертифіката та його асинхронного затвердження та видачі.
Kubelets використовують цей API для отримання:
клієнтських сертифікатів для автентифікації в kube-apiserver (з використанням signerName "kubernetes.io/kube-apiserver-client-kubelet").
сертифікатів для TLS точок доступу, до яких kube-apiserver може підключатися безпечно (з використанням signerName "kubernetes.io/kubelet-serving").
Цей API можна використовувати для запиту клієнтських сертифікатів для автентифікації в kube-apiserver (з використанням signerName "kubernetes.io/kube-apiserver-client"), або для отримання сертифікатів від власних не-Kubernetes підписувачів.
apiVersion: certificates.k8s.io/v1
import "k8s.io/api/certificates/v1"
CertificateSigningRequest
Обʼєкти CertificateSigningRequest надають механізм отримання x509 сертифікатів шляхом подання запиту на підписання сертифіката та його асинхронного затвердження та видачі.
Kubelets використовують цей API для отримання:
клієнтських сертифікатів для автентифікації в kube-apiserver (з використанням signerName "kubernetes.io/kube-apiserver-client-kubelet").
сертифікатів для TLS точок доступу, до яких kube-apiserver може підключатися безпечно (з використанням signerName "kubernetes.io/kubelet-serving").
Цей API можна використовувати для запиту клієнтських сертифікатів для автентифікації в kube-apiserver (з використанням signerName "kubernetes.io/kube-apiserver-client"), або для отримання сертифікатів від власних не-Kubernetes підписувачів.
spec містить запит на сертифікат і є незмінним після створення. Лише поля request, signerName, expirationSeconds та usages можна встановлювати під час створення. Інші поля визначаються Kubernetes і не можуть бути змінені користувачами.
status містить інформацію про те, чи запит затверджено або відхилено, а також сертифікат, виданий підписувачем, або умову невдачі, що вказує на помилку підписувача.
CertificateSigningRequestSpec
CertificateSigningRequestSpec містить запит на сертифікат.
Поле
Опис
expirationSeconds integer
expirationSeconds є запитуваною тривалістю дійсності виданого сертифіката. Підписувач сертифіката може видати сертифікат з іншою тривалістю дійсності, тому клієнт повинен перевіряти різницю між полями notBefore та notAfter у виданому сертифікаті, щоб визначити фактичну тривалість. Реалізації відомих вбудованих підписувачів Kubernetes у v1.22+ будуть дотримуватися цього поля, якщо запитувана тривалість не перевищує максимальну тривалість, яку вони будуть дотримуватися відповідно до прапора CLI --cluster-signing-duration для менеджера контролерів Kubernetes. Підписувачі сертифікатів можуть не дотримуватися цього поля з різних причин:
Старий підписувач, який не знає про поле (наприклад, вбудованої реалізації до v1.22)
Підписувач, чий налаштований максимум менший за запитувану тривалість
Підписувач, чий налаштований мінімум більший за запитувану тривалість
Мінімальне допустиме значення для expirationSeconds становить 600, тобто 10 хвилин.
extra object
extra містить додаткові атрибути користувача, який створив CertificateSigningRequest. Заповнюється API-сервером під час створення і є незмінним.
groups string array
groups містить членство в групах користувача, який створив CertificateSigningRequest. Заповнюється API-сервером під час створення і є незмінним.
request* string
request містить запит на підписання сертифіката x509, закодований у блоці PEM "CERTIFICATE REQUEST". При серіалізації у форматі JSON або YAML дані додатково кодуються у base64.
signerName* string
signerName вказує на запитуваного підписувача і є кваліфікованим іменем.
Запити на list/watch для CertificateSigningRequests можуть фільтруватися за цим полем, використовуючи fieldSelector "spec.signerName=NAME".
Відомі підписувачі Kubernetes:
"kubernetes.io/kube-apiserver-client": видає клієнтські сертифікати, які можна використовувати для автентифікації до kube-apiserver.
Запити до цього підписувача ніколи не схвалюються автоматично kube-controller-manager, можуть бути видані контролером "csrsigning" у kube-controller-manager.
"kubernetes.io/kube-apiserver-client-kubelet": видає клієнтські сертифікати, які kubelet використовує для автентифікації до kube-apiserver.
Запити до цього підписувача можуть бути автоматично схвалені контролером "csrapproving" у kube-controller-manager і можуть бути видані контролером "csrsigning" у kube-controller-manager.
"kubernetes.io/kubelet-serving" видає сертифікати для обслуговування, які kubelet використовує для обслуговування TLS кінцевих точок, до яких kube-apiserver може підключатися безпечно.
Запити до цього підписувача ніколи не схвалюються автоматично kube-controller-manager і можуть бути видані контролером "csrsigning" у kube-controller-manager.
Можна також вказати власні signerNames. Підписувач визначає:
Розподіл довіри: як розподіляється довіра (CA bundles).
Дозволені субʼєкти: і поведінка, коли запитується заборонений субʼєкт.
Обовʼязкові, дозволені або заборонені x509 розширення у запиті (включаючи чи дозволені subjectAltNames, які типи, обмеження на дозволені значення) і поведінка, коли запитується заборонене розширення.
Обовʼязкові, дозволені або заборонені ключові використання / розширені ключові використання.
Термін дії/тривалість сертифіката: чи встановлюється він підписувачем, чи налаштовується адміністратором.
Чи дозволені запити на сертифікати CA.
uid string
uid містить uid користувача, який створив CertificateSigningRequest. Заповнюється API-сервером під час створення і є незмінним.
usages string array
usages вказує набір ключових використань, запитаних у виданому сертифікаті. Запити на TLS клієнтські сертифікати зазвичай запитують: "digital signature", "key encipherment", "client auth". Запити на TLS серверні сертифікати зазвичай запитують: "key encipherment", "digital signature", "server auth". Дійсні значення: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"
username string
username містить імʼя користувача, який створив CertificateSigningRequest. Заповнюється API-сервером під час створення і є незмінним.
CertificateSigningRequestStatus
CertificateSigningRequestStatus містить стани, які використовуються для вказівки статусу запиту: схвалено/відхилено/не вдалося, а також виданий сертифікат.
Поле
Опис
certificate string
certificate заповнюється виданим сертифікатом підписувача після наявності умови "Approved". Це поле встановлюється через субресурс /status. Після заповнення це поле є незмінним. Якщо запит на підпис сертифіката відхилено, додається умова типу "Denied" і це поле залишається порожнім. Якщо підписувач не може видати сертифікат, додається умова типу "Failed" і це поле залишається порожнім. Вимоги до валідації:
certificate повинен містити один або більше PEM блоків.
Всі PEM блоки повинні мати мітку "CERTIFICATE", не містити заголовків, а закодовані дані повинні бути структурою сертифіката BER-кодування ASN.1, як описано в розділі 4 RFC5280.
Не-PEM вміст може зʼявлятися до або після PEM блоків "CERTIFICATE" і не перевіряється, щоб дозволити пояснювальний текст, як описано в розділі 5.2 RFC7468.
Якщо присутній більше одного PEM блоку, і визначення запитаного spec.signerName не вказує інше, перший блок є виданим сертифікатом, а наступні блоки слід розглядати як проміжні сертифікати і представляти в TLS рукопотисках.
Сертифікат кодується у форматі PEM. При серіалізації у форматі JSON або YAML дані додатково кодуються в base64, тому вони складаються з: base64( -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- )
lastTransitionTime це час, коли стан востаннє змінився з одного на інший. Якщо не встановлено, коли додається новий тип стану або змінюється статус наявного стану, сервер зазвичай встановлює це на поточний час.
lastUpdateTime це час останнього оновлення цього стану
message string
message містить зрозуміле для людини повідомлення з деталями про стан запиту
reason string
reason вказує коротку причину стану запиту
status* string
status стану, одне з True, False, Unknown. Стани Approved, Denied та Failed не можуть бути "False" або "Unknown".
type* string
type стану. Відомі стани: "Approved", "Denied" та "Failed". Стан "Approved" додається через субресурс /approval, що вказує на те, що запит було схвалено і його слід видати підписувачем. Стан "Denied" додається через субресурс /approval, що вказує на те, що запит було відхилено і його не слід видавати підписувачем. Стан "Failed" додається через субресурс /status, що вказує на те, що підписувач не зміг видати сертифікат. Стани Approved та Denied є взаємовиключними. Стани Approved, Denied та Failed не можна видаляти після додавання. Дозволено лише один стан певного типу.
Операції
post Create
HTTP Запит
POST /apis/certificates.k8s.io/v1/certificatesigningrequests
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CertificateSigningRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CertificateSigningRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/certificates.k8s.io/v1/certificatesigningrequests
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1/watch/certificatesigningrequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CertificateSigningRequest
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1/watch/certificatesigningrequests
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва CertificateSigningRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва CertificateSigningRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
ClusterTrustBundle — це контейнер на рівні кластера для анкерів довіри X.509 (кореневих сертифікатів).
Об’єкти ClusterTrustBundle вважаються доступними для читання будь-яким автентифікованим користувачем у кластері, оскільки їх можна підключити до подів за допомогою проєкції clusterTrustBundle. Усі облікові записи служб зазвичай мають доступ для читання до ClusterTrustBundles. Користувачі, які мають доступ до кластера лише на рівні простору імен, можуть читати ClusterTrustBundles, імітуючи обліковий запис служби, до якого вони мають доступ.
Він може бути опціонально повʼязаний з конкретним призначальником, і в цьому випадку він містить один дійсний набір анкерів довіри для цього підписувача. Підписувачі можуть мати кілька повʼязаних ClusterTrustBundles; кожен з них є незалежним набором анкерів довіри для цього підписувача. Контроль доступу використовується для забезпечення того, щоб тільки користувачі з дозволами на підписувача могли створювати або модифікувати відповідний пакет.
apiVersion: certificates.k8s.io/v1beta1
import "k8s.io/api/certificates/v1beta1"
ClusterTrustBundle
ClusterTrustBundle — це контейнер на рівні кластера для анкерів довіри X.509 (кореневих сертифікатів).
Об’єкти ClusterTrustBundle вважаються доступними для читання будь-яким автентифікованим користувачем у кластері, оскільки їх можна підключити до подів за допомогою проєкції clusterTrustBundle. Усі облікові записи служб зазвичай мають доступ для читання до ClusterTrustBundles. Користувачі, які мають доступ до кластера лише на рівні простору імен, можуть читати ClusterTrustBundles, імітуючи обліковий запис служби, до якого вони мають доступ.
Він може бути опціонально повʼязаний з конкретним призначальником, і в цьому випадку він містить один дійсний набір анкерів довіри для цього підписувача. Підписувачі можуть мати кілька повʼязаних ClusterTrustBundles; кожен з них є незалежним набором анкерів довіри для цього підписувача. Контроль доступу використовується для забезпечення того, щоб тільки користувачі з дозволами на підписувача могли створювати або модифікувати відповідний пакет.
spec містить підписувача (якщо є) та анкері довіри.
ClusterTrustBundleSpec
ClusterTrustBundleSpec містить підписувача та анкері довіри.
Поле
Опис
signerName string
signerName вказує на повʼязаного підписувача, якщо такий є. Щоб створити або оновити ClusterTrustBundle, який встановлює signerName, ви повинні мати наступний дозвіл на рівні кластера: group=certificates.k8s.io resource=signers resourceName=<імʼя підписувача> verb=attest. Якщо signerName не порожній, то обʼєкт ClusterTrustBundle повинен мати імʼя з префіксом імені підписувача (заміна слешів на двокрапки). Наприклад, для імені підписувача example.com/foo, допустимі імена обʼєктів ClusterTrustBundle включають example.com:foo:abc та example.com:foo:v1. Якщо signerName порожній, то імʼя обʼєкта ClusterTrustBundle не повинно мати такого префікса. Запити на список/спостереження за ClusterTrustBundles можуть фільтрувати за цим полем, використовуючи селектор полів `spec.signerName=NAME`.
trustBundle* string
trustBundle містить окремі анкері довіри X.509 для цього пакета, у вигляді PEM-пакета PEM-обгорнутих, DER-форматованих сертифікатів X.509. Дані повинні складатися лише з блоків сертифікатів PEM, які розбираються як дійсні сертифікати X.509. Кожен сертифікат повинен включати розширення базових обмежень з встановленим бітом CA. Сервер API відхилить обʼєкти, що містять дублікати сертифікатів або використовують заголовки блоків PEM. Користувачі ClusterTrustBundles, включаючи Kubelet, можуть змінювати порядок і видаляти дублікати блоків сертифікатів у цьому файлі відповідно до власної логіки, а також видаляти заголовки блоків PEM та дані між блоками.
POST /apis/certificates.k8s.io/v1beta1/clustertrustbundles
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/certificates.k8s.io/v1beta1/clustertrustbundles/{name}
Параметри шляху
Назва
Тип
Опис
name
string
name of the ClusterTrustBundle
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/clustertrustbundles/{name}
Параметри шляху
Назва
Тип
Опис
name
string
name of the ClusterTrustBundle
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/certificates.k8s.io/v1beta1/clustertrustbundles
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/watch/clustertrustbundles/{name}
Параметри шляху
Назва
Тип
Опис
name
string
name of the ClusterTrustBundle
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/watch/clustertrustbundles
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
PodCertificateRequest кодує pod, який запитує сертифікат у заданого підписувача.
Kubelets використовують цей API для реалізації проєкцій томів podCertificate
apiVersion: certificates.k8s.io/v1beta1
import "k8s.io/api/certificates/v1beta1"
PodCertificateRequest
PodCertificateRequest кодує pod, який запитує сертифікат у заданого підписувача.
Kubelets використовують цей API для реалізації проєкцій томів podCertificate
status містить виданий сертифікат та стандартний набір умов.
PodCertificateRequestSpec
PodCertificateRequestSpec описує запит на сертифікат. Усі поля є незмінними після створення.
Поле
Опис
maxExpirationSeconds integer
maxExpirationSeconds є максимально дозволеним терміном дії сертифіката. Якщо не вказано, kube-apiserver встановить його на 86400 (24 години). kube-apiserver відхилить значення менше ніж 3600 (1 година). Максимально допустиме значення становить 7862400 (91 день). Реалізація підписувача може видавати сертифікат з будь-яким терміном дії *коротшим* за MaxExpirationSeconds, але не менше ніж 3600 секунд (1 година). Це обмеження забезпечується kube-apiserver. Підписувачі kubernetes.io ніколи не видаватимуть сертифікати з терміном дії більше ніж 24 години.
nodeName* string
nodeName є імʼям вузла, до якого призначено под.
nodeUID* string
nodeUID є UID вузла, до якого призначено под.
pkixPublicKey string
PKIX-серіалізований відкритий ключ, на який підписувач видасть сертифікат. Ключ повинен бути одним із RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521 або ED25519. Зверніть увагу, що цей список може бути розширений у майбутньому. Реалізації підписувачів не обовʼязково підтримують усі типи ключів, підтримувані kube-apiserver та kubelet. Якщо підписувач не підтримує тип ключа, використаний для даного PodCertificateRequest, він повинен відхилити запит, встановивши запис у status.conditions з типом "Denied" і причиною "UnsupportedKeyType". Він також може запропонувати тип ключа, який він підтримує, у полі message. Застаріле: Це поле замінено на StubPKCS10Request. Якщо встановлено StubPKCS10Request, це поле повинно бути порожнім. Реалізації підписувачів повинні витягувати відкритий ключ з поля StubPKCS10Request.
podName* string
podName є імʼям пода, до якого буде змонтовано сертифікат.
podUID* string
podUID є UID пода, до якого буде змонтовано сертифікат.
proofOfPossession string
Підтвердження того, що kubelet, який робить запит, володіє приватним ключем, що відповідає pkixPublicKey. Воно формується шляхом підписання ASCII-байтів UID пода за допомогою pkixPublicKey. kube-apiserver перевіряє підтвердження під час створення PodCertificateRequest. Якщо ключ є RSA, підпис здійснюється над ASCII-байтами UID пода з використанням RSASSA-PSS з RFC 8017 (як реалізовано у функції golang crypto/rsa.SignPSS з nil опціями). Якщо ключ є ECDSA, підпис здійснюється відповідно до SEC 1, Version 2.0 (як реалізовано у функції golang crypto/ecdsa.SignASN1). Якщо ключ є ED25519, підпис здійснюється відповідно до ED25519 Specification (як реалізовано у функції golang crypto/ed25519.Sign). Застаріле: Це поле замінено на StubPKCS10Request. Якщо встановлено StubPKCS10Request, це поле повинно бути порожнім.
serviceAccountName* string
serviceAccountName є імʼям службового облікового запису, під яким працює под.
serviceAccountUID* string
serviceAccountUID є UID службового облікового запису, під яким працює под.
signerName* string
signerName вказує на запитуваного підписувача. Усі імена підписувачів, що починаються з kubernetes.io, зарезервовані для використання проектом Kubernetes. Наразі існує один відомий підписувач, задокументований проектом Kubernetes, kubernetes.io/kube-apiserver-client-pod, який видає клієнтські сертифікати, зрозумілі kube-apiserver. Наразі він не реалізований.
stubPKCS10Request* string
PKCS#10 запит на підпис сертифіката (DER-серіалізований), згенерований Kubelet за допомогою приватного ключа субʼєкта. Більшість реалізацій підписувачів ігнорують вміст CSR, крім витягання відкритого ключа субʼєкта. API-сервер автоматично перевіряє підпис CSR під час прийому, тому підписувачеві не потрібно повторювати перевірку. CSR, згенеровані kubelet, повністю порожні. Відкритий ключ субʼєкта повинен бути одним із RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521 або ED25519. Зверніть увагу, що цей список може бути розширений у майбутньому. Реалізації підписувачів не обовʼязково підтримують усі типи ключів, підтримувані kube-apiserver і kubelet. Якщо підписувач не підтримує тип ключа, використаний для даного PodCertificateRequest, він повинен відхилити запит, встановивши запис status.conditions з типом "Denied" і причиною "UnsupportedKeyType". Він також може запропонувати тип ключа, який він підтримує, у полі message.
unverifiedUserAnnotations object
unverifiedUserAnnotations дозволяють авторам подів передавати додаткову інформацію реалізації підписувача. Kubernetes ніяким чином не обмежує і не перевіряє ці метадані. Записи підлягають такій же перевірці, як і анотації метаданих об'єкта, з додатковою вимогою, що всі ключі повинні мати доменне префіксування. Обмежень на значення немає, крім загального обмеження на розмір всього поля. Підписувачі повинні документувати ключі та значення, які вони підтримують. Підписувачі повинні відхиляти запити, що містять ключі, які вони не розпізнають.
PodCertificateRequestStatus
PodCertificateRequestStatus описує стан запиту та містить дані сертифіката, якщо запит видано.
beginRefreshAt — це час, коли kubelet повинен почати спроби оновлення сертифіката. Це поле встановлюється через субресурс /status і повинно бути встановлено одночасно з certificateChain. Після заповнення це поле є незмінним. Це поле є лише підказкою. Kubelet може почати оновлення раніше або пізніше цього часу, якщо це необхідно.
certificateChain string
certificateChain заповнюється виданим підписувачем сертифікатом. Це поле встановлюється через субресурс /status. Після заповнення це поле є незмінним. Якщо запит на підпис сертифіката відхилено, додається стан типу "Denied", і це поле залишається порожнім. Якщо підписувач не може видати сертифікат, додається стан типу "Failed", і це поле залишається порожнім. Вимоги до перевірки:
certificateChain повинен складатися з одного або декількох сертифікатів у форматі PEM.
Кожен запис повинен бути дійсним сертифікатом у форматі PEM, обгорнутим у DER-кодований ASN.1, як описано в розділі 4 RFC5280. Якщо присутні більше одного блоку, і визначення запитаного spec.signerName не вказує інше, перший блок є виданим сертифікатом, а наступні блоки слід розглядати як проміжні сертифікати та представляти їх у TLS-рукопотисках. При проєкції ланцюга в том пода kubelet видалить будь-які дані між блоками PEM, а також будь-які заголовки блоків PEM.
conditions Condition array patch strategy: злиття за ключем type
conditions що застосовуються до запиту. Типи "Issued", "Denied" та "Failed" мають спеціальну обробку. Не більше одного з цих станів може бути присутнім, і вони повинні мати статус "True". Якщо запит відхилено з Reason=UnsupportedKeyType, підписувач може запропонувати тип ключа, який буде працювати, у полі message.
notAfter є час, коли сертифікат закінчує свою дію. Значення повинно бути таким самим, як значення notAfter у кінцевому сертифікаті в certificateChain. Це поле встановлюється через субресурс /status. Після заповнення воно є незмінним. Підписувач повинен встановити це поле одночасно з certificateChain.
notBefore є час, коли сертифікат стає дійсним. Значення повинно бути таким самим, як значення notBefore у кінцевому сертифікаті в certificateChain. Це поле встановлюється через субресурс /status. Після заповнення воно є незмінним. Підписувач повинен встановити це поле одночасно з certificateChain.
POST /apis/certificates.k8s.io/v1beta1/namespaces/{namespace}/podcertificaterequests
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/certificates.k8s.io/v1beta1/namespaces/{namespace}/podcertificaterequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodCertificateRequest
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/namespaces/{namespace}/podcertificaterequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodCertificateRequest
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/certificates.k8s.io/v1beta1/namespaces/{namespace}/podcertificaterequests
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/podcertificaterequests
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/watch/namespaces/{namespace}/podcertificaterequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodCertificateRequest
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/watch/namespaces/{namespace}/podcertificaterequests
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/certificates.k8s.io/v1beta1/watch/podcertificaterequests
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/certificates.k8s.io/v1beta1/namespaces/{namespace}/podcertificaterequests/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodCertificateRequest
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/certificates.k8s.io/v1beta1/namespaces/{namespace}/podcertificaterequests/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodCertificateRequest
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
acquireTime — це час, коли поточний lease був отриманий.
holderIdentity string
holderIdentity містить ідентифікатор власника поточного lease. Якщо використовується координоване обрання лідера, ідентифікатор власника повинен бути рівним полю LeaseCandidate.metadata.name обраного кандидата.
leaseDurationSeconds integer
leaseDurationSeconds — це тривалість, яку кандидати на lease повинні чекати, щоб примусово його отримати. Це вимірюється від часу останнього спостережуваного renewTime.
leaseTransitions integer
leaseTransitions — це кількість переходів lease між власниками.
preferredHolder string
PreferredHolder сигналізує власнику lease, що існує більш оптимальний власник, і lease слід звільнити. Це поле можна встановити лише якщо також встановлено Strategy.
renewTime — це час, коли поточний власник lease востаннє оновлював lease.
strategy string
Strategy вказує стратегію вибору лідера для координованого обрання лідера. Якщо поле не вказано, активної координації для цього lease немає. (Alpha) Використання цього поля вимагає увімкнення функціональної можливості CoordinatedLeaderElection.
POST /apis/coordination.k8s.io/v1/namespaces/{namespace}/leases
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва обʼєкта Lease
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва обʼєкта Lease
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/coordination.k8s.io/v1/namespaces/{namespace}/leases
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва обʼєкта Lease
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
LeaseCandidate визначає кандидата для обʼєкта Lease. Кандидати створюються таким чином, щоб координовані вибори лідера обрали найкращого лідера зі списку кандидатів.
apiVersion: coordination.k8s.io/v1beta1
import "k8s.io/api/coordination/v1beta1"
LeaseCandidate
LeaseCandidate визначає кандидата для обʼєкта Lease. Кандидати створюються таким чином, щоб координовані вибори лідера обрали найкращого лідера зі списку кандидатів.
BinaryVersion визначає бінарну версію. Вона повинна бути у форматі semver без v на початку. Це поле обовʼязкове.
emulationVersion string
EmulationVersion визначає версію емуляції. Вона повинна бути у форматі semver без v на початку. EmulationVersion повинна бути менше або дорівнювати BinaryVersion. Це поле обовʼязкове, коли стратегія "OldestEmulationVersion".
leaseName* string
LeaseName визначає назву лізингу, за який цей кандидат змагається. Обмеження на це поле такі ж, як і на Lease.name. Кілька кандидатів на лізинг можуть посилатися на той самий Lease.name. Це поле незмінне.
PingTime визначає останній час, коли сервер запитував LeaseCandidate про оновлення. Це робиться лише під час виборів лідера, щоб перевірити, чи стали якісь LeaseCandidates непридатними. Коли PingTime оновлюється, LeaseCandidate відповідає оновленням RenewTime.
RenewTime визначає час останнього оновлення LeaseCandidate. Кожного разу, коли Lease потребує проведення виборів лідера, поле PingTime оновлюється, щоб сигналізувати LeaseCandidate, що вони повинні оновити RenewTime. Старі об'єкти LeaseCandidate також збираються сміттєзбирачем, якщо минуло багато годин з моменту останнього оновлення. Поле PingTime оновлюється регулярно, щоб запобігти збору сміття для ще активних LeaseCandidates.
strategy* string
Strategy визначає стратегію, яку координовані вибори лідера використовуватимуть для вибору лідера. Якщо кілька кандидатів на той самий Lease повертають різні стратегії, буде використана стратегія, надана кандидатом з останньою BinaryVersion. Якщо конфлікт все ще існує, це помилка користувача, і координовані вибори лідера не будуть працювати з Lease до вирішення конфлікту.
POST /apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leasecandidates
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leasecandidates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва LeaseCandidate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leasecandidates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва LeaseCandidate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leasecandidates
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1beta1/leasecandidates
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leasecandidates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва LeaseCandidate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leasecandidates
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/coordination.k8s.io/v1beta1/watch/leasecandidates
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Event — це повідомлення про подію, що відбулася десь у кластері. Зазвичай воно вказує на певну зміну стану в системі. Події мають обмежений термін зберігання, а тригери та повідомлення можуть змінюватися з часом. Споживачі подій не повинні покладатися на те, що час виникнення події з певною причиною (Reason) відображає незмінний базовий тригер, або на те, що події з цією причиною будуть існувати постійно. Події слід розглядати як інформативні, надані за принципом «найкращих зусиль» та як додаткові дані.
apiVersion: events.k8s.io/v1
import "k8s.io/api/events/v1"
Event
Event — це повідомлення про подію, що відбулася десь у кластері. Зазвичай воно вказує на певну зміну стану в системі. Події мають обмежений термін зберігання, а тригери та повідомлення можуть змінюватися з часом. Споживачі подій не повинні покладатися на те, що час виникнення події з певною причиною (Reason) відображає незмінний базовий тригер, або на те, що події з цією причиною будуть існувати постійно. Події слід розглядати як інформативні, надані за принципом «найкращих зусиль» та як додаткові дані.
Поле
Опис
action string
action є дією, що була виконана або не вдалася щодо відповідного обʼєкта. Поле є машинозчитуваним. Це поле не може бути порожнім для нових подій і може містити максимум 128 символів.
note є описом стану цієї операції, зрозумілим для людини. Максимальна довжина note становить 1 кБ, але бібліотеки повинні бути готові обробляти значення до 64 кБ.
reason string
reason є причиною, чому була виконана дія. Поле зрозуміле для людини. Це поле не може бути порожнім для нових подій і може містити максимум 128 символів.
regarding містить обʼєкт, якого стосується ця подія. У більшості випадків це обʼєкт, який реалізує контролер, наприклад, ReplicaSetController реалізує ReplicaSets, і ця подія виникає через зміни в обʼєкті ReplicaSet.
related є необовʼязковим вторинним обʼєктом для більш складних дій. Наприклад, коли обʼєкт regarding викликає створення або видалення повʼязаного обʼєкта.
reportingController string
reportingController є назвою контролера, який створив цю подію, наприклад, kubernetes.io/kubelet. Це поле не може бути порожнім для нових подій.
reportingInstance string
reportingInstance є ідентифікатором екземпляра контролера, наприклад, kubelet-xyzf. Це поле не може бути порожнім для нових подій і може містити максимум 128 символів.
series містить дані про серію подій, яку представляє ця подія, або nil, якщо це одиночна подія.
type string
type визначає тип цієї події (Normal, Warning), нові типи можуть бути додані в майбутньому. Це поле машинозчитуване. Воно не може бути порожнім для нових подій.
Стандартні метадані списку. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
EventSeries
EventSeries містить інформацію про серії подій, тобто про те, що відбувалося або відбувається безперервно протягом певного часу. Частота оновлення EventSeries залежить від репортерів подій. Стандартний репортер подій у "k8s.io/client-go/tools/events/event_broadcaster.go" показує, як ця структура оновлюється під час тактів, і може слугувати орієнтиром для налаштування власних реалізацій репортерів.
Поле
Опис
count* integer
count визначає кількість випадків у цій серії до часу останнього сигналу.
lastObservedTime визначає час, коли остання подія з серії була зафіксована перед останнім сигналом.
Операції
post Create
HTTP Запит
POST /apis/events.k8s.io/v1/namespaces/{namespace}/events
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/events.k8s.io/v1/namespaces/{namespace}/events/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Event
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/events.k8s.io/v1/namespaces/{namespace}/events/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Event
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/events.k8s.io/v1/namespaces/{namespace}/events
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/events.k8s.io/v1/watch/namespaces/{namespace}/events/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Event
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/events.k8s.io/v1/watch/namespaces/{namespace}/events
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Код помилки стану для компонента. Наприклад, код помилки перевірки стану.
message string
Повідомлення про стан компонента. Наприклад, інформація про перевірку стану.
status* string
Стан стану для компонента. Дійсні значення для "Healthy": "True", "False" або "Unknown".
type* string
Тип стану для компонента. Дійсне значення: "Healthy"
Операції
get Read
HTTP Запит
GET /api/v1/componentstatuses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва компонента ComponentStatus
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
BinaryData містить бінарні дані. Кожен ключ повинен складатися з буквено-цифрових символів, '-', '_' або '.'. BinaryData може містити послідовності байтів, які не входять до діапазону UTF-8. Ключі, збережені в BinaryData, не повинні перекриватися з ключами в полі Data, це перевіряється під час процесу валідації. Використання цього поля вимагатиме apiserver і kubelet версії 1.10+.
data object
Data містить конфігураційні дані. Кожен ключ повинен складатися з буквено-цифрових символів, '-', '_' або '.'. Значення з послідовностями байтів, які не входять до діапазону UTF-8, повинні використовувати поле BinaryData. Ключі, збережені в Data, не повинні перекриватися з ключами в полі BinaryData, це перевіряється під час процесу валідації.
immutable boolean
Immutable, якщо встановлено в true, гарантує, що дані, збережені в ConfigMap, не можуть бути оновлені (можна змінювати лише метадані обʼєкта). Якщо не встановлено в true, поле можна змінювати в будь-який час. Стандартно — nil.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/configmaps/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ConfigMap
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/configmaps/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ConfigMap
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/configmaps/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ConfigMap
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/configmaps
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Endpoints є застарілим API і не містить інформації про всі функції Service. Використовуйте discoveryv1.EndpointSlice для повної інформації про точки доступу Service.
Застаріле: Цей API було визнано застарілим у v1.33+. Використовуйте discoveryv1.EndpointSlice.
apiVersion: v1
import "k8s.io/api/core/v1"
Endpoints
Endpoints є колекцією точок доступу, які реалізують фактичний сервіс. Приклад:
Endpoints є застарілим API і не містить інформації про всі функції Service. Використовуйте discoveryv1.EndpointSlice для повної інформації про точки доступу Service.
Deprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.
Набір всіх точок доступу є обʼєднанням усіх підмножин. Адреси розміщуються в підмножинах відповідно до IP-адрес, які вони мають спільними. Одна адреса з кількома портами, деякі з яких готові, а деякі ні (оскільки вони походять з різних контейнерів), призведе до того, що адреса буде відображатися в різних підмножинах для різних портів. Жодна адреса не зʼявиться одночасно в Addresses і NotReadyAddresses в одній підмножині. Набори адрес і портів, що складають сервіс.
EndpointsList
EndpointsList список точок доступу. Застаріле: Цей API було визнано застарілим у v1.33+.
Стандартні метадані списку. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
EndpointAddress
EndpointAddress це кортеж, який описує одну IP-адресу. Застаріле: Цей API було визнано застарілим у v1.33+.
Поле
Опис
hostname string
Імʼя хосту цієї точки доступу
ip* string
IP-адреса цієї точки доступу. Не може бути loopback (127.0.0.0/8 або ::1), link-local (169.254.0.0/16 або fe80::/10) або link-local multicast (224.0.0.0/24 або ff02::/16).
nodeName string
Опціонально: Вузол, який розміщує цю точку доступу. Це можна використовувати для визначення точок доступу, локальних для вузла.
EndpointPort це кортеж, який описує один порт. Застаріле: Цей API було визнано застарілим у v1.33+.
Поле
Опис
appProtocol string
Протокол застосунку для цього порту. Використовується як підказка для реалізацій, щоб запропонувати більш багатий функціонал для протоколів, які вони розуміють. Це поле дотримується стандартного синтаксису міток Kubernetes. Дійсні значення можуть бути:
'kubernetes.io/h2c' — Попереднє знання HTTP/2 у вигляді відкритого тексту, як описано в RFC 9113
'kubernetes.io/ws' — WebSocket у вигляді відкритого тексту, як описано в RFC 6455
'kubernetes.io/wss' — WebSocket через TLS, як описано в RFC 6455
Інші протоколи повинні використовувати імена з префіксом, визначені реалізацією, наприклад mycompany.com/my-custom-protocol.
name string
Імʼя цього порту. Воно повинно збігатися з полем 'name' у відповідному ServicePort. Має бути DNS_LABEL. Опціонально лише якщо визначено один порт.
port* integer
Номер порту цієї точки доступу.
protocol string
IP протокол для цього порту. Має бути UDP, TCP або SCTP. За замовчуванням TCP.
Можливі значення enum:
`"SCTP"` це протокол SCTP.
`"TCP"` це протокол TCP.
`"UDP"` це протокол UDP.
EndpointSubset
EndpointSubset це група адрес з спільним набором портів. Розширений набір точок доступу є декартовим добутком Addresses x Ports. Наприклад, якщо задано:
IP-адреси, які пропонують відповідні порти, позначені як готові. Ці точки доступу слід вважати безпечними для використання балансувальниками навантаження та клієнтами.
IP-адреси, які пропонують відповідні порти, але наразі не позначені як готові, оскільки вони ще не завершили запуск, нещодавно не пройшли перевірку готовності або нещодавно не пройшли перевірку життєздатності.
Номери портів, доступні на відповідних IP-адресах.
Операції
post Create
HTTP Запит
POST /api/v1/namespaces/{namespace}/endpoints
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/endpoints/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Endpoints
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/endpoints/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Endpoints
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/endpoints/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Endpoints
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/endpoints
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Event є звітом про подію десь у кластері. Події мають обмежений час зберігання, а тригери та повідомлення можуть змінюватися з часом. Споживачі подій не повинні покладатися на час події з певною причиною, що відображає послідовний основний тригер, або на подальше існування подій з цією причиною. Події слід розглядати як інформативні, надані за принципом «максимальних зусиль» та допоміжні дані.
apiVersion: v1
import "k8s.io/api/core/v1"
Event
Event є звітом про подію десь у кластері. Події мають обмежений час зберігання, а тригери та повідомлення можуть змінюватися з часом. Споживачі подій не повинні покладатися на час події з певною причиною, що відображає послідовний основний тригер, або на подальше існування подій з цією причиною. Події слід розглядати як інформативні, надані за принципом «максимальних зусиль» та допоміжні дані.
Поле
Опис
action string
Яку дію було виконано/не вдалося виконати щодо обʼєкта Regarding.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/events/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Event
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
LimitRangeItem визначає мінімальні та максимальні обмеження використання ресурсів для ресурсів, що відповідають певному типу.
Поле
Опис
default object
Стандартне значення обмеження ресурсів за назвою ресурсу, якщо обмеження ресурсу не вказано.
defaultRequest object
Стандартне значення запиту ресурсів за назвою ресурсу, якщо запит ресурсу не вказано.
max object
Максимальні обмеження використання для цього типу за назвою ресурсу.
maxLimitRequestRatio object
Якщо вказано MaxLimitRequestRatio, названий ресурс повинен мати запит і ліміт, які обидва не дорівнюють нулю, де ліміт, поділений на запит, менше або дорівнює перерахованому значенню; це представляє максимальний сплеск для названого ресурсу.
min object
Мінімальні обмеження використання для цього типу за назвою ресурсу.
type* string
Тип ресурсу, до якого застосовується це обмеження.
Операції
post Create
HTTP Запит
POST /api/v1/namespaces/{namespace}/limitranges
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/limitranges/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва LimitRange
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/limitranges/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва LimitRange
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/limitranges/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва LimitRange
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/limitranges
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Останній раз, коли стан простору імен змінився з одного на інший.
message string
Зрозуміле для людини повідомлення, що вказує деталі останньої зміни стану.
reason string
Унікальна, однослівна, CamelCase причина останньої зміни стану.
status* string
Статус стану, одне з значень: True, False, Unknown.
type* string
Тип стану контролера простору імен.
Операції
post Create
HTTP Запит
POST /api/v1/namespaces
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Застаріле: Раніше використовувалося для вказівки джерела конфігурації вузла для функції DynamicKubeletConfig. Ця функція видалена.
externalID string
Застаріле. Не всі kubelet встановлюватимуть це поле. Поле видалено після 1.13. Див.: https://issues.k8s.io/61966
podCIDR string
PodCIDR представляє діапазон IP-адрес для подів, призначений вузлу.
podCIDRs string array patch strategy: merge
podCIDRs представляє діапазони IP-адрес, призначені вузлу для використання подами на цьому вузлі. Якщо це поле вказано, 0-й елемент повинен відповідати полю podCIDR. Воно може містити не більше 1 значення для кожного з IPv4 та IPv6.
providerID string
ID вузла, призначений постачальником хмари у форматі: <ProviderName>://<ProviderSpecificNodeID>
Список адрес, доступних для вузла. Отримується від постачальника хмари, якщо доступно. Детальніше: https://kubernetes.io/docs/reference/node/node-status/#addresses Примітка: Це поле оголошено як придатне до злиття, але ключ злиття недостатньо унікальний, що може призвести до пошкодження даних при злитті. Використовуйте патч з повним заміщенням. Див.: https://pr.k8s.io/79391 для прикладу. Споживачі повинні припускати, що адреси можуть змінюватися протягом життя вузла. Однак є деякі винятки, коли це може бути неможливо, наприклад, поди, які успадковують адресу вузла у своєму статусі, або споживачі API вниз (status.hostIP).
allocatable object
Allocatable представляє ресурси вузла, доступні для планування. Зазвичай дорівнює Capacity.
Останній раз, коли стан змінився з одного на інший.
message string
Зрозуміле для людини повідомлення, що вказує деталі останнього переходу стану.
reason string
(коротко) причина останнього переходу стану.
status* string
Статус стану, один з True, False, Unknown.
type* string
Тип стану вузла.
NodeConfigSource
NodeConfigSource визначає джерело конфігурації вузла. Точно одне субполе (за винятком метаданих) повинно бути ненульовим. Цей API застарів з версії 1.22.
Active повідомляє про перевірену конфігурацію, яку вузол активно використовує. Параметр «Active» показує або поточну версію призначеної конфігурації, або поточну версію конфігурації LastKnownGood, залежно від того, чи призводить спроба використання призначеної конфігурації до помилки.
Assigned повідомляє про перевірену конфігурацію, яку вузол намагається використовувати. Коли Node.Spec.ConfigSource оновлюється, вузол зберігає повʼязаний пакунок конфігурації на локальному диску разом із записом, що вказує на призначену конфігурацію. Вузол звертається до цього запису, щоб вибрати свій контрольний пункт конфігурації, і повідомляє про цей запис у Assigned. Assigned оновлюється в статусі лише після того, як запис був збережений на диску. Коли Kubelet перезапускається, він намагається зробити Assigned конфігурацію Active, завантажуючи та перевіряючи контрольний пакет, визначений Assigned.
error string
Error описує будь-які проблеми з узгодженням Spec.ConfigSource з Active конфігурацією. Помилки можуть виникати, наприклад, при спробі зберегти Spec.ConfigSource у локальному записі Assigned, при спробі зберегти пов'язаний з Spec.ConfigSource пакет, при спробі завантажити або перевірити Assigned конфігурацію тощо. Помилки можуть виникати на різних етапах синхронізації конфігурації. Ранні помилки (наприклад, помилки завантаження або збереження) не призведуть до відкату до LastKnownGood і можуть вирішитися під час повторних спроб Kubelet. Пізніші помилки (наприклад, завантаження або перевірка збереженої конфігурації) призведуть до відкату до LastKnownGood. У останньому випадку зазвичай можливо вирішити помилку, виправивши конфігурацію, призначену в Spec.ConfigSource. Додаткову інформацію для налагодження можна знайти, шукаючи повідомлення про помилку в журналі Kubelet. Error є описом стану помилки для людини; машини можуть перевіряти, чи порожнє поле Error, але не повинні покладатися на стабільність тексту Error між версіями Kubelet.
LastKnownGood повідомляє про збережену конфігурацію, до якої вузол повернеться у разі виникнення помилки при спробі використати Assigned конфігурацію. Assigned конфігурація стає LastKnownGood конфігурацією, коли вузол визначає, що Assigned конфігурація є стабільною та правильною. Це наразі реалізовано як 10-хвилинний період витримки, що починається з моменту оновлення локального запису Assigned конфігурації. Якщо Assigned конфігурація є Active наприкінці цього періоду, вона стає LastKnownGood. Зверніть увагу, що якщо Spec.ConfigSource скидається до nil (використовуються локальні стандартні значення), LastKnownGood також негайно скидається до nil, оскільки локальна стандартна конфігурація завжди вважається прийнятною. Не слід робити припущення щодо методу визначення стабільності та правильності конфігурації вузлом, оскільки це може змінитися або стати налаштовуваним у майбутньому.
NodeDaemonEndpoints
NodeDaemonEndpoints перераховує порти, відкриті демонами, що працюють на вузлі.
NodeFeatures описує набір функцій, реалізованих у CRI. Функції, що містяться в NodeFeatures, повинні залежати лише від реалізації CRI, незалежно від обробників середовища виконання.
Поле
Опис
supplementalGroupsPolicy boolean
SupplementalGroupsPolicy встановлено в true, якщо середовище виконання підтримує SupplementalGroupsPolicy та ContainerUser.
NodeRuntimeHandler
NodeRuntimeHandler є набором інформації про обробники середовища виконання.
Вузол, до якого прикріплено цей Taint, має "ефект" на будь-який pod, який не толерує цей Taint.
Поле
Опис
effect* string
Обовʼязково. Ефект Taint на поди, які не толерують цей Taint. Дійсні ефекти: NoSchedule, PreferNoSchedule та NoExecute.
Можливі значення enum:
"NoExecute" Виселити будь-які вже запущені поди, які не толерують цей Taint. Наразі застосовується NodeController.
"NoSchedule" Не дозволяти новим подам плануватися на вузол, якщо вони не толерують цей Taint, але дозволяти всім подам, надісланим до Kubelet без проходження через планувальник, запускатися, і дозволяти всім вже запущеним подам продовжувати роботу. Застосовується планувальником.
"PreferNoSchedule" Як TaintEffectNoSchedule, але планувальник намагається не планувати нові поди на вузол, а не забороняє нові поди плануватися на вузол повністю. Застосовується планувальником.
key* string
Обовʼязково. Ключ Taint, який буде застосовано до вузла.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
awsElasticBlockStore представляє ресурс диска AWS, який підключається до хост-машини kubelet і потім надається поду. Застаріло: AWSElasticBlockStore застарів. Всі операції для типу awsElasticBlockStore перенаправляються до драйвера CSI ebs.csi.aws.com. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
azureDisk представляє монтування диска Azure Data на хості та привʼязку до поду. Застаріло: AzureDisk застарів. Всі операції для типу azureDisk перенаправляються до драйвера CSI disk.csi.azure.com.
azureFile представляє монтування служби Azure File на хості та привʼязку до поду. Застаріло: AzureFile застарів. Всі операції для типу azureFile перенаправляються до драйвера CSI file.csi.azure.com.
cinder представляє том Cinder, підключений і змонтований на хості kubelet. Застаріло: Cinder застарів. Всі операції для типу cinder перенаправляються до драйвера CSI cinder.csi.openstack.org. Детальніше: https://examples.k8s.io/mysql-cinder-pd/README.md
claimRef є частиною двостороннього звʼязку між PersistentVolume та PersistentVolumeClaim. Очікується, що буде ненульовим, коли звʼязок встановлено. claim.VolumeName є авторитетним звʼязком між PV та PVC. Детальніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
flexVolume представляє загальний ресурс тому, який надається/підключається за допомогою втулка на основі exec. Застаріло: FlexVolume застарів. Розгляньте можливість використання CSIDriver замість цього.
flocker представляє том Flocker, підключений до хост-машини kubelet і наданий поду для використання. Це залежить від того, що служба керування Flocker працює. Застаріло: Flocker застарів, і тип flocker більше не підтримується.
gcePersistentDisk представляє ресурс диска GCE, який підключається до хост-машини kubelet і потім надається поду. Надається адміністратором. Застаріло: GCEPersistentDisk застарів. Всі операції для типу gcePersistentDisk перенаправляються до драйвера CSI pd.csi.storage.gke.io. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
glusterfs представляє том Glusterfs, який підключається до хост-машини і надається поду. Надається адміністратором. Застаріло: Glusterfs застарів, і тип glusterfs більше не підтримується. Детальніше: https://examples.k8s.io/volumes/glusterfs/README.md
hostPath представляє теку на хості. Надається розробником або тестувальником. Це корисно лише для розробки та тестування на одновузловій системі! Зберігання на хості не підтримується і НЕ ПРАЦЮВАТИМЕ в багатовузловому кластері. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
nodeAffinity визначає обмеження, які обмежують, з яких вузлів цей том може бути доступний. Це поле впливає на планування подів, які використовують цей том. Це поле можна змінювати, якщо увімкнено функціональну можливість MutablePVNodeAffinity.
persistentVolumeReclaimPolicy string
persistentVolumeReclaimPolicy визначає, що відбувається з постійним томом після його звільнення від заявки. Дійсні варіанти: Retain (стандартно для створених вручну PersistentVolumes), Delete (стандартно для динамічно створених PersistentVolumes) та Recycle (застарілий). Recycle повинен підтримуватися втулком томів, що лежить в основі цього PersistentVolume. Детальніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
Можливі значення enum:
"Delete" означає, що том буде видалено з Kubernetes після звільнення від його заявки. Втулок томів повинен підтримувати видалення.
"Recycle" означає, що том буде перероблено назад у пул невикористаних постійних томів після звільнення від його заявки. Втулок томів повинен підтримувати Recycling.
"Retain" означає, що том залишиться у своєму поточному стані (Released) для ручного відновлення адміністратором. Стандартна політика — Retain.
photonPersistentDisk представляє постійний диск PhotonController, підключений і змонтований на хості kubelets. Застаріло: PhotonPersistentDisk застарів, і внутрішній тип photonPersistentDisk більше не підтримується.
portworxVolume представляє том portworx, підключений і змонтований на хості kubelets. Застаріло: PortworxVolume застарів. Усі операції для внутрішнього типу portworxVolume перенаправляються до драйвера CSI pxd.portworx.com.
quobyte представляє монтування Quobyte на хості, яке триває протягом життєвого циклу пода. Застаріло: Quobyte застарів, і внутрішній тип quobyte більше не підтримується.
rbd представляє монтування Rados Block Device на хості, яке триває протягом життєвого циклу пода. Застаріло: RBD застарів, і внутрішній тип rbd більше не підтримується. Більше інформації: https://examples.k8s.io/volumes/rbd/README.md
scaleIO представляє постійний том ScaleIO, підключений і змонтований на вузлах Kubernetes. Застаріло: ScaleIO застарів, і внутрішній тип scaleIO більше не підтримується.
storageClassName string
storageClassName — це назва StorageClass, до якої належить цей постійний том. Порожнє значення означає, що цей том не належить до жодного StorageClass.
storageOS представляє том StorageOS, підключений до хост-машини kubelet і змонтований у поді. Застаріло: StorageOS застарів, і внутрішній тип storageos більше не підтримується. Більше інформації: https://examples.k8s.io/volumes/storageos/README.md
volumeAttributesClassName string
volumeAttributesClassName — це назва VolumeAttributesClass, до якої належить цей постійний том. Порожнє значення не дозволяється. Якщо це поле не встановлено, це означає, що цей том не належить до жодного VolumeAttributesClass. Це поле є змінним і може бути змінене драйвером CSI після успішного оновлення тому до нового класу. Для незвʼязаного PersistentVolume, volumeAttributesClassName буде співставлено з незвʼязаними PersistentVolumeClaims під час процесу звʼязування.
volumeMode string
volumeMode визначає, чи призначено том для використання з форматованою файловою системою, чи залишити його у стані сирого блоку. Значення Filesystem передбачається, якщо не включено в spec.
Можливі значення enum:
"Block" означає, що том не буде форматуватися файловою системою і залишиться сирим блочним пристроєм.
"Filesystem" означає, що том буде або вже форматований файловою системою.
vsphereVolume представляє vSphere том, підключений і змонтований на хості kubelet. Застаріло: VsphereVolume застарів. Всі операції для внутрішнього типу vsphereVolume перенаправляються до CSI драйвера csi.vsphere.vmware.com.
PersistentVolumeStatus
PersistentVolumeStatus є поточним станом постійного тому.
"Available" використовується для PersistentVolumes, які ще не привʼязані. Доступні томи утримуються звʼязувачем і зіставляються з PersistentVolumeClaims
"Bound" використовується для PersistentVolumes, які привʼязані
"Failed" використовується для PersistentVolumes, які не вдалося правильно переробити або видалити після звільнення з запиту
"Pending" використовується для PersistentVolumes, які недоступні
"Released" використовується для PersistentVolumes, де привʼязаний PersistentVolumeClaim був видалений. Звільнені томи повинні бути перероблені перед тим, як знову стати доступними. Ця фаза використовується звʼязувачем PersistentVolumeClaim для сигналізації іншому процесу про необхідність повторного захоплення ресурсу
reason string
reason є коротким рядком у CamelCase, який описує будь-яку помилку і призначений для машинного аналізу та акуратного відображення в CLI.
PersistentVolumeList
PersistentVolumeList є списком елементів PersistentVolume.
Диск AWS EBS повинен існувати перед монтуванням до контейнера. Диск також повинен знаходитися в тій же зоні AWS, що й kubelet. Диск AWS EBS можна монтувати лише як читання/запис один раз. Томи AWS EBS підтримують управління власністю та переназначення SELinux.
Поле
Опис
fsType string
fsType є типом файлової системи тому, який ви хочете змонтувати. Порада: переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, зазвичай використовується "ext4". Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
partition integer
partition є розділом у томі, який ви хочете змонтувати. Якщо не вказано, зазвичай монтується за іменем тому. Приклади: для тому /dev/sda1 вкажіть розділ як "1". Аналогічно, розділ тому для /dev/sda - "0" (або можна залишити властивість порожньою).
AzureDisk представляє монтування диска даних Azure на хості та привʼязку до поду.
Поле
Опис
cachingMode string
cachingMode є режимом кешування хоста: None, Read Only, Read Write.
Можливі значення enum:
"None"
"ReadOnly"
"ReadWrite"
diskName* string
diskName є імʼям диска даних у сховищі блобів
diskURI* string
diskURI є URI диска даних у сховищі блобів
fsType string
fsType є типом файлової системи для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Якщо не вказано, за замовчуванням використовується "ext4".
kind string
Очікуваними значеннями kind є
Shared: кілька блоб-дисків на обліковий запис зберігання
Dedicated: один блоб-диск на обліковий запис зберігання
Managed: керований Azure диск даних (тільки в керованому наборі доступності). За замовчуванням використовується shared
Можливі значення enum:
"Dedicated"
"Managed"
"Shared"
readOnly boolean
readOnly Стандартне значення — false (читання/запис). Якщо встановлено true, це змусить встановити параметр readOnly у VolumeMounts.
AzureFilePersistentVolumeSource
AzureFile представляє монтування Azure File Service на хості та привʼязку до поду.
Поле
Опис
readOnly boolean
readOnly Стандартне значення — false (читання/запис). Якщо встановлено true, це змусить встановити параметр readOnly у VolumeMounts.
secretName* string
secretName є імʼям секрету, який містить імʼя облікового запису Azure Storage та ключ
secretNamespace string
secretNamespace є простором імен секрету, який містить імʼя облікового запису Azure Storage та ключ. Зазвичай використовується той самий простір імен, що й для Pod
shareName* string
shareName є імʼям спільного ресурсу Azure
CSIPersistentVolumeSource
CSIPersistentVolumeSource представляє сховище, яке керується зовнішнім драйвером CSI.
controllerExpandSecretRef є посиланням на обʼєкт секрету, який містить конфіденційну інформацію для передачі драйверу CSI для завершення виклику CSI ControllerExpandVolume. Це поле є опціональним і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт секрету містить більше одного секрету, передаються всі секрети.
controllerPublishSecretRef є посиланням на обʼєкт секрету, який містить конфіденційну інформацію для передачі драйверу CSI для завершення виклику CSI ControllerPublishVolume та ControllerUnpublishVolume. Це поле є опціональним і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт секрету містить більше одного секрету, передаються всі секрети.
driver* string
driver є імʼям драйвера, який використовується для цього тома. Обовʼязково.
fsType string
fsType для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Напр. "ext4", "xfs", "ntfs".
nodeExpandSecretRef є посиланням на обʼєкт секрету, який містить конфіденційну інформацію для передачі драйверу CSI для завершення виклику CSI NodeExpandVolume. Це поле є опціональним і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт секрету містить більше одного секрету, передаються всі секрети.
nodePublishSecretRef є посиланням на обʼєкт секрету, який містить конфіденційну інформацію для передачі драйверу CSI для завершення виклику CSI NodePublishVolume та NodeUnpublishVolume. Це поле є опціональним і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт секрету містить більше одного секрету, передаються всі секрети.
nodeStageSecretRef є посиланням на обʼєкт секрету, який містить конфіденційну інформацію для передачі драйверу CSI для завершення виклику CSI NodeStageVolume та NodeUnstageVolume. Це поле є опціональним і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт секрету містить більше одного секрету, передаються всі секрети.
readOnly boolean
readOnly значення для передачі в ControllerPublishVolumeRequest. За замовчуванням false (читання/запис).
volumeAttributes object
volumeAttributes тома для публікації.
volumeHandle* string
volumeHandle є унікальним імʼям тома, яке повертається втулком CSI під час виклику CreateVolume для посилання на том у всіх наступних викликах. Обовʼязково.
CephFSPersistentVolumeSource
Представляє монтування файлової системи Ceph, яке триває протягом життя поду. Томи Cephfs не підтримують управління власністю або переназначення SELinux.
Представляє ресурс тома Cinder в Openstack. Том Cinder повинен існувати перед монтуванням до контейнера. Том також повинен бути в тому ж регіоні, що й kubelet. Томи Cinder підтримують управління власністю та переназначення SELinux.
Поле
Опис
fsType string
fsType є типом файлової системи для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, зазвичай використовується "ext4". Більше інформації: https://examples.k8s.io/mysql-cinder-pd/README.md
Представляє ресурс тома Fibre Channel. Томи Fibre Channel можна монтувати лише для читання/запису один раз. Томи Fibre Channel підтримують управління власністю та переназначення SELinux.
Поле
Опис
fsType string
fsType є типом файлової системи для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, зазвичай використовується "ext4".
lun integer
lun є опціональним: номер цільового lun для FC
readOnly boolean
readOnly є опціональним: зазвичай false (читання/запис). ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
targetWWNs string array
targetWWNs є опціональним: FC вказує всесвітні імена (worldwide names, WWN).
wwids string array
wwids є опціональним: всесвітні ідентифікатори томів FC (wwids). Потрібно встановити або wwids, або комбінацію targetWWNs і lun, але не обидва одночасно.
FlexPersistentVolumeSource
FlexPersistentVolumeSource представляє загальний ресурс постійного тому, який надається/підключається за допомогою втулка на основі виконуваного файлу.
Поле
Опис
driver* string
driver є імʼям драйвера, який використовується для цього тому.
fsType string
fsType є типом файлової системи для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Зазвичай файлову систему визначає скрипт FlexVolume.
options object
options є опціональним: це поле містить додаткові параметри команд, якщо вони є.
readOnly boolean
readOnly є опціональним: зазвичай false (читання/запис). ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
secretRef є опціональним: SecretRef є посиланням на обʼєкт секрету, що містить конфіденційну інформацію для передачі скриптам втулка. Це поле може бути порожнім, якщо обʼєкт секрету не вказано. Якщо обʼєкт секрету містить більше одного секрету, всі секрети передаються скриптам плагіна.
FlockerVolumeSource
Представляє том Flocker, змонтований агентом Flocker. Потрібно встановити лише одне з полів datasetName або datasetUUID. Томи Flocker не підтримують управління власністю або переназначення SELinux.
Поле
Опис
datasetName string
datasetName є імʼям набору даних, збереженого як метадані -> імʼя набору даних для Flocker слід вважати за застаріле
datasetUUID string
datasetUUID є UUID набору даних. Це унікальний ідентифікатор набору даних Flocker
GCEPersistentDiskVolumeSource
Представляє ресурс Persistent Disk у Google Compute Engine.
Том GCE PD повинен існувати перед монтуванням у контейнер. Диск також повинен знаходитися в тому ж проєкті та зоні GCE, що й kubelet. GCE PD можна монтувати лише як читання/запис один раз або як тільки для читання багато разів. GCE PD підтримує управління власністю та переназначення SELinux.
Поле
Опис
fsType string
fsType є типом файлової системи для монтування. Порада: переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, неявно вважається "ext4". Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
partition integer
partition є розділом у томі, який ви хочете змонтувати. Якщо не вказано, зазвичай монтується за іменем тому. Приклади: для тому /dev/sda1 вкажіть розділ як "1". Аналогічно, розділ тому для /dev/sda - "0" (або можна залишити властивість порожньою). Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
endpointsNamespace є простором імен, який містить точку доступу Glusterfs. Якщо це поле порожнє, EndpointNamespace зазвичай буде таким самим, як і простір імен привʼязаного PVC. Більше інформації: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
"" Для зворотної сумісності, залиште порожнім, якщо не встановлено
"BlockDevice" Блоковий пристрій повинен існувати за вказаним шляхом
"CharDevice" Символьний пристрій повинен існувати за вказаним шляхом
"Directory" Тека повинна існувати за вказаним шляхом
"DirectoryOrCreate" Якщо нічого не існує за вказаним шляхом, буде створена порожня тека з режимом файлу 0755, з тією ж групою та власником, що й Kubelet.
"File" Файл повинен існувати за вказаним шляхом
"FileOrCreate" Якщо нічого не існує за вказаним шляхом, буде створений порожній файл з режимом файлу 0644, з тією ж групою та власником, що й Kubelet.
"Socket" UNIX-сокет повинен існувати за вказаним шляхом
ISCSIPersistentVolumeSource
ISCSIPersistentVolumeSource представляє iSCSI диск. iSCSI томи можна монтувати лише як читання/запис один раз. iSCSI томи підтримують управління власністю та переназначення SELinux.
Поле
Опис
chapAuthDiscovery boolean
chapAuthDiscovery визначає, чи підтримується автентифікація iSCSI Discovery CHAP
chapAuthSession boolean
chapAuthSession визначає, чи підтримується автентифікація iSCSI Session CHAP
fsType string
fsType визначає тип файлової системи тому, який ви хочете змонтувати. Порада: переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, неявно вважається "ext4". Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
initiatorName string
initiatorName визначає користувацьке імʼя ініціатора iSCSI. Якщо initiatorName вказано разом з iscsiInterface, буде створено новий інтерфейс iSCSI <target portal>:\<volume name> для підключення.
iqn* string
iqn визначає iSCSI Qualified Name цільового пристрою.
iscsiInterface string
iscsiInterface визначає імʼя інтерфейсу, який використовує iSCSI транспорт. Зазвичай 'default' (tcp).
lun* integer
lun визначає номер iSCSI Target Lun.
portals string array
portals визначає список iSCSI Target Portal. Портал може бути або IP-адресою, або ip_addr:port, якщо порт відрізняється від стандартного (зазвичай TCP порти 860 та 3260).
readOnly boolean
readOnly визначає, чи буде примусово встановлено режим лише для читання в VolumeMounts. Зазвичай — false.
secretRef визначає CHAP Secret для автентифікації iSCSI цілі та ініціатора
targetPortal* string
targetPortal визначає iSCSI Target Portal. Портал може бути або IP-адресою, або ip_addr:port, якщо порт відрізняється від стандартного (зазвичай TCP порти 860 та 3260).
LocalVolumeSource
Local представляє безпосередньо підключене сховище зі спорідненістю до вузла
Поле
Опис
fsType string
fsType визначає тип файлової системи тому, який ви хочете змонтувати. Застосовується лише тоді, коли Path є блочним пристроєм. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Стандартно — автоматичний вибір файлової системи, якщо не вказано.
path* string
path визначає повний шлях до тому на вузлі. Це може бути або тека, або блочний пристрій (диск, розділ тощо).
NFSVolumeSource
Представляє NFS монтування, яке триває протягом життя поду. NFS томи не підтримують управління власністю або переназначення SELinux.
Представляє ресурс постійного диска Photon Controller.
Поле
Опис
fsType string
fsType визначає тип файлової системи тому, який ви хочете змонтувати. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Стандартно — автоматичний вибір файлової системи, якщо не вказано.
pdID* string
pdID визначає ідентифікатор постійного диска Photon Controller
PortworxVolumeSource
PortworxVolumeSource представляє ресурс тому Portworx.
Поле
Опис
fsType string
fsType визначає тип файлової системи тому, який ви хочете змонтувати. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs". Стандартно — автоматичний вибір файлової системи, якщо не вказано.
volumeID визначає унікальний ідентифікатор тому Portworx
QuobyteVolumeSource
Представляє Quobyte монтування, яке триває протягом життя поду. Quobyte томи не підтримують управління власністю або переназначення SELinux.
Поле
Опис
group string
group для відображення доступу до тому. Стандартно — група не вказана.
readOnly boolean
readOnly визначає, чи буде примусово встановлено режим лише для читання при монтуванні Quobyte тому. Стандартно — false.
registry* string
registry представляє один або кілька сервісів Quobyte Registry, вказаних як рядок у форматі host:port (кілька записів розділяються комами), який виступає центральним реєстром для томів
tenant string
tenant визначає власника даного Quobyte тому в бекенді. Використовується з динамічно створеними Quobyte томами, значення встановлюється плагіном
user string
user для відображення доступу до тому. Стандартно — користувач облікового запису сервісу.
volume* string
volume визначає рядок, який посилається на вже створений Quobyte том за назвою.
RBDPersistentVolumeSource
Представляє монтування Rados Block Device, яке триває протягом життя поду. RBD томи підтримують управління власністю та переназначення SELinux.
Поле
Опис
fsType string
fsType визначає тип файлової системи тому, який ви хочете змонтувати. Порада: переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, зазвичай використовується "ext4". Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#rbd
ScaleIOPersistentVolumeSource представляє постійний том ScaleIO
Поле
Опис
fsType string
fsType визначає тип файлової системи для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Зазвичай "xfs"
gateway* string
gateway визначає адресу хоста ScaleIO API Gateway.
protectionDomain string
protectionDomain визначає назву ScaleIO Protection Domain для налаштованого сховища.
readOnly boolean
readOnly зазвичай — false (читання/запис). readOnly тут примусово встановлює параметр ReadOnly у VolumeMounts.
secretRef визначає секрет для користувача ScaleIO та іншої конфіденційної інформації. Якщо не вказано, операція входу завершиться невдачею.
sslEnabled boolean
sslEnabled визначає прапорець для увімкнення/вимкнення SSL-зʼєднання з Gateway, зазвичай — false.
storageMode string
storageMode визначає, чи має сховище для тому бути ThickProvisioned або ThinProvisioned. Зазвичай — ThinProvisioned.
storagePool string
storagePool визначає пул сховища ScaleIO, повʼязаний із доменом захисту.
system* string
system визначає назву системи зберігання, як налаштовано в ScaleIO.
volumeName string
volumeName визначає назву тому, який вже створено в системі ScaleIO і який повʼязаний із цим джерелом тому.
SecretReference
SecretReference представляє Secret Reference. Містить достатньо інформації для отримання секрету в будь-якому просторі імен.
Поле
Опис
name string
name є унікальним у межах простору імен для посилання на ресурс секрету.
namespace string
namespace визначає простір, у межах якого імʼя секрету має бути унікальним.
StorageOSPersistentVolumeSource
Представляє ресурс постійного тому StorageOS.
Поле
Опис
fsType string
fsType визначає тип файлової системи для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Зазвичай "ext4"
readOnly boolean
readOnly зазвичай — false (читання/запис). readOnly тут примусово встановлює параметр ReadOnly у VolumeMounts.
secretRef визначає секрет для отримання облікових даних API StorageOS. Якщо не вказано, будуть використані стандартнізначення.
volumeName string
volumeName є зрозумілим для людини імʼям тому StorageOS. Імена томів унікальні лише в межах простору імен.
volumeNamespace string
volumeNamespace визначає область дії тому в межах StorageOS. Якщо простір імен не вказано, буде використано простір імен Pod. Це дозволяє відобразити область дії імен Kubernetes у StorageOS для більш тісної інтеграції. Встановіть VolumeName на будь-яке імʼя, щоб перевизначити стандартну поведінку. Встановіть "default", якщо ви не використовуєте простори імен у StorageOS. Простори імен, які не існують у StorageOS, будуть створені.
VolumeNodeAffinity
VolumeNodeAffinity визначає обмеження, які обмежують, з яких вузлів можна отримати доступ до цього тому.
required визначає жорсткі обмеження для вузлів, які повинні бути виконані.
VsphereVirtualDiskVolumeSource
Представляє ресурс тому vSphere.
Поле
Опис
fsType string
fsType визначає тип файлової системи для монтування. Повинно бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Якщо не вказано, зазвичай використовується "ext4".
storagePolicyID string
storagePolicyID є ідентифікатором профілю управління політиками зберігання (SPBM), повʼязаного з StoragePolicyName.
storagePolicyName string
storagePolicyName є імʼям профілю управління політиками зберігання (SPBM).
volumePath* string
volumePath визначає шлях, який ідентифікує vSphere том vmdk.
Операції
post Create
HTTP Запит
POST /api/v1/persistentvolumes
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо провайдер або зовнішній контролер підтримує вказане джерело даних, він створить новий том на основі вмісту вказаного джерела даних. Коли увімкнено функціональну можливість AnyVolumeDataSource, вміст dataSource буде скопійовано в dataSourceRef, а вміст dataSourceRef буде скопійовано в dataSource, якщо namespace для dataSourceRef не вказано. Якщо namespace вказано, тоді dataSourceRef не буде скопійовано в dataSource.
dataSourceRef визначає обʼєкт, з якого слід заповнити том даними, якщо потрібен не порожній том. Це може бути будь-який обʼєкт з непорожньої групи API (не основний обʼєкт) або обʼєкт PersistentVolumeClaim. Коли це поле вказано, привʼязка томів буде успішною лише в тому випадку, якщо тип вказаного обʼєкта відповідає деякому встановленому заповнювачу томів або динамічному провайдеру. Це поле замінює функціональність поля dataSource, і тому, якщо обидва поля не порожні, вони повинні мати однакове значення. Для зворотної сумісності, коли namespace не вказано в dataSourceRef, обидва поля (dataSource і dataSourceRef) будуть автоматично встановлені на одне й те саме значення, якщо одне з них порожнє, а інше не порожнє. Коли namespace вказано в dataSourceRef, dataSource не встановлюється на те саме значення і повинно бути порожнім. Існують три важливі відмінності між dataSource і dataSourceRef:
У той час як dataSource дозволяє лише два конкретні типи обʼєктів, dataSourceRef дозволяє будь-який неосновний обʼєкт, а також обʼєкти PersistentVolumeClaim.
У той час як dataSource ігнорує заборонені значення (відкидаючи їх), dataSourceRef зберігає всі значення і генерує помилку, якщо вказано заборонене значення.
У той час як dataSource дозволяє лише локальні обʼєкти, dataSourceRef дозволяє обʼєкти в будь-яких просторах імен.
(Бета) Використання цього поля вимагає увімкнення функціональної можливості AnyVolumeDataSource. (Альфа) Використання поля namespace в dataSourceRef вимагає увімкнення функціональної можливості CrossNamespaceVolumeDataSource.
resources представляє мінімальні ресурси, які повинен мати том. Користувачам дозволяється вказувати вимоги до ресурсів, які нижчі за попереднє значення, але все ще повинні бути вищими за ємність, зафіксовану в полі статусу запиту. Більше інформації: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
volumeAttributesClassName може використовуватися для встановлення VolumeAttributesClass, який буде використовуватися цим запитом. Якщо вказано, драйвер CSI створить або оновить том з атрибутами, визначеними у відповідному VolumeAttributesClass. Це має іншу мету, ніж storageClassName, і може бути змінено після створення запиту. Порожній рядок або значення nil вказує, що жоден VolumeAttributesClass не буде застосований до запиту. Якщо запит потрапляє в стан помилки Infeasible, це поле може бути скинуто до попереднього значення (включаючи nil), щоб скасувати зміну. Якщо ресурс, на який посилається volumeAttributesClass, не існує, цей PersistentVolumeClaim буде встановлено в стан Pending, як відображено в полі modifyVolumeStatus, до тих пір, поки такий ресурс не з'явиться. Більше інформації: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
volumeMode string
volumeMode визначає, який тип тому потрібен для запиту. Значення Filesystem передбачається, якщо не вказано в специфікації запиту.
Можливі значення enum:
"Block" означає, що том не буде форматуватися файловою системою і залишиться сирим блочним пристроєм.
"Filesystem" означає, що том буде або вже відформатований файловою системою.
volumeName string
volumeName є посиланням на PersistentVolume, який підтримує цей запит.
PersistentVolumeClaimStatus
PersistentVolumeClaimStatus є поточним станом запиту на постійний том.
allocatedResourceStatuses зберігає стан ресурсу, що змінюється для даного PVC. Імена ключів відповідають стандартному синтаксису міток Kubernetes. Дійсні значення можуть бути такими:
Ключі без префікса:
storage — ємність тому.
Власні ресурси повинні використовувати імена з префіксом, визначеним реалізацією, наприклад "example.com/my-custom-resource"
Окрім вищезазначених значень — ключі без префікса або з префіксом kubernetes.io вважаються зарезервованими і тому не можуть використовуватися.
ClaimResourceStatus може бути в будь-якому з наступних станів:
ControllerResizeInProgress: Стан встановлюється, коли контролер зміни розміру починає змінювати розмір тому в панелі управління.
ControllerResizeFailed: Стан встановлюється, коли зміна розміру не вдалася в контролері зміни розміру з термінальною помилкою.
NodeResizePending: Стан встановлюється, коли контролер зміни розміру завершив зміну розміру тому, але подальша зміна розміру тому потрібна на вузлі.
NodeResizeInProgress: Стан встановлюється, коли kubelet починає змінювати розмір тому.
NodeResizeFailed: Стан встановлюється, коли зміна розміру не вдалася в kubelet з термінальною помилкою. Тимчасові помилки не встановлюють NodeResizeFailed.
Наприклад: якщо розширюється PVC для більшої ємності — це поле може бути в одному з наступних станів:
Якщо це поле не встановлено, це означає, що для даного PVC не виконується жодна операція зміни розміру.
Контролер, який отримує оновлення PVC з раніше невідомим resourceName або ClaimResourceStatus, повинен ігнорувати оновлення для призначеної мети. Наприклад, контролер, який відповідає лише за зміну розміру ємності тому, повинен ігнорувати оновлення PVC, які змінюють інші дійсні ресурси, повʼязані з PVC.
allocatedResources object
allocatedResources відстежує ресурси, виділені для PVC, включаючи його ємність. Імена ключів відповідають стандартному синтаксису міток Kubernetes. Допустимі значення можуть бути такими:
Ключі без префікса:
storage — ємність тому.
Власні ресурси повинні використовувати імена з префіксом, визначеним реалізацією, наприклад "example.com/my-custom-resource"
Окрім зазначених значень — ключі без префікса або з префіксом kubernetes.io вважаються зарезервованими і тому не можуть використовуватися.
Ємність, зазначена тут, може бути більшою за фактичну ємність, коли запитується операція розширення тому. Для квоти зберігання використовується більше значення з allocatedResources та PVC.spec.resources. Якщо allocatedResources не встановлено, для розрахунку квоти використовується лише PVC.spec.resources. Якщо запит на зменшення ємності тому, allocatedResources зменшується лише якщо немає операцій розширення в процесі та фактична ємність тому дорівнює або менша за запитану.
Контролер, який отримує оновлення PVC з раніше невідомим resourceName, повинен ігнорувати оновлення для призначеної мети. Наприклад, контролер, який відповідає лише за зміну розміру ємності тому, повинен ігнорувати оновлення PVC, які змінюють інші дійсні ресурси, повʼязані з PVC.
capacity object
capacity представляє фактичні ресурси базового тому.
conditions є поточним станом PersistentVolumeClaim. Якщо базовий PersistentVolume змінює розмір, то стан буде встановлено на 'Resizing'.
currentVolumeAttributesClassName string
currentVolumeAttributesClassName є поточним іменем VolumeAttributesClass, який використовує PVC. Якщо не встановлено, до цього PersistentVolumeClaim не застосовується жоден VolumeAttributeClass.
ModifyVolumeStatus представляє обʼєкт стану операції ControllerModifyVolume. Якщо це поле не встановлено, жодна операція ModifyVolume не виконується.
phase string
phase представляє поточну фазу PersistentVolumeClaim.
Можливі значення enum:
"Bound" використовується для PersistentVolumeClaims, які привʼязані
"Lost" використовується для PersistentVolumeClaims, які втратили свій базовий PersistentVolume. Запит був привʼязаний до PersistentVolume, і цей том більше не існує, і всі дані на ньому були втрачені.
"Pending" використовується для PersistentVolumeClaims, які ще не привʼязані
PersistentVolumeClaimList
PersistentVolumeClaimList є списком обʼєктів PersistentVolumeClaim.
ModifyVolumeStatus представляє обʼєкт стану операції ControllerModifyVolume
Поле
Опис
status* string
status є статусом операції ControllerModifyVolume. Він може бути в будь-якому з наступних станів:
Pending
Pending вказує, що PersistentVolumeClaim не може бути змінено через невиконані вимоги, такі як відсутність зазначеного VolumeAttributesClass.
InProgress
InProgress вказує, що том змінюється.
Infeasible
Infeasible вказує, що запит було відхилено як недійсний драйвером CSI. Щоб виправити помилку, потрібно вказати дійсний VolumeAttributesClass.
Можливі значення enum:
"InProgress" InProgress вказує, що том змінюється
"Infeasible" Infeasible вказує, що запит було відхилено як недійсний драйвером CSI. Щоб виправити помилку, потрібно вказати дійсний VolumeAttributesClass
"Pending" Pending вказує, що PersistentVolumeClaim не може бути змінено через невиконані вимоги, такі як відсутність зазначеного VolumeAttributesClass
targetVolumeAttributesClassName string
targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled
PersistentVolumeClaimCondition
PersistentVolumeClaimCondition містить деталі про стан PVC
lastTransitionTime є часом, коли стан змінився з одного на інший.
message string
message є повідомленням, зрозумілим для людини, що вказує на деталі останньої зміни стану.
reason string
reason є унікальним, коротким рядком, придатним для обробки машиною, який вказує на причину останньої зміни стану. Якщо він повідомляє "Resizing", це означає, що базовий постійний том змінюється.
TypedObjectReference містить достатньо інформації, щоб дозволити вам знайти типізований обʼєкт, на який посилаються
Поле
Опис
apiGroup string
APIGroup є групою для ресурсу, на який посилаються. Якщо APIGroup не вказано, зазначений Kind повинен бути в основній групі API. Для будь-яких інших сторонніх типів APIGroup є обовʼязковим.
kind* string
Kind є типом ресурсу, на який посилаються
name* string
Name є назвою ресурсу, на який посилаються
namespace string
Namespace є простором імен ресурсу, на який посилаються. Зверніть увагу, що коли вказано простір імен, обʼєкт gateway.networking.k8s.io/ReferenceGrant потрібен у просторі імен референта, щоб дозволити власнику цього простору імен прийняти посилання. Див. документацію ReferenceGrant для деталей. (Alpha) Це поле вимагає увімкнення функціонального прапора CrossNamespaceVolumeDataSource.
VolumeResourceRequirements
VolumeResourceRequirements описує вимоги до ресурсів зберігання для тома.
Requests описує мінімальну кількість обчислювальних ресурсів, необхідних для використання. Якщо Requests не вказано для контейнера, воно зазвичай дорівнює Limits, якщо воно явно вказано, або значенню, визначеному реалізацією. Requests не може перевищувати Limits. Більше інформації: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Операції
post Create
HTTP Запит
POST /api/v1/namespaces/{namespace}/persistentvolumeclaims
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PersistentVolumeClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PersistentVolumeClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PersistentVolumeClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/persistentvolumeclaims
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PersistentVolumeClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PersistentVolumeClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Опціональна тривалість у секундах, протягом якої под може бути активним на вузлі відносно StartTime, перш ніж система активно спробує позначити його як невдалий і завершити повʼязані контейнери. Значення повинно бути додатним цілим числом.
Вказує параметри DNS для пода. Параметри, вказані тут, будуть обʼєднані зі згенерованою конфігурацією DNS на основі DNSPolicy.
dnsPolicy string
Встановлює політику DNS для пода. Зазвичай "ClusterFirst". Дійсні значення: 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' або 'None'. Параметри DNS, вказані в DNSConfig, будуть обʼєднані з політикою, обраною за допомогою DNSPolicy. Щоб мати можливість встановлювати параметри DNS разом з hostNetwork, потрібно явно вказати політику DNS як 'ClusterFirstWithHostNet'.
Можливі значення enum:
"ClusterFirst" вказує, що под повинен використовувати DNS кластера спочатку, якщо hostNetwork не встановлено в true, якщо він доступний, тоді використовується стандартні налаштування DNS (визначені kubelet).
"ClusterFirstWithHostNet" вказує, що под повинен використовувати DNS кластера спочатку, якщо він доступний, тоді використовується стандартні налаштування DNS (визначені kubelet).
"Default" вказує, що под повинен використовувати стандартні налаштування DNS (визначені kubelet).
"None" вказує, що под повинен використовувати порожні налаштування DNS. Параметри DNS, такі як nameservers і search paths, повинні бути визначені через DNSConfig.
enableServiceLinks boolean
EnableServiceLinks вказує, чи слід робити інʼєкцію інформації про сервіси в змінні середовища пода, відповідно до синтаксису Docker links. Опціонально: зазвичай — true.
Список ефермерних контейнерів, що запускаються в цьому поді. Ефермерні контейнери можуть запускатися в наявному поді для виконання дій, ініційованих користувачем, таких як налагодження. Цей список не можна вказати при створенні пода, і його не можна змінити, оновлюючи специфікацію пода. Щоб додати ефермерний контейнер до наявного пода, використовуйте субресурс ephemeralcontainers пода.
hostAliases HostAlias array patch strategy: злиття за ключем ip
HostAliases є опціональним списком хостів та IP-адрес, які будуть додані до файлу hosts пода, якщо вони вказані.
hostIPC boolean
Використовувати простір імен IPC хоста. Опціонально: зазвичай — false.
hostNetwork boolean
Для цього пода запрошено мережу хоста. Використовується простір імен мережі хоста. При використанні HostNetwork слід вказати порти, щоб планувальник мав про це інформацію. Якщо `hostNetwork` має значення true, вказані поля hostPort у визначеннях портів повинні збігатися з containerPort, а для полів hostPort, що не вказані у визначеннях портів, стандартно встановлюється значення, яке збігається з containerPort. Стандартно — false.
hostPID boolean
Використовувати простір імен PID хоста. Опціонально: зазвичай — false.
hostUsers boolean
Використовувати простір імен користувачів хоста. Опціонально: зазвичай — true. Якщо встановлено true або не вказано, под буде запущено в просторі імен користувачів хоста, що корисно, коли под потребує функції, доступної лише в просторі імен користувачів хоста, наприклад, завантаження модуля ядра з CAP_SYS_MODULE. Якщо встановлено false, для пода створюється новий userns. Встановлення false корисне для зменшення ризику виходу з контейнера, навіть дозволяючи користувачам запускати свої контейнери як root без фактичних привілеїв root на хості.
hostname string
Вказує імʼя хоста пода. Якщо не вказано, імʼя хоста пода буде встановлено на системно визначене значення.
hostnameOverride string
HostnameOverride вказує явне перевизначення імені хоста пода, як його сприймає под. Це поле лише вказує імʼя хоста пода і не впливає на його DNS-записи. Коли це поле встановлено на непорожній рядок:
Воно має пріоритет над значеннями, встановленими в hostname та subdomain.
Імʼя хоста пода буде встановлено на це значення.
setHostnameAsFQDN має бути nil або встановлено на false.
hostNetwork має бути встановлено на false. Це поле має бути дійсним субдоменом DNS, як визначено в RFC 1123, і містити не більше 64 символів. Потрібно, щоб функціональний прапорець HostnameOverride був увімкнений.
ImagePullSecrets є опціональним списком посилань на секрети в тому ж просторі імен, які використовуються для витягування будь-яких образів, що використовуються цим PodSpec. Якщо вказано, ці секрети будуть передані окремим реалізаціям витягування для їх використання. Більше інформації: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
initContainers Container array patch strategy: злиття за ключем name
Список контейнерів ініціалізації, що належатьт поду. Інітконтейнери виконується послідовно перед запуском основних контейнерів. Якщо будь-який інітконтейнер не вдається, под вважається таким, що зазнав невдачі, і обробляється відповідно до його restartPolicy. Імʼя для інітконтейнера або звичайного контейнера має бути унікальним серед усіх контейнерів. Інітконтейнери не можуть мати дії Lifecycle, проб Readiness, Liveness або Startup. Вимоги до ресурсів інітконтейнера враховуються під час планування шляхом знаходження найвищого запиту/обмеження для кожного типу ресурсу, а потім використання максимуму цього значення або суми звичайних контейнерів. Обмеження застосовуються до інітконтейнерів аналогічним чином. Інітконтейнери наразі не можна додавати або видаляти. Не можна оновлювати. Більше інформації: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
nodeName string
NodeName вказує, на якому вузлі заплановано цей под. Якщо порожньо, цей под є кандидатом для планування за допомогою планувальника, визначеного в schedulerName. Після встановлення цього поля kubelet для цього вузла стає відповідальним за життєвий цикл цього поду. Це поле не слід використовувати для вираження намірів того, щоб под був запланований на конкретному вузлі. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename
Overhead представляє ресурси накладних витрат пода для вказаного RuntimeClass. Це поле буде автоматично заповнене під час допуску контролером RuntimeClass. Якщо контролер допуску RuntimeClass увімкнено, overhead не повинен бути встановлений у запитах на створення Podʼа. Контролер допуску RuntimeClass відхилить запити на створення Podʼа, у яких overhead вже встановлено. Якщо RuntimeClass налаштовано та вибрано в PodSpec, Overhead буде встановлено на значення, визначене у відповідному RuntimeClass, інакше воно залишиться невстановленим і буде розглядатися як нуль. Більше інформації: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md
preemptionPolicy string
PreemptionPolicy є Політикою випередження подів з нижчим пріоритетом. Одне з: Never, PreemptLowerPriority. Стандартно встановлено PreemptLowerPriority, якщо не вказано.
Можливі значення enum:
"Never" означає, що под ніколи не випереджає інші поди з нижчим пріоритетом.
"PreemptLowerPriority" означає, що под може випереджати інші поди з нижчим пріоритетом.
priority integer
Значення пріоритету. Різні системні компоненти використовують це поле для визначення пріоритету пода. Коли Priority Admission Controller увімкнено, він запобігає користувачам встановлювати це поле. Контролер допуску заповнює це поле з PriorityClassName. Чим вище значення, тим вищий пріоритет.
priorityClassName string
Якщо вказано, визначає пріоритет пода. "system-node-critical" та "system-cluster-critical" є двома спеціальними ключовими словами, які вказують на найвищі пріоритети, при цьому перше є найвищим пріоритетом. Будь-яке інше імʼя повинно бути визначене шляхом створення обʼєкта PriorityClass з цим імʼям. Якщо не вказано, пріоритет пода буде зазвичай або нульовим, якщо немає стандартного значення.
Якщо вказано, всі readiness gates будуть оцінюватися для готовності пода. Под вважається готовим, коли всі його контейнери готові І (AND) всі стани, зазначені в readiness gates, мають статус "True". Більше інформації: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates
ResourceClaims визначає, які ResourceClaims повинні бути виділені та зарезервовані перед тим, як поду буде дозволено запуститися. Ресурси будуть доступні тим контейнерам, які їх споживають за іменем. Це стабільне поле, але вимагає, щоб було увімкнено функціональну можливість DynamicResourceAllocation. Це поле є незмінним.
Resources визначає загальну кількість ресурсів CPU та памʼяті, необхідних для всіх контейнерів у поді. Підтримується вказівка запитів (Requests) та обмежень (Limits) лише для ресурсів "cpu", "memory" та "hugepages-". ResourceClaims не підтримуються. Це поле дозволяє тонко керувати розподілом ресурсів для всього пода, дозволяючи спільне використання ресурсів між контейнерами в поді. Це альфа-поле і вимагає увімкнення функціональної можливості PodLevelResources.
RuntimeClassName посилається на обʼєкт RuntimeClass у групі node.k8s.io, який повинен бути використаний для запуску цього пода. Якщо жоден ресурс RuntimeClass не відповідає вказаному імені класу, под не буде запущено. Якщо не встановлено або порожньо, буде використано "legacy" RuntimeClass, який є неявним класом з порожнім визначенням, що використовує стандартний обробник. Більше інформації: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
schedulerName string
Якщо вказано, под буде оброблено вказаним планувальником. Якщо не вказано, под буде оброблено стандартним планувальником.
SchedulingGates є непрозорим списком значень, які, якщо вказані, блокуватимуть планування пода. Якщо schedulingGates не порожній, под залишатиметься в стані SchedulingGated, і планувальник не намагатиметься його запланувати. SchedulingGates можна встановити лише під час створення пода і видалити лише згодом.
SchedulingGroup надає посилання на обʼєкт групування середовища виконання безпосереднього планування, до якого належить цей Pod. Це поле використовується планувальником для ідентифікації групи та застосування правильних політик планування групи. Ассоціація з групою також впливає на інші аспекти життєвого циклу Podʼів, які мають значення в ширшому контексті планування, такі як передача пріоритетів, приєднання ресурсів тощо. Якщо не вказано, Pod розглядається як одиниця у всіх цих аспектах. Обʼєкт групи, на який посилається це поле, може не існувати на момент створення Podʼа. Це поле є незмінним, але обʼєкт групи з тим самим імʼям може бути відтворений з іншими політиками. Роблячи це під час планування Podʼа, розміщення може не відповідати очікуваним політикам.
SecurityContext містить атрибути безпеки на рівні пода та загальні налаштування контейнера. Опціонально: зазвичай порожньо. Див. опис типу для стандартних значень кожного поля.
serviceAccount string
DeprecatedServiceAccount є застарілим псевдонімом для ServiceAccountName. Застаріло: використовуйте serviceAccountName замість цього.
Якщо true, імʼя хоста пода буде налаштовано як повне доменне імʼя (FQDN) Podʼа, а не просто коротке імʼя (стандартно). У контейнерах Linux це означає встановлення FQDN у полі hostname ядра (поле nodename структури utsname). У контейнерах Windows це означає встановлення значення реєстру hostname для ключа реєстру HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters на FQDN. Якщо под не має FQDN, це не має ефекту. Стандартне значення — false.
shareProcessNamespace boolean
Спільний простір імен процесів між усіма контейнерами в поді. Якщо це встановлено, контейнери зможуть бачити та надсилати сигнали процесам з інших контейнерів у тому ж поді, і перший процес у кожному контейнері не буде мати PID 1. HostPID і ShareProcessNamespace не можуть бути встановлені одночасно. Опціонально: стандартне значення — false.
subdomain string
Якщо вказано, повне доменне імʼя хоста Podʼа буде "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". Якщо не вказано, под не матиме доменного імені взагалі.
terminationGracePeriodSeconds integer
Опціональна тривалість у секундах, необхідна для належного завершення роботи пода. Може бути зменшена в запиті на видалення. Значення повинно бути невідʼємним цілим числом. Значення нуль означає негайну зупинку через сигнал завершення (немає можливості для завершення роботи). Якщо це значення дорівнює nil, буде використано стандартний період очікування. Період очікування — це тривалість у секундах після того, як процеси, що працюють у поді, отримують сигнал завершення, і час, коли процеси примусово зупиняються за допомогою сигналу kill. Встановіть це значення довше, ніж очікуваний час очищення для вашого процесу. Стандартне значення — 30 секунд.
TopologySpreadConstraints описує, як група подів повинна розподілятися по топологічних доменах. Планувальник буде розміщувати поди таким чином, щоб дотримуватися цих обмежень. Всі topologySpreadConstraints обʼєднуються за логікою AND.
volumes Volume array patch strategy: merge,retainKeys on key name
PodStatus представляє інформацію про стан пода. Стан може відставати від фактичного стану системи, особливо якщо вузол, на якому розміщено под, не може звʼязатися з вузлом панелі управління.
Поле
Опис
allocatedResources object
AllocatedResources є загальною кількістю запитів, виділених для цього пода вузлом. Якщо запити на рівні пода не встановлені, це буде загальна кількість запитів, агрегованих по контейнерах у поді.
Стани контейнерів у цьому поді. Кожен контейнер у поді повинен мати не більше одного стану в цьому списку, і всі стани повинні належати контейнерам у поді. Однак це не контролюється. Якщо стан для відсутнього контейнера присутній у списку, або список містить дублікати імен, поведінка різних компонентів Kubernetes не визначена, і ці стани можуть бути проігноровані. Більше інформації: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
ephemeralContainerStatuses ContainerStatus array
Стани будь-яких ефермерних контейнерів, які запускалися в цьому поді. Кожен ефермерний контейнер у поді повинен мати не більше одного стану в цьому списку, і всі стани повинні належати контейнерам у поді. Однак це не контролюється. Якщо стан для відсутнього контейнера присутній у списку, або список містить дублікати імен, поведінка різних компонентів Kubernetes не визначена, і ці стани можуть бути проігноровані. Більше інформації: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
Стан розширеного запиту ресурсів, підтримуваного DRA.
hostIP string
hostIP містить IP-адресу хоста, до якого призначено под. Порожнє, якщо под ще не запущено. Под може бути призначений вузлу, який має проблему в kubelet, що, в свою чергу, означає, що HostIP не буде оновлено, навіть якщо вузол призначено поду.
hostIPs HostIP array patch strategy: злиття за ключем ip
hostIPs містить IP-адреси, виділені хосту. Якщо це поле вказано, перший запис повинен відповідати полю hostIP. Цей список порожній, якщо под ще не запущено. Под може бути призначений вузлу, який має проблему в kubelet, що, в свою чергу, означає, що HostIPs не буде оновлено, навіть якщо вузол призначено цьому поду.
initContainerStatuses ContainerStatus array
Стан ініціалізаційних контейнерів у цьому поді. Останній успішно запущений ініціалізаційний контейнер, який не підлягає перезапуску, матиме ready = true, а останній запущений контейнер матиме встановлений startTime. Кожен ініціалізаційний контейнер у поді повинен мати не більше одного стану в цьому списку, і всі стани повинні належати контейнерам у поді. Однак це не контролюється. Якщо стан для відсутнього контейнера присутній у списку, або список містить дублікати імен, поведінка різних компонентів Kubernetes не визначена, і ці стани можуть бути проігноровані. Більше інформації: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status
message string
Зрозуміле для людини повідомлення, що вказує деталі щодо того, чому под знаходиться в цьому стані.
NodeAllocatableResourceClaimStatuses містить стан ресурсів, доступних вузлу, які були виділені для цього пода через запити DRA. Це включає ресурси, які наразі повідомляються у v1.Node status.allocatable, але не є розширеними ресурсами (див. https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#extended-resources). Приклади включають "cpu", "memory", "ephemeral-storage" та hugepages.
nominatedNodeName string
nominatedNodeName встановлюється лише тоді, коли цей под передує іншим подам на вузлі, але його не можна запланувати негайно, оскільки жертви випередження отримують свої періоди належного завершення. Це поле не гарантує, що под буде заплановано на цьому вузлі. Планувальник може вирішити розмістити под в іншому місці, якщо інші вузли стануть доступними раніше. Планувальник також може вирішити надати ресурси на цьому вузлі поду з вищим пріоритетом, який створено після випередження. В результаті це поле може відрізнятися від PodSpec.nodeName, коли под заплановано.
observedGeneration integer
Якщо встановлено, це представляє .metadata.generation, на основі якого було встановлено стан пода. Щоб використовувати це поле, потрібно ввімкнути функціональну можливість PodObservedGenerationTracking.
phase string
Фаза пода є простим, високорівневим підсумком того, на якому етапі життєвого циклу знаходиться под. Масив conditions, поля reason і message, а також масиви станів окремих контейнерів містять більше деталей про стан пода. Існує пʼять можливих значень фази:
Pending
Под був прийнятий системою Kubernetes, але один або кілька контейнерів ще не створені. Це включає час до планування, а також час, витрачений на завантаження образів через мережу, що може зайняти деякий час.
Running
Под був привʼязаний до вузла, і всі контейнери були створені. Принаймні один контейнер все ще працює або знаходиться в процесі запуску чи перезапуску.
Succeeded
Всі контейнери в поді завершилися успішно і не будуть перезапущені.
Failed
Всі контейнери в поді завершилися, і принаймні один контейнер завершився з помилкою. Контейнер або вийшов з ненульовим кодом завершення, або був зупинений системою.
Unknown
З якоїсь причини стан пода не вдалося отримати, зазвичай через помилку в комунікації з хостом пода.
"Failed" означає, що всі контейнери в поді завершилися, і принаймні один контейнер завершився з помилкою (вийшов з ненульовим кодом завершення або був зупинений системою).
"Pending" означає, що под був прийнятий системою, але один або кілька контейнерів ще не запущені. Це включає час до прив'язки до вузла, а також час, витрачений на завантаження образів на хост.
"Running" означає, що под був привʼязаний до вузла і всі контейнери були запущені. Принаймні один контейнер все ще працює або знаходиться в процесі перезапуску.
"Succeeded" означає, що всі контейнери в поді добровільно завершилися з кодом виходу 0, і система не буде перезапускати жоден з цих контейнерів.
"Unknown" означає, що з якоїсь причини стан пода не вдалося отримати, зазвичай через помилку в комунікації з хостом пода. Застаріле: не встановлюється з 2015 року (74da3b14b0c0f658b3bb8d2def5094686d0e9095)
podIP string
podIP адреса, виділена поду. Доступна принаймні всередині кластера. Порожньо, якщо ще не виділено.
podIPs PodIP array patch strategy: злиття за ключем ip
podIPs містить IP-адреси, виділені поду. Якщо це поле вказано, 0-й елемент повинен відповідати полю podIP. Подам може бути виділено не більше одного значення для кожного з IPv4 та IPv6. Цей список порожній, якщо IP-адреси ще не були виділені.
Коротке повідомлення у форматі CamelCase, що вказує на деталі того, чому под знаходиться в цьому стані. Наприклад, 'Evicted'
resize string
Статус зміни ресурсів, бажаних для контейнерів поду. Порожньо, якщо зміна ресурсів не очікується. Будь-які зміни ресурсів контейнера автоматично встановлять це значення на "Proposed". Застаріло: Статус зміни ресурсів переміщено до двох станів поду PodResizePending та PodResizeInProgress. PodResizePending відстежує стани, коли специфікація була змінена, але Kubelet ще не виділив ресурси. PodResizeInProgress відстежує зміни в процесі виконання і має бути присутнім, коли виділені ресурси != підтверджені ресурси.
resourceClaimStatuses PodResourceClaimStatus array patch strategy: merge,retainKeys за ключем name
Resources представляє запити та обмеження обчислювальних ресурсів, які були застосовані на рівні поду, якщо запити або обмеження на рівні поду встановлені в PodSpec.Resources
Описує правила планування за антиспорідненістю подів (наприклад, уникати розміщення цього пода на тому ж вузлі, у тій же зоні тощо, що й інші поди).
AppArmorProfile
AppArmorProfile визначає налаштування AppArmor для пода або контейнера.
Поле
Опис
localhostProfile string
localhostProfile вказує на профіль, завантажений на вузлі, який слід використовувати. Профіль повинен бути попередньо налаштований на вузлі для роботи. Повинен відповідати завантаженій назві профілю. Повинен бути встановлений лише тоді, коли type дорівнює "Localhost".
type* string
type вказує, який тип профілю AppArmor буде застосовано. Дійсні варіанти:
Localhost — профіль, попередньо завантажений на вузлі.
RuntimeDefault — стандартний профіль середовища виконання контейнера.
Unconfined — без застосування AppArmor.
Можливі значення enum:
Localhost вказує, що слід використовувати профіль, попередньо завантажений на вузлі.
RuntimeDefault вказує, що слід використовувати стандартний профіль AppArmor середовища виконання контейнера.
Unconfined вказує, що профіль AppArmor не буде застосовано.
AzureFileVolumeSource
AzureFile представляє монтування Azure File Service на хості та привʼязку до пода.
Поле
Опис
readOnly boolean
readOnly зазвичай дорівнює false (читання/запис). Встановлення ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
secretName* string
secretName вказує на назву секрету, який містить імʼя облікового запису Azure Storage та ключ
shareName* string
shareName вказує на назву Azure File Share
CSIVolumeSource
Представляє джерело розташування тому для монтування, кероване зовнішнім драйвером CSI.
Поле
Опис
driver* string
driver є назвою CSI драйвера, який працює з цим томом. Зверніться до адміністратора для отримання правильної назви, як зареєстровано в кластері.
fsType string
fsType вказує файлову систему для монтування. Наприклад: "ext4", "xfs", "ntfs". Якщо не вказано, порожнє значення передається відповідному CSI драйверу, який визначить стандартну файлову систему.
nodePublishSecretRef є посиланням на обʼєкт секрету, який містить конфіденційну інформацію для передачі CSI драйверу для завершення викликів CSI NodePublishVolume та NodeUnpublishVolume. Це поле є необовʼязковим і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт секрету містить більше одного секрету, передаються всі посилання на секрети.
readOnly boolean
readOnly вказує на конфігурацію лише для читання для тому. Стандартне значення — false (читання/запис).
volumeAttributes object
volumeAttributes зберігає властивості, специфічні для драйвера, які передаються CSI драйверу. Зверніться до документації вашого драйвера для отримання підтримуваних значень.
Capabilities
Додає та видаляє POSIX-можливості з працюючих контейнерів.
Поле
Опис
add string array
Додані можливості
drop string array
Видалені можливості
CephFSVolumeSource
Представляє монтування файлової системи Ceph, яке триває протягом життя пода. Томи Cephfs не підтримують управління власністю або переназначення SELinux.
Представляє ресурс тома Cinder в Openstack. Том Cinder повинен існувати перед монтуванням до контейнера. Том також повинен знаходитися в тому ж регіоні, що й kubelet. Томи Cinder підтримують управління власністю та переназначення SELinux.
Поле
Опис
fsType string
fsType є типом файлової системи для монтування. Повинен бути підтримуваним типом файлової системи операційної системи хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, неявно вважається "ext4". Більше інформації: https://examples.k8s.io/mysql-cinder-pd/README.md
readOnly boolean
readOnly є опціональним: Стандартне значення — false (читання/запис). ReadOnly тут примусово встановлює налаштування ReadOnly у VolumeMounts. Більше інформації: https://examples.k8s.io/mysql-cinder-pd/README.md
Вибирає всі ClusterTrustBundles, що відповідають цьому селектору міток. Діє лише якщо встановлено signerName. Взаємовиключно з name. Якщо не встановлено, інтерпретується як "не мати збігу ні з чим". Якщо встановлено, але порожньо, інтерпретується як "мати збіг з усіма".
name string
Вибирає один ClusterTrustBundle за імʼям об'єкта. Взаємовиключно з signerName та labelSelector.
optional boolean
Якщо true, не блокувати запуск пода, якщо посилання на ClusterTrustBundle(s) недоступне. Якщо використовується name, то дозволяється, щоб вказаний ClusterTrustBundle не існував. Якщо використовується signerName, то комбінація signerName та labelSelector може не відповідати жодному ClusterTrustBundle.
path* string
Відносний шлях від кореня тому до файлу, куди буде записано пакунок.
signerName string
Вибирає всі ClusterTrustBundles, що відповідають цьому імені підписувача. Взаємовиключно з name. Вміст усіх вибраних ClusterTrustBundles буде обʼєднано та видалено дублікати.
ConfigMapEnvSource
ConfigMapEnvSource вибирає ConfigMap для заповнення змінних середовища.
Вміст поля Data цільової ConfigMap буде представляти пари ключ-значення як змінні середовища.
Вказує, чи має бути визначено ConfigMap або його ключ
ConfigMapProjection
Перетворює ConfigMap у проєкційний том.
Вміст поля Data цільової ConfigMap буде представлено в проєкційному томі як файли, використовуючи ключі з поля Data як імена файлів, якщо елемент items не заповнений конкретними відображеннями ключів на шляхи. Зверніть увагу, що це ідентично джерелу тома configmap без стандартного режиму.
Якщо не вказано, кожну пару ключ-значення в полі Data вказаного ConfigMap буде спроєцьовано в том як файл, імʼя якого є ключем, а вміст — значенням. Якщо вказано, перелічені ключі будуть спроєцьовані в зазначені шляхи, а невказані ключі не будуть присутні. Якщо вказано ключ, якого немає в ConfigMap, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними і не можуть містити '..' або починатися з '..'.
Вказує, чи має бути визначено ConfigMap або його ключ
ConfigMapVolumeSource
Перетворює ConfigMap у том.
Вміст поля Data цільового ConfigMap буде представлено в томі як файли, використовуючи ключі з поля Data як імена файлів, якщо елемент items не заповнений конкретними зіставленням ключів на шляхи. Томи ConfigMap підтримують управління власністю та переназначення SELinux.
Поле
Опис
defaultMode integer
defaultMode є опціональним: біти режиму, які використовуються для встановлення стандартних дозволів на створені файли. Має бути восьмеричне значення від 0000 до 0777 або десяткове значення від 0 до 511. YAML приймає як восьмеричні, так і десяткові значення, JSON вимагає десяткових значень для бітів режиму. Стандартно — 0644. Теки всередині шляху не впливають на це налаштування. Це може конфліктувати з іншими параметрами, які впливають на режим файлу, такими як fsGroup, і результатом можуть бути інші встановлені біти режиму.
Якщо не вказано, кожну пару ключ-значення в полі Data вказаного ConfigMap буде спроєцьовано в том як файл, імʼя якого є ключем, а вміст — значенням. Якщо вказано, перелічені ключі будуть спроєцьовані в зазначені шляхи, а невказані ключі не будуть присутні. Якщо вказано ключ, якого немає в ConfigMap, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними і не можуть містити '..' або починатися з '..'.
optional вказує, чи повинен бути визначений ConfigMap або його ключі
Container
Один контейнер застосунку, який ви хочете запустити всередині пода.
Поле
Опис
args string array
Аргументи для точки входу. Використовується CMD образу контейнера, якщо це не вказано. Посилання на змінні $(VAR_NAME) розгортаються за допомогою середовища контейнера. Якщо змінну не вдається розпізнати, посилання у вхідному рядку залишиться без змін. Подвійні $$ зменшуються до одного $, що дозволяє екранувати синтаксис $(VAR_NAME): тобто "$$(VAR_NAME)" створить рядок "$(VAR_NAME)". Екрановані посилання ніколи не будуть розгортатись, незалежно від того, чи існує змінна. Не можна оновлювати. Більше інформації: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
command string array
Масив точок входу. Не виконується в межах оболонки. Використовується ENTRYPOINT образу контейнера, якщо це не вказано. Посилання на змінні $(VAR_NAME) розгортаються за допомогою середовища контейнера. Якщо змінну не вдається розпізнати, посилання у вхідному рядку залишиться без змін. Подвійні $$ зменшуються до одного $, що дозволяє екранувати синтаксис $(VAR_NAME): тобто "$$(VAR_NAME)" створить рядок "$(VAR_NAME)". Екрановані посилання ніколи не будуть розгортатись, незалежно від того, чи існує змінна. Не можна оновлювати. Більше інформації: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
env EnvVar array patch strategy: злиття за ключем name
Список змінних середовища для встановлення в контейнері. Не можна оновлювати.
Список джерел для заповнення змінних середовища в контейнері. Ключі, визначені в джерелі, можуть складатися з будь-яких друкованих ASCII-символів, крім '='. Якщо ключ існує в кількох джерелах, значення, повʼязане з останнім джерелом, матиме пріоритет. Значення, визначені в Env з дубльованим ключем, матимуть пріоритет. Не можна оновлювати.
image string
Назва образу контейнера. Більше інформації: https://kubernetes.io/docs/concepts/containers/images. Це поле є необовʼязковим, щоб дозволити вищому рівню керування конфігурацією встановлювати стандартні значення або перевизначати образи контейнерів у контролерах робочих навантажень, таких як Deployments і StatefulSets.
Список портів для експонування з контейнера. Не вказуючи порт тут, НЕ забороняє його експонування. Будь-який порт, який слухає на стандартній адресі "0.0.0.0" всередині контейнера, буде доступний з мережі. Зміна цього масиву за допомогою стратегічного злиття може пошкодити дані. Для отримання додаткової інформації див. https://github.com/kubernetes/kubernetes/issues/108255. Не можна оновлювати.
RestartPolicy визначає поведінку перезапуску окремих контейнерів у поді. Перевизначає політику перезапуску на рівні пода. Якщо це поле не вказано, поведінка перезапуску визначається політикою перезапуску пода та типом контейнера. Крім того, встановлення RestartPolicy як "Always" для init-контейнера матиме наступний ефект: цей init-контейнер буде постійно перезапускатися при виході, поки всі звичайні контейнери не завершать роботу. Після завершення роботи всіх звичайних контейнерів, всі init-контейнери з restartPolicy "Always" будуть завершені. Цей життєвий цикл відрізняється від звичайних init-контейнерів і часто називається "sidecar" контейнером. Хоча цей init-контейнер все ще запускається в послідовності init-контейнерів, він не чекає завершення контейнера перед переходом до наступного init-контейнера. Замість цього наступний init-контейнер запускається відразу після запуску цього init-контейнера або після успішного завершення будь-якого startupProbe.
Представляє список правил, які перевіряються для визначення, чи слід перезапустити контейнер при виході. Правила оцінюються в порядку їхнього визначення. Як тільки правило відповідає умові виходу контейнера, решта правил ігноруються. Якщо жодне правило не відповідає умові виходу контейнера, політика перезапуску на рівні контейнера визначає, чи буде контейнер перезапущено. Обмеження для правил:
Дозволяється не більше 20 правил.
Правила можуть мати однакову дію.
Ідентичні правила не заборонені під час перевірок.
Коли правила вказані, контейнер ПОВИНЕН явно встановити RestartPolicy, навіть якщо вона відповідає RestartPolicy пода.
StartupProbe вказує, що Pod успішно ініціалізовано. Якщо вказано, жодні інші перевірки не виконуються, поки ця не завершиться успішно. Якщо ця перевірка не вдасться, Pod буде перезапущено, так само, як якщо б не вдалася livenessProbe. Можна використовувати для надання різних параметрів перевірки на початку життєвого циклу Podʼа, коли може знадобитися багато часу для завантаження даних або прогріву кешу, ніж під час стабільної роботи. Поле не можна оновити. Більше інформації: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
stdin boolean
Чи цей контейнер повинен виділяти буфер для stdin у середовищі виконання контейнера. Якщо це не встановлено, читання з stdin у контейнері завжди призведе до EOF. Стандартно — false.
stdinOnce boolean
Чи середовище виконання контейнера повинно закрити канал stdin після того, як він був відкритий одним підключенням. Коли stdin встановлено в true, потік stdin залишатиметься відкритим під час кількох сеансів підключення. Якщо stdinOnce встановлено в true, stdin відкривається при запуску контейнера, залишається порожнім до першого підключення клієнта до stdin, а потім залишається відкритим і приймає дані до відключення клієнта, після чого stdin закривається і залишається закритим до перезапуску контейнера. Якщо цей прапорець встановлено в false, процеси контейнера, які читають з stdin, ніколи не отримають EOF. Стандартно — false.
terminationMessagePath string
Опціонально: Шлях, за яким файл, у який буде записано повідомлення про завершення контейнера, буде змонтовано в файлову систему контейнера. Повідомлення призначене для короткого підсумкового статусу, такого як повідомлення про помилку перевірки. Буде обрізано вузлом, якщо перевищує 4096 байт. Загальна довжина повідомлення для всіх контейнерів буде обмежена 12 КБ. Стандартно — /dev/termination-log. Не можна оновити.
terminationMessagePolicy string
Вказує, як має бути заповнене повідомлення про завершення. Файл використовуватиме вміст terminationMessagePath для заповнення повідомлення про стан контейнера як у разі успіху, так і у разі помилки. FallbackToLogsOnError використовуватиме останній фрагмент журналу контейнера, якщо файл повідомлення про завершення порожній і контейнер завершився з помилкою. Вихідні дані журналу обмежені 2048 байтами або 80 рядками, залежно від того, що менше. Стандартно — File. Не можна оновити.
Можливі значення enum:
"FallbackToLogsOnError" читатиме останній вміст журналу контейнера для повідомлення про стан контейнера, коли контейнер завершився з помилкою і terminationMessagePath порожній.
"File" є стандартною поведінкою і встановлює повідомлення про стан контейнера відповідно до вмісту terminationMessagePath контейнера при його завершенні.
tty boolean
Чи цей контейнер повинен виділяти TTY для себе, також вимагає, щоб 'stdin' було встановлено в true. Стандартно — false.
volumeDevices VolumeDevice array patch strategy: злиття за ключем devicePath
volumeDevices є списком блочних пристроїв, які будуть використовуватися контейнером.
volumeMounts VolumeMount array patch strategy: злиття за ключем mountPath
Томи Podʼа для монтування в файлову систему контейнера. Не можна оновити.
workingDir string
Робоча тека контейнера. Якщо не вказано, буде використано стандартне значення середовища виконання контейнера, яке може бути налаштоване в образі контейнера. Не можна оновити.
ContainerExtendedResourceRequest
ContainerExtendedResourceRequest містить зіставлення імені контейнера, імені розширеного ресурсу з іменем запиту пристрою.
Поле
Опис
containerName* string
Імʼя контейнера, який запитує ресурси.
requestName* string
Імʼя запиту в спеціальному ResourceClaim, який відповідає розширеному ресурсу.
resourceName* string
Імʼя розширеного ресурсу в цьому контейнері, який підтримується DRA.
ContainerPort
ContainerPort представляє мережевий порт в одному контейнері.
Поле
Опис
containerPort* integer
Номер порту для експонування в IP-адресі Podʼа. Це має бути дійсний номер порту, 0 < x < 65536.
hostIP string
Яку IP-адресу хосту привʼязати до зовнішнього порту.
hostPort integer
Номер порту для експонування на хості. Якщо вказано, це має бути дійсний номер порту, 0 < x < 65536. Якщо вказано HostNetwork, це має відповідати ContainerPort. Більшість контейнерів цього не потребує.
name string
Якщо вказано, це має бути IANA_SVC_NAME і унікальним в межах pod. Кожен іменований порт у pod повинен мати унікальне імʼя. Імʼя порту, на який можна посилатися з сервісів.
protocol string
Протокол для порту. Має бути UDP, TCP або SCTP. Зазвичай — "TCP".
Можливі значення enum:
"SCTP" це протокол SCTP.
"TCP" це протокол TCP.
"UDP" це протокол UDP.
ContainerResizePolicy
ContainerResizePolicy представляє політику зміни розміру ресурсу для контейнера.
Поле
Опис
resourceName* string
Імʼя ресурсу, до якого застосовується ця політика зміни розміру ресурсу. Підтримувані значення: cpu, memory.
restartPolicy* string
Політика перезапуску, яка застосовується при зміні розміру вказаного ресурсу. Якщо не вказано, стандартно використовується NotRequired.
ContainerRestartRule
ContainerRestartRule описує, як обробляється вихід контейнера.
Поле
Опис
action* string
Вказує дію, яка виконується при виході контейнера, якщо вимоги виконані. Єдине можливе значення — "Restart" для перезапуску контейнера.
Представляє коди виходу, які потрібно перевіряти при виході контейнера.
ContainerRestartRuleOnExitCodes
ContainerRestartRuleOnExitCodes описує умову для обробки виходу контейнера на основі його кодів виходу.
Поле
Опис
operator* string
Вказує відношення між кодом(ами) виходу контейнера та зазначеними значеннями. Можливі значення:
"In" вимога задовольняється, якщо код виходу контейнера знаходиться в наборі зазначених значень.
"NotIn" вимога задовольняється, якщо код виходу контейнера не знаходиться в наборі зазначених значень.
values integer array
Набір значень, які потрібно перевіряти для кодів виходу контейнера. Дозволяється не більше 255 елементів.
ContainerState
ContainerState описує можливий стан контейнера. Може бути вказаний лише один з його членів. Якщо жоден з них не вказано, за замовчуванням використовується ContainerStateWaiting.
Linux містить інформацію про ідентичність користувача, спочатку прикріплену до першого процесу контейнерів у Linux. Зверніть увагу, що фактична ідентичність під час виконання може бути змінена, якщо процес має достатні привілеї для цього.
DownwardAPIProjection
Представляє інформацію про downward API для виконання проєкції у проєцьований том. Зверніть увагу, що це ідентично джерелу тому downwardAPI без стандартного режиму.
Обовʼязково: Вибирає поле поду: підтримуються лише анотації, мітки, імʼя, простір імен та uid.
mode integer
Опціонально: біти режиму, що використовуються для встановлення дозволів на цей файл, повинні бути вісімковим значенням від 0000 до 0777 або десятковим значенням від 0 до 511. YAML приймає як вісімкові, так і десяткові значення, JSON вимагає десяткових значень для бітів режиму. Якщо не вказано, буде використано volume defaultMode. Це може конфліктувати з іншими параметрами, що впливають на режим файлу, такими як fsGroup, і результатом можуть бути встановлені інші біти режиму.
path* string
Обовʼязково: шлях є відносним іменем файлу, що буде створено. Не повинен бути абсолютним або містити шлях '..'. Повинен бути закодований у UTF-8. Перший елемент відносного шляху не повинен починатися з '..'
Обирає ресурс контейнера: наразі підтримуються лише обмеження та запити ресурсів (limits.cpu, limits.memory, requests.cpu та requests.memory).
DownwardAPIVolumeSource
DownwardAPIVolumeSource описує том, що містить інформацію downward API. Том downward API підтримує керування власністю та переназначення SELinux.
Поле
Опис
defaultMode integer
Опціонально: біти режиму, що використовуються для встановлення дозволів на створені файли за замовчуванням. Повинні бути вісімковим значенням від 0000 до 0777 або десятковим значенням від 0 до 511. YAML приймає як вісімкові, так і десяткові значення, JSON вимагає десяткових значень для бітів режиму. За замовчуванням 0644. Каталоги всередині шляху не впливають на це налаштування. Це може конфліктувати з іншими параметрами, що впливають на режим файлу, такими як fsGroup, і результатом можуть бути встановлені інші біти режиму.
Представляє порожню теку для пода. Том порожньої теки підтримує керування власністю та переназначення SELinux.
Поле
Опис
medium string
medium представляє тип носія зберігання, який повинен підтримувати цю теку. Зазвичай "" означає використання стандартного носія вузла. Повинно бути порожнім рядком (типово) або Memory. Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#emptydir.
sizeLimit є загальною кількістю локального сховища, необхідного для цього тома EmptyDir. Обмеження розміру також застосовується до носія памʼяті. Максимальне використання на носії памʼяті EmptyDir буде мінімальним значенням між зазначеним тут SizeLimit та сумою обмежень памʼяті всіх контейнерів у поді. ЗСтандартно — nil, що означає, що обмеження не визначено. Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#emptydir.
EnvFromSource
EnvFromSource представляє джерело набору ConfigMaps або Secrets
EnvVar представляє змінну середовища, присутню в контейнері.
Поле
Опис
name* string
Імʼя змінної середовища. Може складатися з будь-яких друкованих ASCII-символів, крім '='.
value string
Посилання на змінні $(VAR_NAME) розширюються з використанням раніше визначених змінних середовища в контейнері та будь-яких змінних середовища сервісу. Якщо змінну не можна розвʼязати, посилання у вхідному рядку залишиться незмінним. Подвійні $$ зменшуються до одного $, що дозволяє екранувати синтаксис $(VAR_NAME): тобто "$$(VAR_NAME)" створить рядковий літерал "$(VAR_NAME)". Екрановані посилання ніколи не будуть розширюватися, незалежно від того, чи існує змінна. Стандартно — "".
Вибір ресурсу контейнера: наразі підтримуються лише обмеження та запити ресурсів (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory та requests.ephemeral-storage).
EphemeralContainer є тимчасовим контейнером, який можна додати до наявного пода для ініційованих користувачем дій, таких як налагодження. Тимчасові контейнери не мають гарантій щодо ресурсів або планування, і вони не будуть перезапущені після виходу або видалення пода. Kubelet може виселити под, якщо тимчасовий контейнер призведе до перевищення виділених ресурсів пода.
Щоб додати тимчасовий контейнер, використовуйте субресурс ephemeralcontainers наявного пода. Тимчасові контейнери не можуть бути видалені або перезапущені.
Поле
Опис
args string array
Аргументи для точки входу. Використовується CMD образу, якщо це не вказано. Посилання на змінні $(VAR_NAME) розгортаються за допомогою середовища контейнера. Якщо змінну не вдається знайти, посилання вхідного рядка залишиться без змін. Подвійні $$ зменшуються до одного $, що дозволяє екранувати синтаксис $(VAR_NAME): тобто "$$(VAR_NAME)" створить рядок літералів "$(VAR_NAME)". Екрановані посилання ніколи не будуть розгорнуті, незалежно від того, чи існує змінна. Не можна оновлювати. Більше інформації: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
command string array
Масив точок входу. Не виконується в межах оболонки. Використовується ENTRYPOINT образу, якщо це не вказано. Посилання на змінні $(VAR_NAME) розгортаються за допомогою середовища контейнера. Якщо змінну не вдається знайти, посилання вхідного рядка залишиться без змін. Подвійні $$ зменшуються до одного $, що дозволяє екранувати синтаксис $(VAR_NAME): тобто "$$(VAR_NAME)" створить рядок літералів "$(VAR_NAME)". Екрановані посилання ніколи не будуть розгорнуті, незалежно від того, чи існує змінна. Не можна оновлювати. Більше інформації: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
env EnvVar array patch strategy: злиття за ключем name
Список змінних середовища для встановлення в контейнері. Не можна оновлювати.
Список джерел для заповнення змінних середовища в контейнері. Ключі, визначені в джерелі, можуть складатися з будь-яких друкованих ASCII-символів, крім '='. Якщо ключ існує в кількох джерелах, значення, пов'язане з останнім джерелом, матиме пріоритет. Значення, визначені за допомогою Env з дубльованим ключем, матимуть пріоритет. Не можна оновлювати.
image string
Назва образу контейнера. Більше інформації: https://kubernetes.io/docs/concepts/containers/images
Resources не дозволено для епhemeral контейнерів. Епhemeral контейнери використовують вільні ресурси, вже виділені для поду.
restartPolicy string
Політика перезапуску для контейнера для керування поведінкою перезапуску кожного контейнера в поді. Ви не можете встановлювати це поле для епhemeral контейнерів.
Представляє список правил, які перевіряються, щоб визначити, чи слід перезапустити контейнер після виходу. Ви не можете встановлювати це поле для епhemeral контейнерів.
Опційно: SecurityContext визначає параметри безпеки, з якими слід запускати епhemeral контейнер. Якщо встановлено, поля SecurityContext перевизначають еквівалентні поля PodSecurityContext.
Чи повинен цей контейнер виділяти буфер для stdin у середовищі виконання контейнера. Якщо це не встановлено, читання з stdin у контейнері завжди призведе до EOF. Стандартно — false.
stdinOnce boolean
Чи повинен середовище виконання контейнера закривати канал stdin після того, як він був відкритий одним підключенням. Коли stdin встановлено в true, потік stdin залишатиметься відкритим під час кількох сеансів підключення. Якщо stdinOnce встановлено в true, stdin відкривається при запуску контейнера, порожній до першого підключення клієнта до stdin, а потім залишається відкритим і приймає дані до відключення клієнта, після чого stdin закривається і залишається закритим до перезапуску контейнера. Якщо цей прапорець встановлено в false, процеси контейнера, які читають зі stdin, ніколи не отримають EOF. Стандартно — false.
targetContainerName string
Якщо встановлено, імʼя контейнера з PodSpec, на який націлений цей епhemeral контейнер. Епhemeral контейнер буде запущений у просторах імен (IPC, PID тощо) цього контейнера. Якщо не встановлено, епhemeral контейнер використовує простори імен, налаштовані в Pod spec. Середовище виконання контейнера повинно підтримувати цю функцію. Якщо середовище виконання не підтримує націлювання на простори імен, результат встановлення цього поля невизначений.
terminationMessagePath string
Опційно: Шлях, за яким файл, у який буде записано повідомлення про завершення контейнера, монтується в файлову систему контейнера. Повідомлення призначене для короткого підсумкового статусу, такого як повідомлення про помилку перевірки. Буде обрізано вузлом, якщо перевищує 4096 байт. Загальна довжина повідомлення для всіх контейнерів буде обмежена 12 КБ. Стандартно — /dev/termination-log. Не можна оновлювати.
terminationMessagePolicy string
Вказує, як має бути заповнене повідомлення про завершення. Файл використовуватиме вміст terminationMessagePath для заповнення повідомлення про стан контейнера як у разі успіху, так і у разі помилки. FallbackToLogsOnError використовуватиме останній фрагмент журналу контейнера, якщо файл повідомлення про завершення порожній і контейнер завершився з помилкою. Вихідні дані журналу обмежені 2048 байтами або 80 рядками, залежно від того, що менше. Стандартно використовується File. Не можна оновлювати.
Можливі значення enum:
"FallbackToLogsOnError" читатиме останній вміст журналу контейнера для повідомлення про стан контейнера, коли контейнер завершився з помилкою і terminationMessagePath порожній.
"File" є стандартною поведінкою і встановлює повідомлення про стан контейнера відповідно до вмісту terminationMessagePath контейнера при його завершенні.
tty boolean
Чи повинен цей контейнер виділяти TTY для себе, також вимагає, щоб 'stdin' було встановлено в true. Стандартно — false.
volumeDevices VolumeDevice array patch strategy: злиття за ключем devicePath
volumeDevices є списком блочних пристроїв, які будуть використовуватися контейнером.
volumeMounts VolumeMount array patch strategy: злиття за ключем mountPath
Томи Podʼа для монтування у файлову систему контейнера. Subpath mounts не дозволені для епhemeral контейнерів. Не можна оновлювати.
workingDir string
Робоча тека контейнера. Якщо не вказано, буде використано стандартне значення середовища виконання контейнера, яке може бути налаштоване в образі контейнера. Не можна оновлювати.
EphemeralVolumeSource
Представляє епhemeral том, який обробляється звичайним драйвером зберігання.
Буде використано для створення окремого PVC для забезпечення тому. Под, у якому вбудовано цей EphemeralVolumeSource, буде власником PVC, тобто PVC буде видалено разом із подом. Імʼя PVC буде <pod name>-<volume name>, де <volume name> — це імʼя з масиву PodSpec.Volumes. Валідація пода відхилить под, якщо обʼєднане імʼя не є дійсним для PVC (наприклад, занадто довге). Наявний PVC з таким імʼям, який не належить поду, *не* буде використаний для пода, щоб уникнути випадкового використання стороннього тому. Запуск пода буде заблоковано, поки не буде видалено сторонній PVC. Якщо такий попередньо створений PVC призначений для використання подом, PVC потрібно оновити з посиланням на власника пода після його створення. Зазвичай це не потрібно, але може бути корисним при ручному відновленні пошкодженого кластера. Це поле лише для читання, і Kubernetes не вноситиме зміни до PVC після його створення. Обовʼязкове, не може бути nil.
ExecAction
ExecAction описує дію "запуск в контейнері".
Поле
Опис
command string array
Команда для виконання всередині контейнера. Робоча тека для команди — коренева ('/') у файловій системі контейнера. Команда просто виконується, вона не запускається всередині оболонки, тому традиційні інструкції оболонки ('|', тощо) не працюватимуть. Щоб використовувати оболонку, потрібно явно викликати цю оболонку. Статус виходу 0 вважається життєздатним/справним, а ненульовий — несправним.
FileKeySelector
FileKeySelector вибирає ключ з файлу середовища.
Поле
Опис
key* string
Ключ у файлі середовища. Недійсний ключ запобігатиме запуску пода. Ключі, визначені в джерелі, можуть складатися з будь-яких друкованих ASCII-символів, крім '='. Під час альфа-етапу функції EnvFiles розмір ключа обмежений 128 символами.
optional boolean
Вказує, чи файл або його ключ мають бути визначені. Якщо файл або ключ не існує, змінна середовища не буде опублікована. Якщо optional встановлено в true і вказаний ключ не існує, змінна середовища не буде встановлена в контейнерах пода. Якщо optional встановлено в false і вказаний ключ не існує, під час створення пода буде повернено помилку.
path* string
Шлях у межах тому, з якого потрібно вибрати файл. Має бути відносним і не може містити '..' або починатися з '..'.
volumeName* string
Імʼя тому, що містить файл середовища.
FlexVolumeSource
FlexVolume представляє собою загальний ресурс тому, який надається/підключається за допомогою втулка на основі exec.
Поле
Опис
driver* string
driver є імʼям драйвера, який використовується для цього тому.
fsType string
fsType є типом файлової системи для монтування. Має бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Стандартна файлова система залежить від скрипта FlexVolume.
options object
options є опціональним: це поле містить додаткові параметри команди, якщо вони є.
readOnly boolean
readOnly є опціональним: стандартно — false (читання/запис). Встановлення ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
secretRef є опціональним: secretRef є посиланням на обʼєкт секрету, що містить конфіденційну інформацію для передачі скриптам плагіна. Це поле може бути порожнім, якщо обʼєкт секрету не вказано. Якщо обʼєкт секрету містить більше одного секрету, усі секрети передаються скриптам плагіна.
GRPCAction
GRPCAction визначає дію, повʼязану з сервісом GRPC.
Поле
Опис
port* integer
Номер порту сервісу gRPC. Значення має бути в діапазоні від 1 до 65535.
Представляє том, який заповнюється вмістом репозиторію git. Томи git не підтримують управління власністю. Томи git підтримують переназначення SELinux.
ЗАСТАРІЛО: GitRepo застарів. Щоб забезпечити контейнер репозиторієм git, змонтуйте EmptyDir в InitContainer, який клонує репозиторій за допомогою git, а потім змонтуйте EmptyDir в контейнер Podʼа.
Поле
Опис
directory string
directory є імʼям цільової теки. Не може містити або починатися з '..'. Якщо вказано '.', тека тому буде репозиторієм git. В іншому випадку, якщо вказано, том міститиме репозиторій git у вкладеній теці з вказаним імʼям.
repository* string
repository є URL-адресою репозиторію git.
revision string
revision є хешем коміту для вказаної ревізії.
GlusterfsVolumeSource
Представляє собою монтування Glusterfs, яке триває протягом життя Podʼа. Томи Glusterfs не підтримують управління власністю або переназначення SELinux.
Поле
Опис
endpoints* string
endpoints є імʼям точки доступу, яка описує топологію Glusterfs.
Власні заголовки для встановлення в запиті. HTTP дозволяє повторювані заголовки.
path string
Шлях для доступу на HTTP сервері.
port*
Імʼя або номер порту для доступу на контейнері. Номер повинен бути в діапазоні від 1 до 65535. Імʼя повинно бути IANA_SVC_NAME.
scheme string
Схема для підключення до хоста. Стандартно — HTTP.
Можливі значення enum:
"HTTP" означає, що буде використано схему http://
"HTTPS" означає, що буде використано схему https://
HTTPHeader
HTTPHeader описує власний заголовок, який буде використано в HTTP-запитах.
Поле
Опис
name* string
Імʼя заголовка. Воно буде канонізоване при виведенні, тому варіанти з різним регістром будуть розумітися як один і той же заголовок.
value* string
Значення заголовка.
HostAlias
HostAlias представляє відповідність між IP та іменами хостів, які будуть вставлені як запис у файлі hosts Podʼа.
Поле
Опис
hostnames string array
Імена хостів для вказаної IP-адреси.
ip* string
IP-адреса для запису у файлі hosts.
HostIP
HostIP представляє одну IP-адресу, виділену для хоста.
Поле
Опис
ip* string
IP є IP-адресою, виділеною для хосту.
ISCSIVolumeSource
Представляє диск ISCSI. Томи ISCSI можна монтувати лише як читання/запис один раз. Томи ISCSI підтримують управління власністю та переназначення міток SELinux.
Поле
Опис
chapAuthDiscovery boolean
chapAuthDiscovery визначає, чи підтримується автентифікація iSCSI Discovery CHAP
chapAuthSession boolean
chapAuthSession визначає, чи підтримується автентифікація iSCSI Session CHAP
fsType string
fsType визначає тип файлової системи тому, який ви хочете змонтувати. Порада: Переконайтеся, що тип файлової системи підтримується операційною системою хосту. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, зазвичай використовується "ext4". Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#iscsi.
initiatorName string
initiatorName є власним iSCSI Initiator Name. Якщо initiatorName вказано разом з iscsiInterface, буде створено новий iSCSI інтерфейс <target portal>:\<volume name> для підключення.
iqn* string
iqn є iSCSI Qualified Name цілі.
iscsiInterface string
iscsiInterface є імʼям інтерфейсу, який використовує iSCSI транспорт. Стандартно — 'default' (tcp).
lun* integer
lun представляє номер iSCSI Target Lun.
portals string array
portals є списком iSCSI Target Portal. Портал може бути або IP-адресою, або ip_addr:port, якщо порт відрізняється від стандартного (зазвичай TCP порти 860 та 3260).
readOnly boolean
readOnly тут примусово встановлює параметр ReadOnly у VolumeMounts. Стандартно — false.
secretRef є CHAP Secret для автентифікації iSCSI цілі та ініціатора
targetPortal* string
targetPortal є iSCSI Target Portal. Портал може бути або IP-адресою, або ip_addr:port, якщо порт відрізняється від стандартного (зазвичай TCP порти 860 та 3260).
ImageVolumeSource
ImageVolumeSource представляє ресурс образу тома.
Поле
Опис
pullPolicy string
Політика отримання обʼєктів OCI. Можливі значення: Always: kubelet завжди намагається отримати образ за посиланням. Створення контейнера зазнає невдачі, якщо отримання не вдається. Never: kubelet ніколи не намагається отримати образ за посиланням і використовує лише локальний образ або артефакт. Створення контейнера зазнає невдачі, якщо посилання відсутнє. IfNotPresent: kubelet намагається отримати обʼєкт, якщо він ще не присутній на диску. Створення контейнера зазнає невдачі, якщо посилання відсутнє і отримання не вдається. Стандартно — Always, якщо вказано тег :latest, або IfNotPresent в іншому випадку.
Можливі значення enum:
"Always" означає, що kubelet завжди намагається отримати останній образ. Контейнер зазнає невдачі, якщо отримання не вдається.
"IfNotPresent" означає, що kubelet отримує образ, якщо він відсутній на диску. Контейнер зазнає невдачі, якщо образ відсутній і отримання не вдається.
"Never" означає, що kubelet ніколи не отримує образ, а використовує лише локальний образ. Контейнер зазнає невдачі, якщо образ відсутній
reference string
Обовʼязково: Образ або посилання на артефакт для використання. Поводиться так само, як pod.spec.containers[*].image. Секрети для отримання образу будуть зібрані так само, як для образу контейнера, шляхом перевірки облікових даних вузла, секретів для отримання образу SA та секретів для отримання образу pod spec. Більше інформації: https://kubernetes.io/docs/concepts/containers/images. Це поле є необовʼязковим, щоб дозволити вищому рівню керування конфігурацією встановлювати стандартне значення або перевизначати образи контейнерів у контролерах робочих навантажень, таких як Deployments та StatefulSets.
ImageVolumeStatus
ImageVolumeStatus представляє стан тому на основі образу.
Поле
Опис
imageRef* string
ImageRef є дайджестом образу, використаного для цього тому. Він повинен мати значення, подібне до pod.status.containerStatuses[i].imageID. Довжина ImageRef не повинна перевищувати 256 символів.
KeyToPath
Зіставлення рядка ключа з шляхом у межах тому.
Поле
Опис
key* string
key є ключем для проєкції.
mode integer
mode є опціональним: біти режиму, які використовуються для встановлення дозволів на цей файл. Має бути вісімкове значення від 0000 до 0777 або десяткове значення від 0 до 511. YAML приймає як вісімкові, так і десяткові значення, JSON вимагає десяткові значення для бітів режиму. Якщо не вказано, буде використано стандартне значення для тому. Може конфліктувати з іншими параметрами, які впливають на режим файлу, такими як fsGroup, і результатом можуть бути інші встановлені біти режиму.
path* string
path є відносним шляхом файлу для зіставлення ключа. Не може бути абсолютним шляхом. Не може містити елемент шляху '..'. Не може починатися зі рядка '..'.
Lifecycle
Lifecycle описує дії, які система керування повинна виконувати у відповідь на події життєвого циклу контейнера. Для обробників життєвого циклу PostStart і PreStop керування контейнером блокується до завершення дії, якщо процес контейнера не зазнає невдачі, у такому випадку робота обробника переривається.
PreStop викликається одразу перед завершенням роботи контейнера через запит API або подію керування, таку як збій перевірки життєздатності/запуску, примусове завершення, конфлікт ресурсів тощо. Обробник не викликається, якщо контейнер аварійно завершує роботу або виходить. Зворотний відлік періоду завершення роботи Podʼа починається перед виконанням обробника PreStop. Незалежно від результату роботи обробника, контейнер зрештою завершить роботу в межах періоду завершення роботи Podʼа (якщо не затримано завершувачами). Інше керування контейнером блокується до завершення роботи обробника або до досягнення періоду завершення роботи. Більше інформації: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks.
stopSignal string
StopSignal визначає, який сигнал буде надіслано контейнеру під час його зупинки. Якщо не вказано, стандартне значення визначається середовищем виконання контейнера. StopSignal можна встановити лише для Podʼів з непорожнім .spec.os.name
Можливі значення enum:
"SIGABRT"
"SIGALRM"
"SIGBUS"
"SIGCHLD"
"SIGCLD"
"SIGCONT"
"SIGFPE"
"SIGHUP"
"SIGILL"
"SIGINT"
"SIGIO"
"SIGIOT"
"SIGKILL"
"SIGPIPE"
"SIGPOLL"
"SIGPROF"
"SIGPWR"
"SIGQUIT"
"SIGRTMAX"
"SIGRTMAX-1"
"SIGRTMAX-10"
"SIGRTMAX-11"
"SIGRTMAX-12"
"SIGRTMAX-13"
"SIGRTMAX-14"
"SIGRTMAX-2"
"SIGRTMAX-3"
"SIGRTMAX-4"
"SIGRTMAX-5"
"SIGRTMAX-6"
"SIGRTMAX-7"
"SIGRTMAX-8"
"SIGRTMAX-9"
"SIGRTMIN"
"SIGRTMIN+1"
"SIGRTMIN+10"
"SIGRTMIN+11"
"SIGRTMIN+12"
"SIGRTMIN+13"
"SIGRTMIN+14"
"SIGRTMIN+15"
"SIGRTMIN+2"
"SIGRTMIN+3"
"SIGRTMIN+4"
"SIGRTMIN+5"
"SIGRTMIN+6"
"SIGRTMIN+7"
"SIGRTMIN+8"
"SIGRTMIN+9"
"SIGSEGV"
"SIGSTKFLT"
"SIGSTOP"
"SIGSYS"
"SIGTERM"
"SIGTRAP"
"SIGTSTP"
"SIGTTIN"
"SIGTTOU"
"SIGURG"
"SIGUSR1"
"SIGUSR2"
"SIGVTALRM"
"SIGWINCH"
"SIGXCPU"
"SIGXFSZ"
LifecycleHandler
LifecycleHandler визначає конкретну дію, яка повинна бути виконана в хуку життєвого циклу. Повинно бути вказано лише одне з полів, за винятком TCPSocket.
Застаріло. TCPSocket не підтримується як LifecycleHandler і зберігається для зворотної сумісності. Валідація цього поля не проводиться, і хуки життєвого циклу не працюватимуть під час виконання, якщо воно вказане.
LinuxContainerUser
LinuxContainerUser представляє інформацію про ідентичність користувача в Linux-контейнерах
Поле
Опис
gid* integer
GID є основним GID, спочатку прикріпленим до першого процесу в контейнері
supplementalGroups integer array
SupplementalGroups є додатковими групами, спочатку прикріпленими до першого процесу в контейнері
uid* integer
UID є основним UID, спочатку прикріпленим до першого процесу в контейнері
NodeAffinity
Node affinity є групою правил планування на основі спорідненості вузлів.
Планувальник надаватиме перевагу розміщенню подів на вузлах, які задовольняють виразам спорідненості, зазначеним в цьому полі, але він може обрати вузол, який порушує один або кілька виразів. Найбільш бажаним вузлом є той, який має найбільшу суму ваг, тобто для кожного вузла, який відповідає всім вимогам планування (запит ресурсів, вирази спорідненості requiredDuringScheduling тощо), обчислить суму, перебираючи елементи цього поля та додаючи "вагу" до суми, якщо вузол відповідає відповідним matchExpressions; вузол(и) з найвищою сумою є найбільш бажаними.
Якщо вимоги спорідненості, зазначені в цьому полі, не виконуються під час планування, под не буде заплановано на вузол. Якщо вимоги спорідненості, зазначені в цьому полі, перестануть виконуватися під час виконання поду (наприклад, через оновлення), система може або не може спробувати в кінцевому підсумку виселити под з його вузла.
NodeAllocatableResourceClaimStatus
NodeAllocatableResourceClaimStatus описує стан ресурсів, доступних на вузлі, які були виділені через DRA.
Поле
Опис
containers string array
Список контейнерів у цьому поді, які посилаються на цей запит ресурсів.
resourceClaimName* string
ResourceClaimName є запитом ресурсів, на який посилається под, що призвів до цього виділення ресурсів на вузлі.
resources* object
Resources є мапою імен ресурсів, доступних на вузлі, до загальної кількості, виділеної для цього запиту.
ObjectFieldSelector
ObjectFieldSelector обирає поле обʼєкта з вказаною версією API.
Поле
Опис
apiVersion string
Версія схеми, у термінах якої записано FieldPath, стандартно — "v1".
fieldPath* string
Шлях до поля, яке потрібно обрати у вказаній версії API.
PersistentVolumeClaimTemplate
PersistentVolumeClaimTemplate використовується для створення обʼєктів PersistentVolumeClaim як частини EphemeralVolumeSource.
Може містити мітки та анотації, які будуть скопійовані в PVC під час його створення. Жодні інші поля не дозволяються і будуть відхилені під час перевірки.
Специфікація для PersistentVolumeClaim. Весь вміст копіюється без змін у PVC, який створюється з цього шаблону. Ті самі поля, що й у PersistentVolumeClaim, також дійсні тут.
PersistentVolumeClaimVolumeSource
PersistentVolumeClaimVolumeSource посилається на PVC користувача в тому ж просторі імен. Цей том знаходить привʼязаний PV і монтує цей том для пода. PersistentVolumeClaimVolumeSource, по суті, є обгорткою навколо іншого типу тому, який належить комусь іншому (системі).
Планувальник віддає перевагу розміщенню подів на вузлах, які задовольняють виразам спорідненості, зазначених в цьому полі, але може обрати вузол, який порушує один або кілька виразів. Найбільш бажаним вузлом є той, у якого найбільша сума ваг, тобто для кожного вузла, який відповідає всім вимогам планування (запит ресурсів, вирази requiredDuringScheduling спорідненості тощо), обчислюється сума, перебираючи елементи цього поля та додаючи "вагу" до суми, якщо вузол має поди, які відповідають відповідному podAffinityTerm; вузол(и) з найвищою сумою є найбільш бажаними.
Якщо вимоги спорідненості, зазначені в цьому полі, не виконуються під час планування, под не буде заплановано на вузол. Якщо вимоги спорідненості, зазначені в цьому полі, перестануть виконуватися під час виконання пода (наприклад, через оновлення мітки пода), система може або не може спробувати в кінцевому підсумку виселити под з його вузла. Коли є кілька елементів, списки вузлів, що відповідають кожному podAffinityTerm, перетинаються, тобто всі умови повинні бути виконані.
PodAffinityTerm
Визначає набір подів (а саме тих, що відповідають labelSelector відносно заданих namespace(s)), з якими цей под повинен бути розташований разом (affinity) або не розташований разом (anti-affinity), де розташування разом визначається як виконання на вузлі, значення мітки з ключем <topologyKey> якого відповідає будь-якому вузлу, на якому виконується под з набору подів.
Запит міток для набору ресурсів, у цьому випадку подів. Якщо він дорівнює null, цей PodAffinityTerm не відповідає жодному поду.
matchLabelKeys string array
MatchLabelKeys є набором міток ключів подів для вибору, які поди будуть враховані. Ключі використовуються для пошуку значень у вхідних мітках подів, ці ключ-значення мітки обʼєднуються з labelSelector як key in (value) для вибору групи наявних подів, які будуть враховані для (анти) спорідненості вхідного пода. Ключі, які не існують у вхідних мітках подів, будуть ігноруватися. Стандартне значення є порожнім. Той самий ключ заборонено використовувати як у matchLabelKeys, так і в labelSelector. Також matchLabelKeys не може бути встановлено, якщо labelSelector не встановлено.
mismatchLabelKeys string array
MismatchLabelKeys є набором міток ключів подів для вибору, які поди будуть враховані. Ключі використовуються для пошуку значень у вхідних мітках подів, ці ключ-значення мітки обʼєднуються з labelSelector як key notin (value) для вибору групи наявних подів, які будуть враховані для (анти) спорідненості вхідного пода. Ключі, які не існують у вхідних мітках подів, будуть ігноруватися. Стандартне значення є порожнім. Той самий ключ заборонено використовувати як у mismatchLabelKeys, так і в labelSelector. Також mismatchLabelKeys не може бути встановлено, якщо labelSelector не встановлено.
Запит міток для набору просторів імен, до яких застосовується цей термін. Термін застосовується до обʼєднання просторів імен, вибраних цим полем, та тих, що перелічені в полі namespaces. Null селектор і null або порожній список просторів імен означає "простір імен цього пода". Порожній селектор ({}) відповідає всім просторам імен.
namespaces string array
namespaces визначає статичний список назв просторів імен, до яких застосовується цей термін. Термін застосовується до обʼєднання просторів імен, перелічених у цьому полі, та тих, що вибрані за допомогою namespaceSelector. null або порожній список просторів імен і null namespaceSelector означає "простір імен цього пода".
topologyKey* string
Цей под має бути розташований разом (affinity) або не разом (anti-affinity) з подами, що відповідають labelSelector у зазначених просторах імен, де "разом" визначається як запуск на вузлі, значення мітки з ключем topologyKey якого відповідає будь-якому вузлу, на якому запущено будь-який з вибраних подів. Порожній topologyKey не дозволяється.
PodAntiAffinity
Pod anti affinity є групою правил планування між подами, що визначають анти-спорідненість.
Планувальник віддає перевагу розміщенню подів на вузлах, які задовольняють вирази анти-спорідненості, зазначені в цьому полі, але може обрати вузол, який порушує один або кілька виразів. Найбільш бажаним вузлом є той, у якого найбільша сума ваг, тобто для кожного вузла, який відповідає всім вимогам планування (запит ресурсів, requiredDuringScheduling вирази анти-спорідненості тощо), обчислюється сума, перебираючи елементи цього поля і віднімаючи "вагу" з суми, якщо вузол має поди, які відповідають відповідному podAffinityTerm; вузол(и) з найвищою сумою є найбільш бажаними.
Якщо вимоги анти-спорідненості, зазначені в цьому полі, не виконуються під час планування, под не буде заплановано на вузол. Якщо вимоги анти-спорідненості, зазначені в цьому полі, перестануть виконуватися під час виконання пода (наприклад, через оновлення мітки пода), система може або не може спробувати в кінцевому підсумку виселити под з його вузла. Коли є кілька елементів, списки вузлів, що відповідають кожному podAffinityTerm, перетинаються, тобто всі умови повинні бути виконані.
PodCertificateProjection
PodCertificateProjection надає приватний ключ та X.509 сертифікат у файловій системі пода.
Поле
Опис
certificateChainPath string
Записує ланцюжок сертифікатів за цим шляхом у спроєцьованому томі. Більшість застосунків повинні використовувати credentialBundlePath. При використанні keyPath і certificateChainPath ваш застосунок повинен перевіряти, що ключ і сертифікат листа узгоджені, оскільки можливо прочитати файли під час ротації.
credentialBundlePath string
Записує пакет облікових даних за цим шляхом у спроєцьованому томі. Пакет облікових даних є одним файлом, який містить кілька блоків PEM. Перший блок PEM є блоком PRIVATE KEY, що містить приватний ключ PKCS#8. Решта блоків є блоками CERTIFICATE, що містять виданий ланцюжок сертифікатів від підписувача (лист і будь-які проміжні сертифікати). Використання credentialBundlePath дозволяє коду вашого застосунку в поді виконати одну атомарну операцію читання, яка отримує узгоджений ключ і ланцюжок сертифікатів. Якщо ви проєцюєте їх в окремі файли, коду вашого застосунку потрібно додатково перевіряти, що листовий сертифікат був виданий для ключа.
keyPath string
Записує ключ за цим шляхом у спроєцьованому томі. Більшість застосунків повинні використовувати credentialBundlePath. При використанні keyPath і certificateChainPath ваш застосунок повинен перевіряти, що ключ і сертифікат листа узгоджені, оскільки можливо прочитати файли під час ротації.
keyType* string
Тип ключа, який Kubelet згенерує для пода. Дійсні значення: "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521" та "ED25519".
maxExpirationSeconds integer
maxExpirationSeconds є максимально дозволеним терміном дії сертифіката. Kubelet копіює це значення без змін у PodCertificateRequests, які він генерує для цієї проєкції. Якщо не вказано, kube-apiserver встановить його на 86400 (24 години). kube-apiserver відхилить значення менші за 3600 (1 година). Максимально допустиме значення — 7862400 (91 день). Реалізація підписувача може видавати сертифікат з будь-яким терміном дії *коротшим* за MaxExpirationSeconds, але не менше ніж 3600 секунд (1 година). Це обмеження контролюється kube-apiserver. Підписувачіkubernetes.io ніколи не видаватимуть сертифікати з терміном дії більше ніж 24 години.
signerName* string
CSR, згенеровані Kubelet, будуть адресовані цьому підписувачу.
userAnnotations object
userAnnotations дозволяють авторам подів передавати додаткову інформацію реалізації підписувача. Kubernetes ніяким чином не обмежує і не перевіряє ці метадані. Ці значення копіюються без змін у поле spec.unverifiedUserAnnotations обʼєктів PodCertificateRequest, які створює Kubelet. Записи підлягають такій же перевірці, як і анотації метаданих обʼєктів, з додатковою вимогою, що всі ключі повинні мати доменне префіксування. Ніяких обмежень на значення не накладається, крім загального обмеження на розмір всього поля. Підписувачі повинні документувати підтримувані ключі та значення. Підписувачі повинні відхиляти запити, що містять ключі, які вони не розпізнають.
PodCondition
PodCondition містить деталі щодо поточного стану цього пода.
Список параметрів DNS-резолвера. Він буде обʼєднаний з базовими параметрами, згенерованими з DNSPolicy. Дублікати будуть видалені. Параметри, задані в Options, перевизначать ті, що зʼявляються в базовій DNSPolicy.
searches string array
Список доменів пошуку DNS для пошуку імен хостів. Він буде доданий до базових шляхів пошуку, згенерованих з DNSPolicy. Дублікати шляхів пошуку будуть видалені.
PodDNSConfigOption
PodDNSConfigOption визначає параметри DNS-резолвера пода.
Поле
Опис
name string
Name є імʼям цієї опції DNS-резолвера. Обовʼязково.
value string
Value є значенням цієї опції DNS-резолвера.
PodExtendedResourceClaimStatus
PodExtendedResourceClaimStatus зберігається в PodStatus для розширених запитів ресурсів, підтримуваних DRA. Він зберігає згенероване імʼя для відповідного спеціального ResourceClaim, створеного планувальником.
ConditionType посилається на стан у списку станів пода з відповідним типом.
PodResourceClaim
PodResourceClaim посилається на точно один ResourceClaim, або безпосередньо, або шляхом вказівки ResourceClaimTemplate, який потім перетворюється на ResourceClaim для пода.
Він додає імʼя, яке унікально ідентифікує ResourceClaim всередині Podʼа. Контейнери, які потребують доступу до ResourceClaim, посилаються на нього за цим імʼям.
Коли функціональна можливість DRAWorkloadResourceClaims увімкнена і цей Pod належить до PodGroup, PodResourceClaim співставляється з PodGroupResourceClaim, якщо всі їхні поля однакові (Name, ResourceClaimName та ResourceClaimTemplateName). Співставлена вимога посилається на один ResourceClaim, спільний для всіх Podʼів у PodGroup, зарезервований для PodGroup у ResourceClaimStatus.ReservedFor, а не для окремих Podʼів.
Поле
Опис
name* string
Name унікально ідентифікує цю заявку на ресурс всередині пода. Це має бути DNS_LABEL.
resourceClaimName string
ResourceClaimName є імʼям обʼєкта ResourceClaim у тому ж просторі імен, що й цей под. Точно одне з полів ResourceClaimName або ResourceClaimTemplateName має бути встановлено.
resourceClaimTemplateName string
ResourceClaimTemplateName є імʼям обʼєкта ResourceClaimTemplate у тому ж просторі імен, що й цей под. Шаблон буде використано для створення нового ResourceClaim, який буде привʼязаний до цього пода. Коли цей под буде видалено, ResourceClaim також буде видалено. Імʼя пода та імʼя ресурсу, разом із згенерованим компонентом, будуть використані для формування унікального імені для ResourceClaim, яке буде зафіксовано в pod.status.resourceClaimStatuses. Коли функціональна можливість DRAWorkloadResourceClaims увімкнена і под належить до PodGroup, яка визначає PodGroupResourceClaim з тим самим Name та ResourceClaimTemplateName, цей PodResourceClaim вирішується у ResourceClaim, згенерований для PodGroup. Всі поди в групі, які визначають еквівалентний PodResourceClaim, що відповідає Name та ResourceClaimTemplateName PodGroupResourceClaim, спільно використовують той самий згенерований ResourceClaim. ResourceClaims, згенеровані для PodGroup, належать PodGroup, і їхній життєвий цикл повʼязаний з PodGroup, а не з окремим подом. Це поле є незмінним, і жодні зміни не будуть внесені до відповідного ResourceClaim контрольним механізмом після створення ResourceClaim. Точно одне з полів ResourceClaimName або ResourceClaimTemplateName має бути встановлено.
PodSchedulingGate
PodSchedulingGate є повʼязаним з Podʼом для захисту його планування.
Поле
Опис
name* string
Імʼя шлюзу планування. Кожен шлюз планування повинен мати унікальне поле name.
PodSchedulingGroup
PodSchedulingGroup ідентифікує екземпляр групи планування часу виконання, до якої належить Pod. Планувальник використовує цю інформацію для застосування семантики планування з урахуванням навантаження. Має бути вказане точно одне поле.
Поле
Опис
podGroupName string
PodGroupName вказує імʼя окремого обʼєкта PodGroup, який представляє екземпляр групи часу виконання. Має бути DNS-субдоменом.
PodSecurityContext
PodSecurityContext містить атрибути безпеки на рівні Podʼа та загальні налаштування контейнера. Деякі поля також присутні в container.securityContext. Значення полів container.securityContext мають пріоритет над значеннями полів PodSecurityContext.
appArmorProfile містить параметри AppArmor, які використовуються контейнерами в цьому Podʼі. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
fsGroup integer
Спеціальна додаткова група, яка застосовується до всіх контейнерів у Podʼі. Деякі типи томів дозволяють Kubelet змінювати власника цього тому на власника Podʼа:
Власний GID буде FSGroup
Встановлюється біт setgid (нові файли, створені в томі, будуть належати FSGroup)
Бітові права доступу обʼєднуються з rw-rw----
Якщо не встановлено, Kubelet не змінюватиме власника та права доступу жодного тому. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
fsGroupChangePolicy string
fsGroupChangePolicy визначає поведінку зміни власника та прав доступу до тому перед його використанням у Podʼі. Це поле застосовується лише до типів томів, які підтримують власність на основі fsGroup (і права доступу). Воно не впливає на епhemeral томи, такі як: secret, configmaps та emptydir. Дійсні значення: "OnRootMismatch" та "Always". Якщо не вказано, використовується "Always". Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Можливі значення enum:
"Always" вказує, що власник та права доступу до тому завжди повинні змінюватися при монтуванні тому всередині Podʼа. Це стандартна поведінка.
"OnRootMismatch" вказує, що власник та права доступу до тому будуть змінюватися лише тоді, коли права доступу та власник кореневої теки не відповідають очікуваним правам доступу до тому. Це може допомогти скоротити час, необхідний для зміни власника та прав доступу до тому.
runAsGroup integer
GID, з яким запускається точка входу процесу контейнера. Якщо значення не вказано, використовується стандартне значення середовища виконання. Також може бути задано в SecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, значення, вказане в SecurityContext, має пріоритет для цього контейнера. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
runAsNonRoot boolean
Вказує на те, що контейнер повинен запускатися не від імені root. Якщо значення true, Kubelet перевірятиме образ під час виконання, щоб переконатися, що він не запускається з UID 0 (root), і не вдасться запустити контейнер, якщо це так. Якщо значення не вказано або воно false, така перевірка не проводиться. Також може бути задано в SecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, значення, вказане в SecurityContext, має пріоритет для цього контейнера.
runAsUser integer
UID, з яким запускається точка входу процесу контейнера. Якщо значення не вказано, використовується стандартне значення середовища виконання. Також може бути задано в SecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, значення, вказане в SecurityContext, має пріоритет для цього контейнера. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
seLinuxChangePolicy string
seLinuxChangePolicy визначає, як мітка SELinux контейнера застосовується до всіх томів, що використовуються Podʼом. Не впливає на вузли, які не підтримують SELinux, або на томи, які не підтримують SELinux. Дійсні значення: "MountOption" та "Recursive". "Recursive" означає повторне маркування всіх файлів на всіх томах Podʼа за допомогою середовища виконання контейнера. Це може бути повільно для великих томів, але дозволяє змішувати привілейовані та непривілейовані Podʼи, що використовують один і той же том на одному вузлі. "MountOption" монтує всі відповідні томи Podʼа з опцією монтування -o context. Це вимагає, щоб всі Podʼи, що використовують один і той же том, використовували одну й ту ж мітку SELinux. Неможливо використовувати один і той же том серед привілейованих та непривілейованих Podʼів. Відповідні томи включають вбудовані механізми підтримки томів FibreChannel та iSCSI, а також всі CSI томи, драйвер CSI яких оголошує підтримку SELinux, встановлюючи spec.seLinuxMount: true у своєму екземплярі CSIDriver. Інші томи завжди повторно маркуються рекурсивно. Значення "MountOption" дозволено лише тоді, коли увімкнено функціональний прапорець SELinuxMount. Якщо не вказано і функціональний прапорець SELinuxMount увімкнено, використовується "MountOption". Якщо не вказано і функціональний прапорець SELinuxMount вимкнено, для томів ReadWriteOncePod використовується "MountOption", а для всіх інших томів — "Recursive". Це поле впливає лише на Podʼи, які мають встановлену мітку SELinux, або в PodSecurityContext, або в SecurityContext усіх контейнерів. Всі Podʼи, що використовують один і той же том, повинні використовувати одну й ту ж seLinuxChangePolicy, інакше деякі Podʼи можуть застрягти в стані ContainerCreating. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Контекст SELinux, який застосовується до всіх контейнерів. Якщо не вказано, середовище виконання контейнера призначить випадковий контекст SELinux для кожного контейнера. Також може бути задано в SecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, значення, вказане в SecurityContext, має пріоритет для цього контейнера. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Параметри seccomp, які використовуються контейнерами в цьому поді. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
supplementalGroups integer array
Список груп, які застосовуються до першого процесу, що запускається в кожному контейнері, на додачу до основного GID контейнера та fsGroup (якщо вказано). Якщо функція SupplementalGroupsPolicy увімкнена, поле supplementalGroupsPolicy визначає, чи ці групи додаються до будь-яких членств у групах, визначених у образі контейнера, чи замінюють їх. Якщо не вказано, додаткові групи не додаються, хоча членства в групах, визначені в образі контейнера, можуть все ще використовуватися залежно від поля supplementalGroupsPolicy. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
supplementalGroupsPolicy string
Визначає, як обчислюються додаткові групи перших процесів контейнера. Дійсні значення: "Merge" та "Strict". Якщо не вказано, використовується "Merge". (Alpha) Використання цього поля вимагає увімкнення функціональної можливості SupplementalGroupsPolicy, а середовище виконання контейнера повинно підтримувати цю функцію. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Можливі значення enum:
"Merge" означає, що надані контейнером SupplementalGroups та FsGroup (вказані в SecurityContext) будуть обʼєднані з основними групами користувача, визначеними в образі контейнера (у /etc/group).
"Strict" означає, що надані контейнером SupplementalGroups та FsGroup (вказані в SecurityContext) будуть використовуватися замість будь-яких груп, визначених в образі контейнера.
Sysctls містить список іменованих sysctl, які використовуються для пода. Поди з непідтримуваними sysctl (з боку середовища виконання контейнера) можуть не запускатися. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Специфічні для Windows налаштування, які застосовуються до всіх контейнерів. Якщо не вказано, будуть використані параметри з SecurityContext контейнера. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, перевага надається значенню, вказаному в SecurityContext. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є linux.
PreferredSchedulingTerm
Порожній preferred scheduling term відповідає всім обʼєктам з неявною вагою 0 (тобто це no-op). Null preferred scheduling term не відповідає жодним обʼєктам (тобто також є no-op).
Як часто (у секундах) виконувати перевірку. Стандартно — 10 секунд. Мінімальне значення — 1.
successThreshold integer
Мінімальна кількість послідовних успішних перевірок, щоб перевірка вважалася успішною після невдачі. Зазвичай — 1. Має бути 1 для перевірок життєздатності та запуску. Мінімальне значення — 1.
Опціональна тривалість у секундах, протягом якої под має завершити роботу після невдачі перевірки. Період належного завершення — це тривалість у секундах після того, як процеси, що працюють у поді, отримують сигнал завершення, і час, коли процеси примусово зупиняються за допомогою сигналу kill. Встановіть це значення довше, ніж очікуваний час очищення для вашого процесу. Якщо це значення nil, буде використано terminationGracePeriodSeconds пода. В іншому випадку це значення перевизначає значення, надане у специфікації пода. Значення має бути невід’ємним цілим числом. Значення нуль означає негайну зупинку за допомогою сигналу kill (немає можливості завершити роботу). Це бета-поле і вимагає увімкнення функціональної можливості ProbeTerminationGracePeriod. Мінімальне значення — 1. Використовується spec.terminationGracePeriodSeconds, якщо не встановлено.
defaultMode визначає біти режиму, які стандартно використовуються для встановлення дозволів на створені файли. Має бути восьмеричним значенням від 0000 до 0777 або десятковим значенням від 0 до 511. YAML приймає як восьмеричні, так і десяткові значення, JSON вимагає десяткових значень для бітів режиму. Теки всередині шляху не впливають на цю настройку. Це може конфліктувати з іншими параметрами, які впливають на режим файлу, такими як fsGroup, і результатом можуть бути інші встановлені біти режиму.
sources є списком проєкцій томів. Кожен елемент у цьому списку обробляє одне джерело.
RBDVolumeSource
Представляє підключення Rados Block Device, яке триває протягом життя пода. RBD томи підтримують управління власністю та переназначення SELinux.
Поле
Опис
fsType string
fsType є типом файлової системи тому, який ви хочете змонтувати. Порада: переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, неявно вважається "ext4". Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#rbd
Визначає формат виводу відкритих ресурсів, стандартно — "1"
resource* string
Обовʼязково: ресурс для вибору
ResourceHealth
ResourceHealth представляє стан ресурсу. Він містить останню інформацію про стан пристрою. Це частина KEP https://kep.k8s.io/4680.
Поле
Опис
health string
Стан ресурсу. Може бути одним з наступних:
Healthy: працює нормально
Unhealthy: повідомлено про несправність. Ми вважаємо це тимчасовою проблемою зі станом, оскільки наразі немає механізму для розрізнення тимчасових та постійних проблем.
Unknown: стан не може бути визначений. Наприклад, втулок пристрою був відключений і не був повторно зареєстрований. У майбутньому ми можемо ввести статус PermanentlyUnhealthy.
message string
Message надає контекст, зрозумілий людині, для Health (наприклад, "ECC error count exceeded threshold"). Це поле заповнюється kubelet, коли ResourceHealthStatusMessage увімкнено, якщо втулок DRA повертає повідомлення, інакше воно дорівнює null.
resourceID* string
ResourceID є унікальним ідентифікатором ресурсу. Див. тип ResourceID для отримання додаткової інформації.
ResourceRequirements
ResourceRequirements описує вимоги до обчислювальних ресурсів.
Claims є списком імен ресурсів, визначених у spec.resourceClaims, які використовуються цим контейнером. Це поле залежить від функціональної можливості DynamicResourceAllocation. Це поле є незмінним. Воно може бути встановлено лише для контейнерів.
Requests описує мінімальну кількість обчислювальних ресурсів, необхідних для роботи. Якщо Requests опущено для контейнера, воно зазвичай дорівнює Limits, якщо воно явно вказано, інакше значенню, визначеному реалізацією. Requests не може перевищувати Limits. Більше інформації: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
ResourceStatus
ResourceStatus представляє стан одного ресурсу, виділеного для Podʼа.
Поле
Опис
name* string
Назва ресурсу. Має бути унікальною в межах Podʼа і, у випадку ресурсу без DRA, відповідати одному з ресурсів з специфікації Podʼа. Для ресурсів DRA значення має бути "claim:<claim_name>/<request>". Коли цей статус повідомляється про контейнер, "claim_name" і "request" мають відповідати одній з заявок цього контейнера.
Список станів унікальних ресурсів. Кожен елемент списку містить унікальний ідентифікатор ресурсу та його стан. Як мінімум, протягом життєвого циклу Podʼа, ідентифікатор ресурсу повинен унікально ідентифікувати ресурс, виділений Podʼу на вузлі. Якщо інший Pod на тому ж вузлі повідомляє про стан з тим самим ідентифікатором ресурсу, це повинен бути той самий ресурс, який вони спільно використовують. Див. визначення типу ResourceID для конкретного формату, який він має у різних випадках використання.
SELinuxOptions
SELinuxOptions описує мітки, які будуть застосовані до контейнера.
Поле
Опис
level string
Level є міткою рівня SELinux, яка застосовується до контейнера.
role string
Role є міткою ролі SELinux, яка застосовується до контейнера.
type string
Type є міткою типу SELinux, яка застосовується до контейнера.
user string
User є міткою користувача SELinux, яка застосовується до контейнера.
ScaleIOVolumeSource
ScaleIOVolumeSource представляє постійний том ScaleIO
Поле
Опис
fsType string
fsType є типом файлової системи для монтування. Має бути типом файлової системи, підтримуваним операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Зазвичай — "xfs".
gateway* string
gateway є адресою хоста ScaleIO API Gateway.
protectionDomain string
protectionDomain є назвою домену захисту ScaleIO для налаштованого сховища.
readOnly boolean
readOnly стандартно — false (читання/запис). ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
secretRef посилається на секрет для користувача ScaleIO та іншої конфіденційної інформації. Якщо це не надано, операція входу завершиться невдачею.
sslEnabled boolean
Прапорець sslEnabled вмикає/вимикає SSL-з'єднання з Gateway, зазвичай — false
storageMode string
storageMode вказує, чи має сховище для тому бути ThickProvisioned або ThinProvisioned. Стандартно — ThinProvisioned.
storagePool string
storagePool є пулом сховища ScaleIO, повʼязаним із доменом захисту.
system* string
system є назвою системи зберігання, налаштованої в ScaleIO.
volumeName string
volumeName є назвою тому, який вже створено в системі ScaleIO і який повʼязаний із цим джерелом тому.
SeccompProfile
SeccompProfile визначає налаштування профілю seccomp для поду/контейнера. Може бути встановлено лише одне джерело профілю.
Поле
Опис
localhostProfile string
localhostProfile вказує, що слід використовувати профіль, визначений у файлі на вузлі. Профіль повинен бути попередньо налаштований на вузлі для роботи. Має бути низхідним шляхом, відносно налаштованого розташування профілю seccomp kubelet. Має бути встановлено, якщо type дорівнює "Localhost". Не повинно бути встановлено для будь-якого іншого типу.
type* string
type вказує, який тип профілю seccomp буде застосовано. Дійсні варіанти:
Localhost — слід використовувати профіль, визначений у файлі на вузлі.
RuntimeDefault — слід використовувати стандартний для середовища виконання контейнера профіль.
Unconfined — профіль не застосовується.
Можливі значення enum:
"Localhost" вказує, що слід використовувати профіль, визначений у файлі на вузлі. Розташування файлу відносно <kubelet-root-dir>/seccomp.
"RuntimeDefault" представляє профіль seccomp стандартний для середовища виконання контейнера.
"Unconfined" вказує, що профіль seccomp не застосовується (так званий unconfined).
SecretEnvSource
SecretEnvSource вибирає Secret для заповнення змінних середовища.
Вміст поля Data цільового Secret буде представляти пари ключ-значення як змінні середовища.
Вкажіть, чи повинен Secret або його ключ бути визначений
SecretProjection
Перетворює секрет у проєкційний том.
Вміст поля Data цільового Secret буде представлений у проєкційному томі як файли, використовуючи ключі з поля Data як імена файлів. Зверніть увагу, що це ідентично джерелу тома секрету без режиму.
items якщо не вказано, кожна пара ключ-значення в полі Data Secretʼу, на який є посилання, буде проєцюватись в том як файл, імʼя якого є ключем, а вміст — значенням. Якщо вказано, перелічені ключі будуть спроєцьовані в зазначені шляхи, а не перелічені ключі не будуть присутні. Якщо вказано ключ, якого немає в Secret, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними і не можуть містити шлях '..' або починатися з '..'.
Вкажіть, чи повинен Secret або його ключ бути визначений
SecretVolumeSource
Перетворює секрет у том.
Вміст поля Data цільового Secret буде представлений у томі як файли, використовуючи ключі з поля Data як імена файлів. Томи секретів підтримують управління власністю та переназначення міток SELinux.
Поле
Опис
defaultMode integer
defaultMode опціональним: біти режиму, які стандартно використовуються для встановлення дозволів на створені файли. Має бути вісімкове значення від 0000 до 0777 або десяткове значення від 0 до 511. YAML приймає як вісімкові, так і десяткові значення, JSON вимагає десяткові значення для бітів режиму. Стандартно — 0644. Теки всередині шляху не впливають на це налаштування. Це може конфліктувати з іншими параметрами, які впливають на режим файлу, наприклад fsGroup, і результатом можуть бути інші встановлені біти режиму.
items Якщо не вказано, кожна пара ключ-значення в полі Data Secretʼу, на який є посилання, буде проєцюватись в том як файл, імʼя якого є ключем, а вміст — значенням. Якщо вказано, перелічені ключі будуть спроєцьовані в зазначені шляхи, а не перелічені ключі не будуть присутні. Якщо вказано ключ, якого немає в Secret, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними і не можуть містити шлях '..' або починатися з '..'.
optional boolean
Вкажіть, чи повинен Secret або його ключ бути визначений
SecurityContext містить конфігурацію безпеки, яка буде застосована до контейнера. Деякі поля присутні як у SecurityContext, так і у PodSecurityContext. Коли обидва встановлені, значення в SecurityContext мають пріоритет.
Поле
Опис
allowPrivilegeEscalation boolean
AllowPrivilegeEscalation контролює, чи може процес отримати більше привілеїв, ніж його батьківський процес. Цей булевий параметр безпосередньо контролює, чи буде встановлено прапорець no_new_privs для процесу контейнера. AllowPrivilegeEscalation завжди true, коли контейнер:
запущений як Privileged
має CAP_SYS_ADMIN
Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
appArmorProfile є параметром AppArmor, який слід використовувати для цього контейнера. Якщо встановлено, цей профіль замінює appArmorProfile пода. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Можливості для додавання/видалення під час запуску контейнерів. За звичай використовується набір можливостей, наданих середовищем виконання контейнера. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
privileged boolean
Запуск контейнера в привілейованому режимі. Процеси в привілейованих контейнерах фактично еквівалентні root на хості. Зазвичай — false. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
procMount string
procMount позначає тип монтування proc, який слід використовувати для контейнерів. Стандартне значення — Default, яке використовує налаштування середовища виконання контейнера для шляхів лише для читання та замаскованих шляхів. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Можливі значення enum:
"Default" використовує налаштування середовища виконання контейнера для шляхів лише для читання та замаскованих шляхів для /proc. Більшість середовищ виконання контейнера маскують певні шляхи в /proc, щоб уникнути випадкового розкриття спеціальних пристроїв або інформації.
"Unmasked" обходить стандартну поведінку маскування середовища виконання контейнера і забезпечує, що новостворений /proc контейнера залишається незмінним без модифікацій.
readOnlyRootFilesystem boolean
Чи має цей контейнер файлову систему root лише для читання. Стандартно — false. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
runAsGroup integer
GID для запуску точки входу процесу контейнера. Використовує стандартне значення середовища виконання, якщо не встановлено. Може також бути встановлено в PodSecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, перевага надається значенню, вказаному в SecurityContext. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
runAsNonRoot boolean
Вказує, що контейнер повинен запускатися не від імені root. Якщо true, Kubelet перевірить образ під час виконання, щоб переконатися, що він не запускається з UID 0 (root), і не вдасться запустити контейнер, якщо це так. Якщо не встановлено або false, така перевірка не проводиться. Може також бути встановлено в PodSecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, перевага надається значенню, вказаному в SecurityContext.
runAsUser integer
UID для запуску точки входу процесу контейнера. Використовує стандартне значення середовища виконання, якщо не встановлено. Може також бути встановлено в PodSecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, перевага надається значенню, вказаному в SecurityContext. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
SELinux контекст, який буде застосовано до контейнера. Якщо не вказано, середовище виконання контейнера виділить випадковий SELinux контекст для кожного контейнера. Може також бути встановлено в PodSecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, перевага надається значенню, вказаному в SecurityContext. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Параметри seccomp, які використовуються цим контейнером. Якщо параметри seccomp надаються як на рівні пода, так і на рівні контейнера, параметри контейнера переважають над параметрами пода. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є windows.
Специфічні для Windows налаштування, які застосовуються до всіх контейнерів. Якщо не вказано, будуть використані параметри з PodSecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, перевага надається значенню, вказаному в SecurityContext. Зверніть увагу, що це поле не можна встановлювати, коли spec.os.name є linux.
ServiceAccountTokenProjection
ServiceAccountTokenProjection представляє спроєцьований том токенів службового облікового запису. Цей спроєцьований том можна використовувати для вставлення токенів службового облікового запису у файлову систему подів для використання з API (Kubernetes API Server або інших).
Поле
Опис
audience string
audience є призначеною аудиторією токена. Отримувач токена повинен ідентифікувати себе за допомогою ідентифікатора, вказаного в аудиторії токена, інакше слід відхилити токен. Стандартно аудиторія встановлюється як ідентифікатор apiserver.
expirationSeconds integer
expirationSeconds є запитуваною тривалістю дії токена службового облікового запису. Коли токен наближається до закінчення терміну дії, втулок томів kubelet буде проактивно оновлювати токен службового облікового запису. Kubelet почне намагатися оновити токен, якщо токен старший за 80 відсотків свого часу життя або якщо токен старший за 24 години. Стандартне значення становить 1 годину і має бути не менше 10 хвилин.
path* string
path є шляхом відносно точки монтування файлу, куди буде вставлено токен.
SleepAction
SleepAction описує дію "sleep".
Поле
Опис
seconds* integer
Seconds є кількістю секунд для сну.
StorageOSVolumeSource
Представляє ресурс постійного тома StorageOS.
Поле
Опис
fsType string
fsType є типом файлової системи для монтування. Має бути тип файлової системи, підтримуваний операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Якщо не вказано, неявно вважається "ext4".
readOnly boolean
readOnly стандартно встановлено в false (читання/запис). ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
secretRef вказує секрет для отримання облікових даних API StorageOS. Якщо не вказано, будуть використані стандартні значення.
volumeName string
volumeName є зрозумілим для людини імʼям тома StorageOS. Імена томів унікальні лише в межах простору імен.
volumeNamespace string
volumeNamespace вказує область дії тома в межах StorageOS. Якщо простір імен не вказано, буде використано простір імен пода. Це дозволяє відобразити іменування Kubernetes у StorageOS для тіснішої інтеграції. Встановіть VolumeName на будь-яке імʼя, щоб перевизначити стандартну поведінку. Встановіть на "default", якщо ви не використовуєте простори імен у StorageOS. Простори імен, які не існують у StorageOS, будуть створені.
Sysctl
Sysctl визначає параметр ядра, який потрібно встановити
Поле
Опис
name* string
Назва властивості для встановлення
value* string
Значення властивості для встановлення
TCPSocketAction
TCPSocketAction описує дію на основі відкриття сокета
Поле
Опис
host string
Опційно: Імʼя хосту для підключення, зазвичай використовується IP пода.
port*
Номер або імʼя порту для доступу до контейнера. Номер повинен бути в діапазоні від 1 до 65535. Імʼя повинно бути IANA_SVC_NAME.
TopologySpreadConstraint
TopologySpreadConstraint визначає, як розподіляти відповідні поди серед заданої топології.
LabelSelector використовується для пошуку відповідних подів. Поди, які відповідають цьому селектору міток, враховуються для визначення кількості подів у їх відповідному топологічному домені.
matchLabelKeys string array
MatchLabelKeys є набором ключів міток подів для вибору подів, для яких буде обчислюватися розподіл. Ключі використовуються для пошуку значень у мітках вхідного пода, ці ключ-значення мітки обʼєднуються з labelSelector для вибору групи наявних подів, для яких буде обчислюватися розподіл для вхідного пода. Один і той же ключ заборонено використовувати як у MatchLabelKeys, так і в LabelSelector. MatchLabelKeys не можна встановлювати, якщо LabelSelector не встановлено. Ключі, яких немає в мітках вхідного пода, будуть ігноруватися. Null або порожній список означає, що буде враховуватися лише labelSelector. Це бета-поле і вимагає увімкнення функціональної можливості MatchLabelKeysInPodTopologySpread (стандартно увімкнено).
maxSkew* integer
MaxSkew описує ступінь нерівномірного розподілу подів. Коли whenUnsatisfiable=DoNotSchedule, це максимальна дозволена різниця між кількістю відповідних подів у цільовій топології та глобальним мінімумом. Глобальний мінімум — це мінімальна кількість відповідних подів у допустимому домені або нуль, якщо кількість допустимих доменів менша за MinDomains. Наприклад, у кластері з 3 зонами, MaxSkew встановлено на 1, а поди з однаковим labelSelector розподілені як 2/2/1: У цьому випадку глобальний мінімум дорівнює 1.
graph TD;
subgraph zone3["zone 3"]
P3_1("Pod")
end
subgraph zone2["zone 2"]
P2_1("Pod")
P2_2("Pod")
end
subgraph zone1["zone 1"]
P1_1("Pod")
P1_2("Pod")
end
classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000;
classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff;
classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5;
class P1_1,P1_2,P2_1,P2_2,P3_1 k8s;
class zone1,zone2,zone3 cluster;
якщо MaxSkew дорівнює 1, вхідний под може бути запланований лише в zone3, щоб стати 2/2/2; планування його в zone1(zone2) порушить MaxSkew(1).
якщо MaxSkew дорівнює 2, вхідний под може бути запланований у будь-яку з зон. Коли whenUnsatisfiable=ScheduleAnyway, це використовується для надання більш високого пріоритету топологіям, які його задовольняють. Це обовʼязкове поле. Стандартне значення — 1, а 0 не допускається.
minDomains integer
MinDomains вказує мінімальну кількість допустимих доменів. Коли кількість допустимих доменів з відповідними ключами топології менша за minDomains, Pod Topology Spread розглядає "глобальний мінімум" як 0, а потім виконується обчислення Skew. Коли кількість допустимих доменів з відповідними ключами топології дорівнює або перевищує minDomains, це значення не впливає на планування. В результаті, коли кількість допустимих доменів менша за minDomains, планувальник не буде планувати більше maxSkew Pod у ці домени. Якщо значення nil, обмеження поводиться так, ніби MinDomains дорівнює 1. Допустимі значення — це цілі числа більше 0. Коли значення не nil, WhenUnsatisfiable має бути DoNotSchedule. Наприклад, у кластері з 3 зонами, MaxSkew встановлено на 2, MinDomains встановлено на 5, а поди з тим самим labelSelector розподілені як 2/2/2:
graph TD;
subgraph zone3["zone 3"]
P3_1("Pod")
P3_2("Pod")
end
subgraph zone2["zone 2"]
P2_1("Pod")
P2_2("Pod")
end
subgraph zone1["zone 1"]
P1_1("Pod")
P1_2("Pod")
end
classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000;
classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff;
classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5;
class P1_1,P1_2,P2_1,P2_2,P3_1,P3_2 k8s;
class zone1,zone2,zone3 cluster;
Кількість доменів менша за 5(MinDomains), тому "глобальний мінімум" розглядається як 0. У цій ситуації новий под з тим самим labelSelector не може бути запланований, оскільки обчислений skew буде 3 (3 - 0), якщо новий Pod буде запланований у будь-яку з трьох зон, це порушить MaxSkew.
nodeAffinityPolicy string
NodeAffinityPolicy вказує, як ми будемо обробляти nodeAffinity/nodeSelector пода при обчисленні перекосу топології пода. Варіанти:
Honor: тільки вузли, що відповідають nodeAffinity/nodeSelector, включаються до розрахунків.
Ignore: nodeAffinity/nodeSelector ігноруються. Всі вузли включені до розрахунків.
Якщо це значення дорівнює nil, поведінка еквівалентна політиці Honor.
Можливі значення enum:
"Honor" означає використовувати цю директиву планування при обчисленні перекосу топології пода.
"Ignore" означає ігнорувати цю директиву планування при обчисленні перекосу топології пода.
nodeTaintsPolicy string
NodeTaintsPolicy вказує, як ми будемо обробляти node taints при обчисленні перекосу топології пода. Варіанти:
Honor: вузли без taints, а також вузли з taints, для яких вхідний под має toleration, включаються до розрахунків.
Ignore: node taints ігноруються. Всі вузли включені до розрахунків.
Якщо це значення дорівнює nil, поведінка еквівалентна політиці Ignore.
Можливі значення enum:
"Honor" означає використовувати цю директиву планування при обчисленні перекосу топології пода.
"Ignore" означає ігнорувати цю директиву планування при обчисленні перекосу топології пода.
topologyKey* string
TopologyKey є ключем міток вузлів. Вузли, які мають мітку з цим ключем і однаковими значеннями, вважаються частиною однієї топології. Ми розглядаємо кожну пару <ключ, значення> як "кошик" і намагаємося розподілити поди рівномірно між кошиками. Ми визначаємо домен як конкретний екземпляр топології. Також ми визначаємо допустимий домен як домен, вузли якого відповідають вимогам nodeAffinityPolicy і nodeTaintsPolicy. Наприклад, якщо TopologyKey дорівнює "kubernetes.io/hostname", кожен вузол є доменом цієї топології. А якщо TopologyKey дорівнює "topology.kubernetes.io/zone", кожна зона є доменом цієї топології. Це обов'язкове поле.
whenUnsatisfiable* string
WhenUnsatisfiable вказує, як діяти з подом, якщо він не задовольняє обмеження розподілу.
DoNotSchedule (стандартно) вказує планувальнику не планувати його.
ScheduleAnyway вказує планувальнику розмістити под у будь-якому місці, але надаючи вищий пріоритет топологіям, які допоможуть зменшити перекіс. Обмеження вважається "Невиконуваним" для вхідного пода лише тоді, коли кожне можливе призначення вузла для цього пода порушує "MaxSkew" на деякій топології. Наприклад, у кластері з 3 зонами, MaxSkew встановлено на 1, і поди з тим самим labelSelector розподіляються як 3/1/1:
graph TD;
subgraph zone3["zone 3"]
P3_1("Pod")
end
subgraph zone2["zone 2"]
P2_1("Pod")
end
subgraph zone1["zone 1"]
P1_1("Pod")
P1_2("Pod")
P1_3("Pod")
end
classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000;
classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff;
classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5;
class P1_1,P1_2,P1_3,P2_1,P3_1 k8s;
class zone1,zone2,zone3 cluster;
Якщо WhenUnsatisfiable встановлено на DoNotSchedule, вхідний под може бути запланований лише в zone2(zone3), щоб стати 3/2/1(3/1/2), оскільки ActualSkew(2-1) на zone2(zone3) задовольняє MaxSkew(1). Іншими словами, кластер все ще може бути незбалансованим, але планувальник не зробить його більш незбалансованим. Це обовʼязкове поле.
Можливі значення enum:
"DoNotSchedule" вказує планувальнику не планувати под, коли обмеження не задовольняються.
"ScheduleAnyway" вказує планувальнику планувати под навіть якщо обмеження не задовольняються.
Volume
Volume представляє іменований том у поді, до якого може отримати доступ будь-який контейнер у поді.
awsElasticBlockStore представляє ресурс диска AWS, який підключається до хост-машини kubelet і потім надається поду. Застаріло: AWSElasticBlockStore застаріло. Всі операції для типу вбудованого awsElasticBlockStore перенаправляються до CSI драйвера ebs.csi.aws.com. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
azureDisk представляє монтування диска Azure Data на хості та привʼязку до пода. Застаріло: AzureDisk застаріло. Всі операції для типу вбудованого azureDisk перенаправляються до CSI драйвера disk.csi.azure.com.
azureFile представляє монтування Azure File Service на хості та привʼязку до пода. Застаріло: AzureFile застаріло. Всі операції для типу вбудованого azureFile перенаправляються до CSI драйвера file.csi.azure.com.
cephFS представляє монтування Ceph FS на хості, яке спільно використовує життєвий цикл пода. Застаріло: CephFS застаріло, і тип cephfs більше не підтримується.
cinder представляє том cinder, підключений і змонтований на хості kubelet. Застаріло: Cinder застаріло. Всі операції для типу вбудованого cinder перенаправляються до CSI драйвера cinder.csi.openstack.org. Детальніше: https://examples.k8s.io/mysql-cinder-pd/README.md
ephemeral представляє том, який обробляється драйвером сховища кластера. Життєвий цикл тому повʼязаний з подом, який його визначає — він буде створений перед запуском пода і видалений після його видалення. Використовуйте це, якщо:
том потрібен лише під час роботи пода
потрібні функції звичайних томів, такі як відновлення зі знімка або відстеження ємності
драйвер сховища вказаний через клас сховища
драйвер сховища підтримує динамічне створення томів через PersistentVolumeClaim (див. EphemeralVolumeSource для отримання додаткової інформації про зв'язок між цим типом тому та PersistentVolumeClaim)
Використовуйте PersistentVolumeClaim або один із специфічних для постачальника API для томів, які зберігаються довше, ніж життєвий цикл окремого пода. Використовуйте CSI для легких локальних ефермерних томів, якщо драйвер CSI призначений для такого використання, див. документацію драйвера для отримання додаткової інформації. Под може використовувати обидва типи ефермерних і постійних томів одночасно.
flexVolume представляє загальний ресурс тому, який надається/підключається за допомогою втулка на основі exec. Застаріло: FlexVolume застаріло. Розгляньте можливість використання CSIDriver замість цього.
flocker представляє том Flocker, підключений до хост-машини kubelet. Це залежить від того, що сервіс керування Flocker працює. Застаріло: Flocker застаріло, і вбудований тип flocker більше не підтримується.
gcePersistentDisk представляє ресурс GCE Disk, який підключається до хост-машини kubelet і потім надається поду. Застаріло: GCEPersistentDisk застаріло. Всі операції для вбудованого типу gcePersistentDisk перенаправляються на драйвер CSI pd.csi.storage.gke.io. Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
gitRepo представляє репозиторій git на певній ревізії. Застаріло: GitRepo застаріло. Щоб забезпечити контейнер репозиторієм git, змонтуйте EmptyDir у InitContainer, який клонує репозиторій за допомогою git, а потім змонтуйте EmptyDir у контейнер Pod.
glusterfs представляє монтування Glusterfs на хості, яке ділить життєвий цикл пода. Застаріло: Glusterfs застаріло, і вбудований тип glusterfs більше не підтримується.
hostPath представляє попередньо наявний файл або теку на хост-машині, який безпосередньо відкривається для контейнера. Це зазвичай використовується для системних агентів або інших привілейованих речей, яким дозволено бачити хост-машину. Більшість контейнерів НЕ потребують цього. Більше інформації: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
image представляє обʼєкт OCI (контейнерний образ або артефакт), який отримується та монтується на хост-машині kubelet. Том визначається під час запуску пода залежно від значення PullPolicy:
Always: kubelet завжди намагається отримати обʼєкт за посиланням. Створення контейнера зазнає невдачі, якщо витягування не вдається.
Never: kubelet ніколи не намагається отримати обʼєкт за посиланням і використовує лише локальний образ або артефакт. Створення контейнера зазнає невдачі, якщо посилання відсутнє.
IfNotPresent: kubelet отримує обʼєкт, якщо він ще не присутній на диску. Створення контейнера зазнає невдачі, якщо посилання відсутнє і отримання не вдається.
Том повторно визначається, якщо под видаляється та створюється заново, що означає, що новий віддалений вміст стане доступним при повторному створенні пода. Невдача при визначенні або отриманні образу під час запуску пода заблокує запуск контейнерів і може додати значну затримку. Невдачі будуть повторюватися з використанням звичайної затримки для томів і про це буде повідомлено у причинах та повідомленнях пода. Типи об'єктів, які можуть бути змонтовані цим томом, визначаються реалізацією середовища виконання контейнера на хост-машині і, як мінімум, повинні включати всі дійсні типи, підтримувані полем контейнерного образу. Обʼєкт OCI монтується в одній теці (spec.containers[*].volumeMounts.mountPath) шляхом обʼєднання шарів маніфесту так само, як для контейнерних образів. Том буде змонтований лише для читання (ro). Субшляхи для контейнерів не підтримуються (spec.containers[*].volumeMounts.subpath) до версії 1.33. Поле spec.securityContext.fsGroupChangePolicy не впливає на цей тип тому.
photonPersistentDisk представляє постійний диск PhotonController, підключений і змонтований на хості kubelet. Застаріло: PhotonPersistentDisk застарів, і тип photonPersistentDisk більше не підтримується.
portworxVolume представляє том Portworx, підключений і змонтований на хості kubelet. Застаріло: PortworxVolume застарів. Всі операції для типу portworxVolume в дереві перенаправляються на драйвер CSI pxd.portworx.com.
quobyte представляє монтування Quobyte на хості, яке використовує життєвий цикл пода. Застаріло: Quobyte застарів, і тип quobyte більше не підтримується.
rbd представляє монтування Rados Block Device на хості, яке використовує життєвий цикл пода. Застаріло: RBD застарів, і тип rbd більше не підтримується.
scaleIO представляє постійний том ScaleIO, підключений і змонтований на вузлах Kubernetes. Застаріло: ScaleIO застарів, і тип scaleIO більше не підтримується.
storageOS представляє том StorageOS, підключений і змонтований на вузлах Kubernetes. Застаріло: StorageOS застарів, і тип storageos більше не підтримується.
vsphereVolume представляє том vSphere, підключений і змонтований на хості kubelet. Застаріло: VsphereVolume застарів. Всі операції для типу vsphereVolume в дереві перенаправляються на драйвер CSI csi.vsphere.vmware.com.
VolumeDevice
volumeDevice описує зіставлення сирого блочного пристрою всередині контейнера.
Поле
Опис
devicePath* string
devicePath є шляхом всередині контейнера, до якого буде змонтовано пристрій.
name* string
name повинен відповідати імені persistentVolumeClaim у поді
VolumeMount
VolumeMount описує монтування тому всередині контейнера.
Поле
Опис
mountPath* string
Шлях всередині контейнера, до якого буде змонтовано том. Не повинен містити ':'.
mountPropagation string
mountPropagation визначає, як монтування поширюються від хоста до контейнера і навпаки. Якщо не встановлено, використовується MountPropagationNone. Це поле є бета-версією в 1.10. Коли RecursiveReadOnly встановлено на IfPossible або Enabled, MountPropagation повинен бути None або невизначеним (що зазвичай дорівнює None).
Можливі значення enum:
"Bidirectional" означає, що том у контейнері буде отримувати нові монтування від хоста або інших контейнерів, а його власні монтування будуть поширюватися від контейнера до хоста або інших контейнерів. Зверніть увагу, що цей режим рекурсивно застосовується до всіх монтувань у томі ("rshared" у термінології Linux).
"HostToContainer" означає, що том у контейнері буде отримувати нові монтування від хоста або інших контейнерів, але файлові системи, змонтовані всередині контейнера, не будуть поширюватися на хост або інші контейнери. Зверніть увагу, що цей режим рекурсивно застосовується до всіх монтувань у томі ("rslave" у термінології Linux).
"None" означає, що том у контейнері не буде отримувати нові монтування від хоста або інших контейнерів, і файлові системи, змонтовані всередині контейнера, не будуть поширюватися на хост або інші контейнери. Зверніть увагу, що цей режим відповідає "private" у термінології Linux.
name* string
Поле має збігатись з Name у Volume.
readOnly boolean
Монтується тільки для читання, якщо true, для читання та запису в іншому випадку (false або не вказано). Зазвичай — false.
recursiveReadOnly string
RecursiveReadOnly визначає, чи повинні монтування тільки для читання оброблятися рекурсивно. Якщо ReadOnly встановлено у false, це поле не має значення і повинно бути невказаним. Якщо ReadOnly встановлено в true, і це поле встановлено в Disabled, монтування не робиться рекурсивно тільки для читання. Якщо це поле встановлено в IfPossible, монтування робиться рекурсивно тільки для читання, якщо це підтримується середовищем виконання контейнера. Якщо це поле встановлено в Enabled, монтування робиться рекурсивно тільки для читання, якщо це підтримується середовищем виконання контейнера, інакше под не буде запущено, і буде згенеровано помилку для вказання причини. Якщо це поле встановлено в IfPossible або Enabled, MountPropagation повинно бути встановлено в None (або бути невказаним, що зазвичай дорівнює None). Якщо це поле не вказано, воно розглядається як еквівалент Disabled.
subPath string
Шлях всередині тому, з якого повинен бути змонтований том контейнера. Зазвичай — "" (корінь тому).
subPathExpr string
Розширений шлях всередині тому, з якого повинен бути змонтований том контейнера. Поводиться аналогічно до SubPath, але посилання на змінні середовища $(VAR_NAME) розширюються за допомогою середовища контейнера. Зазвичай — "" (корінь тому). SubPathExpr і SubPath взаємовиключні.
VolumeProjection
Проєкція яка може бути спроєцьована разом з іншими підтримуваними типами томів. Повинно бути встановлено тільки одне з цих полів.
ClusterTrustBundle дозволяє поду отримувати доступ до поля .spec.trustBundle обʼєктів ClusterTrustBundle у файлі з автоматичним оновленням. Альфа, керується функціональною можливістю ClusterTrustBundleProjection. Обʼєкти ClusterTrustBundle можна вибирати за назвою або за комбінацією імені підписувача та селектора міток. Kubelet виконує агресивну нормалізацію вмісту PEM, записаного в файлову систему пода. Езотеричні функції PEM, такі як коментарі між блоками та заголовки блоків, видаляються. Сертифікати дедуплікуються. Порядок сертифікатів у файлі довільний, і Kubelet може змінювати порядок з часом.
Проєкція автоматично оновлюваного набору облікових даних (приватний ключ і ланцюжок сертифікатів), який под може використовувати як TLS-клієнт або сервер. Kubelet генерує приватний ключ і використовує його для надсилання PodCertificateRequest до вказаного підписувача. Після того як підписувач схвалить запит і видасть ланцюжок сертифікатів, Kubelet записує ключ і ланцюжок сертифікатів у файлову систему пода. Под не запускається, поки сертифікати не будуть видані для кожного джерела тома podCertificate у його специфікації. Kubelet почне намагатися оновити сертифікат у час, вказаний підписувачем, використовуючи PodCertificateRequest.Status.BeginRefreshAt timestamp. Kubelet може записати один файл, вказаний у полі credentialBundlePath, або окремі файли, вказані у полях keyPath і certificateChainPath. Набір облікових даних є одним файлом у форматі PEM. Перший запис PEM є приватним ключем (у форматі PKCS#8), а решта записів PEM є ланцюжком сертифікатів, виданих підписувачем (зазвичай підписувачі повертають свій ланцюжок сертифікатів у порядку від листа до кореня). Рекомендується використовувати формат набору облікових даних, оскільки код вашого застосунку може читати його атомарно. Якщо ви використовуєте keyPath і certificateChainPath, ваш застосунок повинен виконати два окремі читання файлів. Якщо це збігається з оновленням сертифіката, можливо, що приватний ключ і сертифікат листа, які ви читаєте, можуть не відповідати один одному. Вашому застосунку потрібно перевірити цю умову і перечитати, поки вони не будуть узгоджені. Вказаний підписувач контролює формат сертифіката, який він видає; зверніться до документації реалізації підписувача, щоб дізнатися, як використовувати видані сертифікати.
Обовʼязково. Термін спорідненості пода, повʼязаний з відповідною вагою.
weight* integer
Вага, повʼязана з відповідним терміном спорідненості пода, у діапазоні від 1 до 100.
WindowsSecurityContextOptions
WindowsSecurityContextOptions містить параметри та облікові дані, специфічні для Windows.
Поле
Опис
gmsaCredentialSpec string
GMSACredentialSpec — це місце, де вебхук допуску GMSA (https://github.com/kubernetes-sigs/windows-gmsa) вставляє вміст специфікації облікових даних GMSA, визначеної полем GMSACredentialSpecName.
gmsaCredentialSpecName string
GMSACredentialSpecName — це назва специфікації облікових даних GMSA, яку слід використовувати.
hostProcess boolean
HostProcess визначає, чи слід запускати контейнер як 'Host Process' контейнер. Усі контейнери Pod повинні мати однакове ефективне значення HostProcess (не дозволяється мати суміш HostProcess контейнерів і не-HostProcess контейнерів). Крім того, якщо HostProcess встановлено в true, то HostNetwork також повинен бути встановлений в true.
runAsUserName string
Імʼя користувача в Windows для запуску точки входу процесу контейнера. Зазвичай використовується користувач, вказаний у метаданих образу, якщо не вказано інше. Може також бути встановлено в PodSecurityContext. Якщо встановлено як у SecurityContext, так і в PodSecurityContext, перевага надається значенню, вказаному в SecurityContext.
Операції
post Create
HTTP Запит
POST /api/v1/namespaces/{namespace}/pods
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
POST /api/v1/namespaces/{namespace}/pods/{name}/eviction
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Eviction
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/pods/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /api/v1/namespaces/{namespace}/pods/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /api/v1/namespaces/{namespace}/pods/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
GET /api/v1/namespaces/{namespace}/pods/{name}/resize
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/pods/{name}/resize
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
Path є URL-адресою, яку слід використовувати для поточного проксі-запиту до пода.
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Get Connect Portforward
HTTP Запит
GET /api/v1/namespaces/{namespace}/pods/{name}/portforward
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodPortForwardOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
ports
integer
Список портів для переадресації. Необхідний при використанні WebSockets
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Get Connect Proxy
HTTP Запит
GET /api/v1/namespaces/{namespace}/pods/{name}/proxy
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
path
string
Path є URL-адресою, яку слід використовувати для поточного проксі-запиту до пода.
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Get Connect Proxy Path
HTTP Запит
GET /api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
Path є URL-адресою, яку слід використовувати для поточного проксі-запиту до пода.
Відповідь
Статус
Опис
Відповідь
200
OK
string
head Head Connect Proxy
HTTP Запит
HEAD /api/v1/namespaces/{namespace}/pods/{name}/proxy
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
path
string
Path є URL-адресою, яку слід використовувати для поточного проксі-запиту до пода.
Відповідь
Статус
Опис
Відповідь
200
OK
string
head Head Connect Proxy Path
HTTP Запит
HEAD /api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
Path є URL-адресою, яку слід використовувати для поточного проксі-запиту до пода.
Відповідь
Статус
Опис
Відповідь
200
OK
string
put Replace Connect Proxy
HTTP Запит
PUT /api/v1/namespaces/{namespace}/pods/{name}/proxy
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
path
string
Path є URL-адресою, яку слід використовувати для поточного проксі-запиту до пода.
Відповідь
Статус
Опис
Відповідь
200
OK
string
put Replace Connect Proxy Path
HTTP Запит
PUT /api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
Path є URL-адресою, яку слід використовувати для поточного проксі-запиту до пода.
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Read Log
HTTP Запит
GET /api/v1/namespaces/{namespace}/pods/{name}/log
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя Podʼа
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
container
string
Контейнер, для якого потрібно передавати журнали. Зазвичай використовується лише один контейнер, якщо в поді є лише один контейнер.
follow
boolean
Слідкувати за потоком журналів пода. Стандартно — false.
insecureSkipTLSVerifyBackend
boolean
insecureSkipTLSVerifyBackend вказує, що apiserver не повинен підтверджувати дійсність сертифіката обслуговуючого сервера бекенду, до якого він підключається. Це зробить HTTPS-зʼєднання між apiserver і бекендом небезпечним. Це означає, що apiserver не може перевірити, чи дані журналу, які він отримує, походять від реального kubelet. Якщо kubelet налаштований на перевірку облікових даних TLS apiserver, це не означає, що зʼєднання з реальним kubelet вразливе до атаки "людина посередині" (наприклад, зловмисник не зможе перехопити фактичні дані журналу, що надходять від реального kubelet).
limitBytes
integer
Якщо встановлено, кількість байтів для читання з сервера перед завершенням виводу журналу. Це може не відобразити повну останню лінію журналу і може повернути трохи більше або трохи менше, ніж вказаний ліміт.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
previous
boolean
Повернути журнали попередньо завершеного контейнера. Стандартно — false.
sinceSeconds
integer
Відносний час у секундах до поточного часу, з якого потрібно показувати журнали. Якщо це значення передує часу запуску пода, будуть повернуті лише журнали з моменту запуску пода. Якщо це значення знаходиться в майбутньому, журнали не будуть повернуті. Можна вказати лише один з параметрів sinceSeconds або sinceTime.
stream
string
Вкажіть, який потік журналів контейнера потрібно повернути клієнту. Допустимі значення: "All", "Stdout" та "Stderr". Якщо не вказано, використовується "All", і обидва потоки stdout та stderr повертаються змішаними. Зверніть увагу, що коли вказано "TailLines", "Stream" може бути встановлено лише в nil або "All".
tailLines
integer
Якщо встановлено, кількість рядків з кінця журналів для відображення. Якщо не вказано, журнали відображаються з моменту створення контейнера або з параметрів sinceSeconds або sinceTime. Зверніть увагу, що коли вказано "TailLines", "Stream" може бути встановлено лише в nil або "All".
timestamps
boolean
Якщо true, додає мітку часу у форматі RFC3339 або RFC3339Nano на початку кожного рядка виводу журналу. Стандартно — false.
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Get Connect Exec
HTTP Запит
GET /api/v1/namespaces/{namespace}/pods/{name}/exec
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodExecOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
command
string
Command є віддаленою командою, яку потрібно виконати. Масив argv. Не виконується в оболонці.
container
string
Контейнер, у якому буде виконано команду. Стандартно використовується лише один контейнер, якщо в поді є лише один контейнер.
stderr
boolean
Переспрямовує стандартний потік помилок пода для цього виклику.
stdin
boolean
Переспрямовує стандартний потік введення пода для цього виклику. Стандартно — false.
stdout
boolean
Переспрямовує стандартний потік виводу пода для цього виклику. Стандартно — false.
tty
boolean
TTY якщо true вказує, що для виклику exec буде виділено tty. Стандартно — false.
Відповідь
Статус
Опис
Відповідь
200
OK
string
post Create Connect Exec
HTTP Запит
POST /api/v1/namespaces/{namespace}/pods/{name}/exec
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodExecOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
command
string
Command є віддаленою командою, яку потрібно виконати. Масив argv. Не виконується в оболонці.
container
string
Контейнер, у якому буде виконано команду. Стандартно використовується лише один контейнер, якщо в поді є лише один контейнер.
stderr
boolean
Переспрямовує стандартний потік помилок пода для цього виклику.
stdin
boolean
Переспрямовує стандартний потік введення пода для цього виклику. Стандартно — false.
stdout
boolean
Переспрямовує стандартний потік виводу пода для цього виклику. Стандартно — false.
tty
boolean
TTY якщо true вказує, що для виклику exec буде виділено tty. Стандартно — false.
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Get Connect Attach
HTTP Запит
GET /api/v1/namespaces/{namespace}/pods/{name}/attach
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodAttachOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
container
string
The Контейнер, у якому буде виконано команду. Стандартно використовується лише один контейнер, якщо в поді є лише один контейнер.
stderr
boolean
Якщо Stderr має значення true, це означає, що стандартний вивід помилок (stderr) має бути перенаправлений під час виклику attach. Стандартне значення — true.
stdin
boolean
Якщо Stdin має значення true, для цього виклику виконується перенаправлення потоку стандартного вводу пода. Стандартне значення — false.
stdout
boolean
Якщо Stdout має значення true, це означає, що stdout має бути перенаправлено для виклику attach. Стандартне значення — true.
tty
boolean
Параметр TTY, якщо має значення true, вказує, що для виклику attach буде виділено термінал TTY. Цей параметр передається через середовище виконання контейнера, тому термінал TTY виділяється на робочому вузлі саме цим середовищем. Стандартне значення — false.
Відповідь
Статус
Опис
Відповідь
200
OK
string
post Create Connect Attach
HTTP Запит
POST /api/v1/namespaces/{namespace}/pods/{name}/attach
Параметри шляху
Назва
Тип
Опис
name
string
Імʼя PodAttachOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
container
string
The Контейнер, у якому буде виконано команду. Стандартно використовується лише один контейнер, якщо в поді є лише один контейнер.
stderr
boolean
Якщо Stderr має значення true, це означає, що стандартний вивід помилок (stderr) має бути перенаправлений під час виклику attach. Стандартне значення — true.
stdin
boolean
Якщо Stdin має значення true, для цього виклику виконується перенаправлення потоку стандартного вводу пода. Стандартне значення — false.
stdout
boolean
Якщо Stdout має значення true, це означає, що stdout має бути перенаправлено для виклику attach. Стандартне значення — true.
tty
boolean
Параметр TTY, якщо має значення true, вказує, що для виклику attach буде виділено термінал TTY. Цей параметр передається через середовище виконання контейнера, тому термінал TTY виділяється на робочому вузлі саме цим середовищем. Стандартне значення — false.
Відповідь
Статус
Опис
Відповідь
200
OK
string
5.12.11 - PodTemplate
PodTemplate описує шаблон для створення копій попередньо визначеного пода.
apiVersion: v1
import "k8s.io/api/core/v1"
PodTemplate
PodTemplate описує шаблон для створення копій попередньо визначеного пода.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/podtemplates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodTemplate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/podtemplates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodTemplate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/podtemplates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodTemplate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/podtemplates
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
ReplicationControllerSpec визначає специфікацію контролера реплікації.
Поле
Опис
minReadySeconds integer
Мінімальна кількість секунд, протягом яких новостворений под повинен бути готовим без аварійного завершення будь-якого з його контейнерів, щоб вважатися доступним. Зазвичай 0 (pod вважається доступним, як тільки він готовий)
Selector є запитом міток подів, які повинні відповідати кількості реплік. Якщо Selector порожній, він зазвичай встановлюється на мітки, присутні в шаблоні Podʼа. Ключі та значення міток, які повинні збігатись, щоб контролюватися цим контролером реплікації, якщо порожні, зазвичай встановлюються на мітки шаблону Podʼа. Детальніше: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
Останній раз, коли стан змінився з одного на інший.
message string
Зрозуміле для людини повідомлення, що вказує деталі переходу.
reason string
Причина останнього переходу стану.
status* string
Статус стану, одне з True, False, Unknown.
type* string
Тип стану контролера реплікації.
Операції
post Create
HTTP Запит
POST /api/v1/namespaces/{namespace}/replicationcontrollers
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/replicationcontrollers/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicationController
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/replicationcontrollers/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicationController
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /api/v1/namespaces/{namespace}/replicationcontrollers
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicationController
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/replicationcontrollers
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicationController
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ReplicationController
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
GET /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
Назва Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale
Параметри шляху
Назва
Тип
Опис
name
string
Назва Scale
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
scopeSelector також є колекцією фільтрів, подібних до scopes, які повинні відповідати кожному обʼєкту, відстежуваному квотою, але виражені за допомогою ScopeSelectorOperator у поєднанні з можливими значеннями. Щоб ресурс відповідав, обидва scopes І scopeSelector (якщо вказано в spec) повинні відповідати.
scopes string array
Колекція фільтрів, які повинні відповідати кожному обʼєкту, відстежуваному квотою. Якщо не вказано, квота відповідає всім обʼєктам.
ResourceQuotaStatus
ResourceQuotaStatus визначає фактичні застосовані жорсткі обмеження та спостережуване використання.
Список вимог селектора області дії за областю ресурсів.
ScopedResourceSelectorRequirement
Вимога селектора ресурсів з областю дії є селектором, який містить значення, імʼя області дії та оператор, що повʼязує імʼя області дії та значення.
Поле
Опис
operator* string
Представляє відношення області дії до набору значень. Дійсні оператори: In, NotIn, Exists, DoesNotExist.
Можливі значення enum:
"DoesNotExist"
"Exists"
"In"
"NotIn"
scopeName* string
Імʼя області дії, до якої застосовується селектор.
Можливі значення enum:
"BestEffort" Всі обʼєкти pod, які мають якість обслуговування best effort
"CrossNamespacePodAffinity" Всі обʼєкти pod, які мають згадку про крос-просторову (анти)спорідненість подів.
"NotBestEffort" Всі обʼєкти pod, які не мають якості обслуговування best effort
"NotTerminating" Всі обʼєкти pod, де spec.activeDeadlineSeconds дорівнює nil
"PriorityClass" Всі обʼєкти pod, які мають згадку про клас пріоритету
"Terminating" Всі обʼєкти pod, де spec.activeDeadlineSeconds >=0
"VolumeAttributesClass" Всі обʼєкти pvc, які мають згадку про клас атрибутів томів
values string array
Масив рядків. Якщо оператор In або NotIn, масив values повинен бути непорожнім. Якщо оператор Exists або DoesNotExist, масив values повинен бути порожнім. Цей масив замінюється під час стратегічного злиття патчу.
Операції
post Create
HTTP Запит
POST /api/v1/namespaces/{namespace}/resourcequotas
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/resourcequotas/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceQuota
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/resourcequotas/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceQuota
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/resourcequotas/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceQuota
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/resourcequotas
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /api/v1/namespaces/{namespace}/resourcequotas/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceQuota
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /api/v1/namespaces/{namespace}/resourcequotas/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceQuota
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Data містить секретні дані. Кожен ключ повинен складатися з буквено-цифрових символів, '-', '_' або '.'. Серіалізована форма секретних даних є рядком, закодованим у base64, що представляє довільне (можливо, не рядкове) значення даних. Описано в https://tools.ietf.org/html/rfc4648#section-4
immutable boolean
Immutable, якщо встановлено в true, гарантує, що дані, збережені в Secret, не можуть бути оновлені (можна змінювати лише метадані обʼєкта). Якщо не встановлено в true, поле можна змінювати в будь-який час. Стандартно — nil.
stringData дозволяє вказувати не бінарні секретні дані у вигляді рядка. Це поле надається як поле для запису лише для зручності. Усі ключі та значення обʼєднуються в поле data під час запису, перезаписуючи будь-які наявні значення. Поле stringData ніколи не виводиться при читанні з API.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/secrets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Secret
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Service є іменованою абстракцією програмного сервісу (наприклад, mysql), що складається з локального порту (наприклад, 3306), на якому прослуховує проксі, та селектора, який визначає, які поди відповідатимуть на запити, надіслані через проксі.
apiVersion: v1
import "k8s.io/api/core/v1"
Service
Service є іменованою абстракцією програмного сервісу (наприклад, mysql), що складається з локального порту (наприклад, 3306), на якому прослуховує проксі, та селектора, який визначає, які поди відповідатимуть на запити, надіслані через проксі.
ServiceSpec описує атрибути, які користувач створює для сервісу.
Поле
Опис
allocateLoadBalancerNodePorts boolean
allocateLoadBalancerNodePorts визначає, чи будуть NodePorts автоматично виділені для сервісів типу LoadBalancer. Зазвичай — "true". Може бути встановлено на "false", якщо кластерний балансувальник навантаження не покладається на NodePorts. Якщо викликач запитує конкретні NodePorts (вказавши значення), ці запити будуть враховані, незалежно від цього поля. Це поле може бути встановлено лише для сервісів типу LoadBalancer і буде очищено, якщо тип буде змінено на будь-який інший тип.
clusterIP string
clusterIP — це IP-адреса сервісу, яка зазвичай призначається випадковим чином. Якщо адреса вказана вручну, знаходиться в діапазоні (згідно з конфігурацією системи) і не використовується, вона буде призначена сервісу; в іншому випадку створення сервісу завершиться невдачею. Це поле не може бути змінене через оновлення, якщо поле type також не змінюється на ExternalName (що вимагає, щоб це поле було порожнім) або якщо поле type змінюється з ExternalName (у цьому випадку це поле може бути вказане за бажанням, як описано вище). Дійсні значення: "None", порожній рядок (""), або дійсна IP-адреса. Встановлення цього значення на "None" створює "headless service" (без віртуальної IP), що корисно, коли перевага надається прямим підключенням до точок доступу і проксіювання не потрібне. Застосовується лише до типів ClusterIP, NodePort і LoadBalancer. Якщо це поле вказано при створенні сервісу типу ExternalName, створення завершиться невдачею. Це поле буде очищене при оновленні сервісу до типу ExternalName. Детальніше: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
clusterIPs string array
ClusterIPs — це список IP-адрес, призначених цьому сервісу, які зазвичай призначаються випадковим чином. Якщо адреса вказана вручну, знаходиться в діапазоні (згідно з конфігурацією системи) і не використовується, вона буде призначена сервісу; в іншому випадку створення сервісу завершиться невдачею. Це поле не може бути змінене через оновлення, якщо поле type також не змінюється на ExternalName (що вимагає, щоб це поле було порожнім) або якщо поле type змінюється з ExternalName (у цьому випадку це поле може бути вказане за бажанням, як описано вище). Дійсні значення: "None", порожній рядок (""), або дійсна IP-адреса. Встановлення цього значення на "None" створює "headless service" (без віртуальної IP), що корисно, коли перевага надається прямим підключенням до точок доступу і проксіювання не потрібне. Застосовується лише до типів ClusterIP, NodePort і LoadBalancer. Якщо це поле вказано при створенні сервісу типу ExternalName, створення завершиться невдачею. Це поле буде очищене при оновленні сервісу до типу ExternalName. Якщо це поле не вказано, воно буде ініціалізоване з поля clusterIP. Якщо це поле вказано, клієнти повинні забезпечити, щоб clusterIPs[0] і clusterIP мали однакове значення. Це поле може містити максимум два записи (двосторонні IP-адреси, у будь-якому порядку). Ці IP-адреси повинні відповідати значенням поля ipFamilies. І clusterIPs, і ipFamilies керуються полем ipFamilyPolicy. Детальніше: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
externalIPs string array
externalIPs — це список IP-адрес, для яких вузли в кластері також прийматимуть трафік для цього сервісу. Ці IP-адреси не керуються Kubernetes. Користувач несе відповідальність за забезпечення надходження трафіку на вузол з цим IP. Поширеним прикладом є зовнішні балансувальники навантаження, які не є частиною системи Kubernetes.
externalName string
externalName — це зовнішнє посилання, яке механізми виявлення повернуть як псевдонім для цього сервісу (наприклад, запис DNS CNAME). Проксіювання не буде задіяне. Має бути імʼям хосту у нижньому регістрі відповідно до RFC-1123 (https://tools.ietf.org/html/rfc1123) і вимагає, щоб type був "ExternalName".
externalTrafficPolicy string
externalTrafficPolicy описує, як вузли розподіляють трафік сервісу, який вони отримують на одну з "зовнішньо орієнтованих" адрес сервісу (NodePorts, ExternalIPs та LoadBalancer IPs). Якщо встановлено значення "Local", проксі налаштує сервіс таким чином, що зовнішні балансувальники навантаження будуть відповідальні за балансування трафіку між вузлами, і кожен вузол буде доставляти трафік лише до локальних точок доступу сервісу на цьому вузлі, без маскування IP-адреси джерела клієнта. (Трафік, помилково надісланий на вузол без точок доступу, буде відкинутий.) Стандартне значення, "Cluster", використовує стандартну поведінку маршрутизації до всіх точок доступу рівномірно (можливо, з урахуванням топології та інших функцій). Зверніть увагу, що трафік, надісланий на зовнішню IP-адресу або IP-адресу LoadBalancer зсередини кластера, завжди отримуватиме семантику "Cluster", але клієнти, що надсилають трафік на NodePort зсередини кластера, можуть потребувати врахування політики трафіку при виборі вузла.
Можливі значення enum:
"Cluster" маршрутизує трафік до всіх точок доступу.
"Local" зберігає IP-адресу джерела трафіку, маршрутизуючи лише до точок доступу на тому ж вузлі, на якому був отриманий трафік (відкидаючи трафік, якщо немає локальних точок доступу).
healthCheckNodePort integer
healthCheckNodePort визначає порт перевірки стану вузла для сервісу. Це застосовується лише тоді, коли тип встановлено на LoadBalancer, а externalTrafficPolicy встановлено на Local. Якщо значення вказано, воно знаходиться в допустимому діапазоні та не використовується, воно буде використано. Якщо не вказано, значення буде автоматично призначено. Зовнішні системи (наприклад, балансувальники навантаження) можуть використовувати цей порт для визначення, чи має даний вузол точки доступу для цього сервісу. Якщо це поле вказано при створенні сервісу, який його не потребує, створення завершиться помилкою. Це поле буде очищено при оновленні сервісу, щоб воно більше не було потрібне (наприклад, при зміні типу). Це поле не можна оновити після встановлення.
internalTrafficPolicy string
internalTrafficPolicy описує, як вузли розподіляють трафік сервісу, який вони отримують на ClusterIP. Якщо встановлено значення "Local", проксі припускає, що поди хочуть спілкуватися лише з кінцевими точками сервісу на тому ж вузлі, що й под, відкидаючи трафік, якщо немає локальних точок доступу. Стандартне значення, "Cluster", використовує стандартну поведінку маршрутизації до всіх точок доступу рівномірно (можливо, з урахуванням топології та інших функцій).
Можливі значення enum:
"Cluster" маршрутизує трафік до всіх точок доступу.
"Local" маршрутизує трафік лише до точок доступу на тому ж вузлі, що й клієнтський под (відкидаючи трафік, якщо немає локальних точок доступу).
ipFamilies string array
IPFamilies є списком IP-сімейств (наприклад, IPv4, IPv6), призначених цьому сервісу. Це поле зазвичай призначається автоматично на основі конфігурації кластера та поля ipFamilyPolicy. Якщо це поле вказано вручну, запитане сімейство доступне в кластері, і ipFamilyPolicy дозволяє його використання, воно буде використано; в іншому випадку створення сервісу завершиться помилкою. Це поле умовно змінюване: воно дозволяє додавати або видаляти вторинне IP-сімейство, але не дозволяє змінювати основне IP-сімейство сервісу. Дійсні значення: "IPv4" та "IPv6". Це поле застосовується лише до сервісів типів ClusterIP, NodePort та LoadBalancer, і не застосовується до "headless" сервісів. Це поле буде очищено при оновленні сервісу до типу ExternalName. Це поле може містити максимум два записи (двосторонні сімейства, у будь-якому порядку). Ці сімейства повинні відповідати значенням поля clusterIPs, якщо воно вказане. І clusterIPs, і ipFamilies керуються полем ipFamilyPolicy.
ipFamilyPolicy string
IPFamilyPolicy відображає підтримку подвійного стека, яка запитується або вимагається цим Service. Якщо значення не надано, це поле буде встановлено на SingleStack. Сервіси можуть бути "SingleStack" (одне IP-сімейство), "PreferDualStack" (два IP-сімейства на кластерах з підтримкою подвійного стека або одне IP-сімейство на кластерах з одним стеком), або "RequireDualStack" (два IP-сімейства на кластерах з підтримкою подвійного стека, в іншому випадку помилка). Поля ipFamilies та clusterIPs залежать від значення цього поля. Це поле буде очищено при оновленні сервісу до типу ExternalName.
Можливі значення enum:
"PreferDualStack" вказує, що цей сервіс віддає перевагу подвійному стеку, коли кластер налаштований для його використання. Якщо кластер не налаштований для використання подвійного стека, сервісу буде призначено одне IP-сімейство. Якщо IP-сімейство не встановлено в service.spec.ipFamilies, сервісу буде призначено стандартне IP-сімейство, налаштоване в кластері
"RequireDualStack" вказує, що цей сервіс вимагає подвійного стека. Використання IPFamilyPolicyRequireDualStack на кластері з одним стеком призведе до помилок перевірки. IP-сімейства (і їх порядок), призначені цьому сервісу, базуються на service.spec.ipFamilies. Якщо service.spec.ipFamilies не було надано, вони будуть призначені відповідно до налаштувань кластера. Якщо service.spec.ipFamilies містить лише один запис, альтернативне IP-сімейство буде додано apiserver
"SingleStack" вказує, що цей сервіс повинен мати одне IP-сімейство. Призначене IP-сімейство базується на стандартному IP-сімействі, використовуваному кластером, або як визначено в полі service.spec.ipFamilies
loadBalancerClass string
loadBalancerClass є класом реалізації балансувальника навантаження, до якого належить цей Service. Якщо вказано, значення цього поля повинно бути ідентифікатором у стилі мітки, з необовʼязковим префіксом, наприклад "internal-vip" або "example.com/internal-vip". Імена без префікса зарезервовані для кінцевих користувачів. Це поле можна встановити лише тоді, коли тип Service — 'LoadBalancer'. Якщо не встановлено, використовується стандартна реалізація балансувальника навантаження, сьогодні це зазвичай робиться через інтеграцію з постачальником хмари, але має застосовуватися для будь-якої стандартної реалізації. Якщо встановлено, вважається, що реалізація балансувальника навантаження стежить за Services з відповідним класом. Будь-яка стандартна реалізація балансувальника навантаження (наприклад, постачальники хмари) повинна ігнорувати Services, які встановлюють це поле. Це поле можна встановити лише при створенні або оновленні Service до типу 'LoadBalancer'. Після встановлення його не можна змінити. Це поле буде очищено, коли сервіс оновлюється до типу, відмінного від 'LoadBalancer'.
loadBalancerIP string
Застосовується лише до типу Service: LoadBalancer. Ця функція залежить від того, чи підтримує відповідний постачальник хмари вказівку loadBalancerIP під час створення балансувальника навантаження. Це поле буде ігноруватися, якщо постачальник хмари не підтримує цю функцію. Застаріле: це поле було недостатньо визначене, і його значення варіюється в різних реалізаціях. Використання його є неперееносним і може не підтримувати подвійний стек. Користувачам рекомендується використовувати специфічні для реалізації анотації, коли вони доступні.
publishNotReadyAddresses вказує, що будь-який агент, який працює з точками доступу цього сервісу, повинен ігнорувати будь-які вказівки про готовність/неготовність. Основне використання цього поля — для Headless Service StatefulSet для поширення SRV DNS записів для його Podʼів для цілей виявлення пірів. Контролери Kubernetes, які генерують ресурси Endpoints та EndpointSlice для сервісів, інтерпретують це як те, що всі точки доступу вважаються "готовими", навіть якщо самі Pod не готові. Агенти, які використовують лише точки доступу, згенеровані Kubernetes через ресурси Endpoints або EndpointSlice, можуть безпечно припустити цю поведінку.
selector object
Маршрутизує трафік сервісу до Podʼів з ключами та значеннями міток, що відповідають цьому селектору. Якщо порожній або відсутній, вважається, що сервіс має зовнішній процес, який керує його точками доступу, і Kubernetes не буде його змінювати. Застосовується лише до типів ClusterIP, NodePort та LoadBalancer. Ігнорується, якщо тип ExternalName. Більше інформації: https://kubernetes.io/docs/concepts/services-networking/service/
sessionAffinityConfig містить конфігурації спорідненості сесії.
trafficDistribution string
TrafficDistribution пропонує спосіб виразити переваги щодо того, як трафік розподіляється до точок доступу сервісу. Реалізації можуть використовувати це поле як підказку, але не зобовʼязані гарантувати суворе дотримання. Якщо поле не встановлено, реалізація застосує свою стандартну стратегію маршрутизації. Якщо встановлено значення "PreferClose", реалізації повинні надавати пріоритет точкам доступу, які знаходяться в тій же зоні.
type string
type визначає, як сервіс буде доступний. Стандартно — ClusterIP. Доступні варіанти: ExternalName, ClusterIP, NodePort та LoadBalancer. "ClusterIP" виділяє внутрішню IP-адресу кластера для балансування навантаження на точки доступу. Точки доступу визначаються селектором або, якщо він не вказаний, шляхом ручного створення обʼєкта Endpoints або обʼєктів EndpointSlice. Якщо clusterIP встановлено на "None", віртуальна IP-адреса не виділяється, і точки доступу експонуються як набір точок доступу, а не як віртуальна IP-адреса. "NodePort" будується на основі ClusterIP і виділяє порт на кожному вузлі, який маршрутизує до тих самих точок доступу, що й clusterIP. "LoadBalancer" будується на основі NodePort і створює зовнішній балансувальник навантаження (якщо підтримується в поточному хмарному середовищі), який маршрутизує до тих самих точок доступу, що й clusterIP. "ExternalName" створює псевдонім цього сервісу для вказаного externalName. Декілька інших полів не застосовуються до сервісів ExternalName. Більше інформації: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
Можливі значення enum:
"ClusterIP" означає, що сервіс буде доступний лише всередині кластера через IP кластера.
"ExternalName" означає, що сервіс складається лише з посилання на зовнішнє імʼя, яке kubedns або еквівалент поверне як запис CNAME, без відкриття або проксіювання будь-яких подів.
"LoadBalancer" означає, що сервіс буде доступний через зовнішній балансувальник навантаження (якщо хмарний провайдер підтримує це), на додачу до типу 'NodePort'.
"NodePort" означає, що сервіс буде доступний на одному порту кожного вузла, на додачу до типу 'ClusterIP'.
ServiceStatus
ServiceStatus представляє поточний стан сервісу.
Поле
Опис
conditions Condition array patch strategy: злиття за ключем type
Стандартні метадані списку. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
ClientIPConfig
ClientIPConfig представляє конфігурації сесійної спорідненості на основі IP клієнта.
Поле
Опис
timeoutSeconds integer
timeoutSeconds вказує кількість секунд для сесійної спорідненості типу ClientIP. Значення повинно бути >0 && <=86400 (для 1 дня), якщо ServiceAffinity == "ClientIP". Стандартне значення — 10800 (для 3 годин).
LoadBalancerIngress
LoadBalancerIngress представляє стан точки входу балансувальника навантаження: трафік, призначений для сервісу, повинен надсилатися до точки входу.
Поле
Опис
hostname string
Hostname встановлюється для точок входу балансувальника навантаження, які базуються на DNS (зазвичай балансувальники навантаження AWS)
ip string
IP встановлюється для точок входу балансувальника навантаження, які базуються на IP (зазвичай балансувальники навантаження GCE або OpenStack)
ipMode string
IPMode визначає, як поводиться IP балансувальника навантаження, і може бути вказаний лише тоді, коли поле ip вказане. Встановлення цього значення на "VIP" означає, що трафік доставляється до вузла з призначенням, встановленим на IP та порт балансувальника навантаження. Встановлення цього значення на "Proxy" означає, що трафік доставляється до вузла або поду з призначенням, встановленим на IP вузла та порт вузла або IP поду та порт поду. Реалізації сервісу можуть використовувати цю інформацію для налаштування маршрутизації трафіку.
Ingress є списком точок входу для балансувальника навантаження. Трафік, призначений для сервісу, повинен надсилатися до цих точок входу.
PortStatus
PortStatus представляє стан порту сервісу
Поле
Опис
error string
Error використовується для запису проблеми з портом сервісу. Формат помилки повинен відповідати наступним правилам:
вбудовані значення помилок повинні бути вказані в цьому файлі і вони повинні використовувати CamelCase імена
специфічні для постачальника хмари значення помилок повинні мати імена, що відповідають формату foo.example.com/CamelCase.
port* integer
Port є номером порту сервісу, стан якого тут записується.
protocol* string
Protocol є протоколом порту сервісу, стан якого тут записується. Підтримувані значення: "TCP", "UDP", "SCTP"
Можливі значення enum:
"SCTP" є протоколом SCTP.
"TCP" є протоколом TCP.
"UDP" є протоколом UDP.
ServicePort
ServicePort містить інформацію про порт сервісу.
Поле
Опис
appProtocol string
Протокол застосунку для цього порту. Використовується як підказка для реалізацій, щоб запропонувати більш багатий функціонал для протоколів, які вони розуміють. Це поле слідує стандартному синтаксису міток Kubernetes. Дійсні значення можуть бути:
Інші протоколи повинні використовувати імена з префіксом, визначені реалізацією, наприклад mycompany.com/my-custom-protocol.
name string
Назва порту всередині сервісу. Повинна бути DNS_LABEL. Всі порти всередині ServiceSpec повинні мати унікальні назви. При розгляді точок доступу для сервісу, повинна відповідати полю 'name' в EndpointPort. Необовʼязково, якщо визначено лише один ServicePort для цього сервісу.
nodePort integer
Порт на кожному вузлі, на якому цей сервіс буде доступний, коли тип сервісу NodePort або LoadBalancer. Зазвичай призначається системою. Якщо вказано значення, яке знаходиться в діапазоні та не використовується, воно буде використане, інакше операція завершиться помилкою. Якщо не вказано, порт буде виділено, якщо цей сервіс його потребує. Якщо це поле вказано при створенні сервісу, який його не потребує, створення завершиться помилкою. Це поле буде очищено при оновленні сервісу, який більше його не потребує (наприклад, зміна типу з NodePort на ClusterIP). Більше інформації: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
port* integer
Порт, який буде експонований цим сервісом.
protocol string
IP-протокол для цього порту. Підтримуються "TCP", "UDP" та "SCTP". Стандартно — TCP.
Можливі значення enum:
"SCTP" є протоколом SCTP.
"TCP" є протоколом TCP.
"UDP" є протоколом UDP.
targetPort
Номер або назва порту для доступу до подів, на які спрямований сервіс. Номер повинен бути в діапазоні від 1 до 65535. Назва повинна бути IANA_SVC_NAME. Якщо це рядок, він буде шукатися як порт з назвою у контейнерах цільового поду. Якщо не вказано, використовується значення поля 'port' (identity map). Це поле ігнорується для сервісів з clusterIP=None і повинно бути опущене або встановлене рівним полю 'port'. Більше інформації: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
SessionAffinityConfig
SessionAffinityConfig представляє конфігурації спорідненості сесії.
clientIP містить конфігурації спорідненості сесії на основі IP клієнта.
Операції
post Create
HTTP Запит
POST /api/v1/namespaces/{namespace}/services
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/services/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Service
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/services/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Service
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/services/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Service
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /api/v1/namespaces/{namespace}/services/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Service
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /api/v1/namespaces/{namespace}/services/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Service
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
Шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
Path є частиною URL, яка включає точки доступу сервісу, суфікси та параметри, які використовуються для поточного запиту проксі до сервісу. Наприклад, повний URL запиту — http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path — це _search?q=user:kimchy.
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Get Connect Proxy
HTTP Запит
GET /api/v1/namespaces/{namespace}/services/{name}/proxy
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
path
string
є
Відповідь
Статус
Опис
Відповідь
200
OK
string
get Get Connect Proxy Path
HTTP Запит
GET /api/v1/namespaces/{namespace}/services/{name}/proxy/{path}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
Шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
є
Відповідь
Статус
Опис
Відповідь
200
OK
string
head Head Connect Proxy
HTTP Запит
HEAD /api/v1/namespaces/{namespace}/services/{name}/proxy
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
path
string
є
Відповідь
Статус
Опис
Відповідь
200
OK
string
head Head Connect Proxy Path
HTTP Запит
HEAD /api/v1/namespaces/{namespace}/services/{name}/proxy/{path}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
Шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
є
Відповідь
Статус
Опис
Відповідь
200
OK
string
put Replace Connect Proxy
HTTP Запит
PUT /api/v1/namespaces/{namespace}/services/{name}/proxy
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
path
string
є
Відповідь
Статус
Опис
Відповідь
200
OK
string
put Replace Connect Proxy Path
HTTP Запит
PUT /api/v1/namespaces/{namespace}/services/{name}/proxy/{path}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceProxyOptions
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
path
string
Шлях до ресурсу
Параметри запиту
Назва
Тип
Опис
path
string
є
Відповідь
Статус
Опис
Відповідь
200
OK
string
5.12.16 - ServiceAccount
ServiceAccount обʼєднує:
імʼя, зрозуміле користувачам і, можливо, периферійним системам, для ідентифікації
принципала, який може бути автентифікований і авторизований
набір секретів
apiVersion: v1
import "k8s.io/api/core/v1"
ServiceAccount
ServiceAccount обʼєднує:
імʼя, зрозуміле користувачам і, можливо, периферійним системам, для ідентифікації
принципала, який може бути автентифікований і авторизований
AutomountServiceAccountToken вказує, чи повинні поди, що працюють під цим службовим обліковим записом, автоматично монтувати токен API. Може бути перевизначено на рівні пода.
ImagePullSecrets є списком посилань на секрети в тому ж просторі імен, які використовуються для отримання будь-яких образів у подах, що посилаються на цей ServiceAccount. ImagePullSecrets відрізняються від Secrets тим, що Secrets можна монтувати в поді, а ImagePullSecrets доступні лише kubelet. Детальніше: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
Secrets є списком секретів у тому ж просторі імен, які поди, що працюють під цим ServiceAccount, можуть використовувати. Поди обмежуються лише цим списком, якщо цей службовий обліковий запис має анотацію "kubernetes.io/enforce-mountable-secrets", встановлену на "true". Анотація "kubernetes.io/enforce-mountable-secrets" застаріла з версії v1.32. Рекомендується використовувати окремі простори імен для ізоляції доступу до змонтованих секретів. Це поле не слід використовувати для пошуку автоматично згенерованих секретів токенів службового облікового запису для використання поза подами. Замість цього токени можна запитувати безпосередньо за допомогою API TokenRequest або секрети токенів службового облікового запису можна створювати вручну. Детальніше: https://kubernetes.io/docs/concepts/configuration/secret
ServiceAccountList
ServiceAccountList є списком обʼєктів ServiceAccount
POST /api/v1/namespaces/{namespace}/serviceaccounts
Параметри запиту
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /api/v1/namespaces/{namespace}/serviceaccounts/{name}
Параметри запиту
Назва
Тип
Опис
name
string
Назва ServiceAccount
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/namespaces/{namespace}/serviceaccounts/{name}
Параметри запиту
Назва
Тип
Опис
name
string
Назва ServiceAccount
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /api/v1/namespaces/{namespace}/serviceaccounts
Параметри запиту
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}
Параметри запиту
Назва
Тип
Опис
name
string
Назва ServiceAccount
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /api/v1/watch/namespaces/{namespace}/serviceaccounts
Параметри запиту
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
EndpointSlice представляє набір точок доступу сервісу. Більшість EndpointSlices створюються контролером EndpointSlice для представлення Podʼів, обраних обʼєктами Service. Для даного сервісу може бути кілька обʼєктів EndpointSlice, які потрібно обʼєднати, щоб отримати повний набір точок доступу; ви можете знайти всі зрізи для даного сервісу, отримавши список EndpointSlices у просторі імен сервісу, у якому мітка kubernetes.io/service-name містить імʼя сервісу.
apiVersion: discovery.k8s.io/v1
import "k8s.io/api/discovery/v1"
EndpointSlice
EndpointSlice представляє набір точок доступу сервісу. Більшість EndpointSlices створюються контролером EndpointSlice для представлення Podʼів, обраних обʼєктами Service. Для даного сервісу може бути кілька обʼєктів EndpointSlice, які потрібно обʼєднати, щоб отримати повний набір точок доступу; ви можете знайти всі зрізи для даного сервісу, отримавши список EndpointSlices у просторі імен сервісу, у якому мітка kubernetes.io/service-name містить імʼя сервісу.
Поле
Опис
addressType* string
addressType визначає тип адреси, яку несе цей EndpointSlice. Всі адреси в цьому зрізі повинні бути одного типу. Це поле незмінне після створення. Наразі підтримуються наступні типи адрес:
IPv4: представляє IPv4-адресу.
IPv6: представляє IPv6-адресу.
FQDN: представляє повністю кваліфіковане доменне імʼя. (Застаріле) Контролер EndpointSlice генерує лише зрізи з addressType "IPv4" та "IPv6", а kube-proxy обробляє лише такі зрізи. Для типу "FQDN" семантика не визначена.
ports визначає список мережевих портів, експонованих кожною точкою доступу в цьому зрізі. Кожен порт повинен мати унікальне імʼя. Кожен зріз може включати максимум 100 портів. Сервіси завжди мають принаймні 1 порт, тому EndpointSlices, створені контролером EndpointSlice, також завжди матимуть принаймні 1 порт. EndpointSlices, що використовуються для інших цілей, можуть мати порожній список портів.
EndpointSliceList
EndpointSliceList представляє список зрізів точок доступу
Endpoint представляє одну логічну "бекенд" реалізацію сервісу.
Поле
Опис
addresses* string array
addresses цього endpoint. Для EndpointSlices з addressType "IPv4" або "IPv6" значення є IP-адресами в канонічній формі. Синтаксис і семантика інших значень addressType не визначені. Має містити принаймні одну адресу, але не більше 100. EndpointSlices, створені контролером EndpointSlice, завжди матимуть точно 1 адресу. Семантика для додаткових адрес після першої не визначена, і kube-proxy їх не розглядає.
conditions містить інформацію про поточний стан точки доступу.
deprecatedTopology object
deprecatedTopology містить інформацію про топологію, яка була частиною API v1beta1. Це поле застаріле і буде видалене, коли API v1beta1 буде видалено (не раніше ніж Kubernetes v1.24). Хоча це поле може містити значення, воно не може бути записане через API v1, і будь-які спроби запису будуть ігноровані. Інформацію про топологію можна знайти у полях zone та nodeName.
hints містить інформацію про те, як слід використовувати точку доступу.
hostname string
hostname цього endpoint. Це поле може використовуватися споживачами точки доступу для розрізнення точок доступу між собою (наприклад, у DNS-іменах). Кілька точок доступу, які використовують один і той же hostname, слід вважати взаємозамінними (наприклад, кілька значень A у DNS). Має бути в нижньому регістрі та відповідати валідації DNS Label (RFC 1123).
nodeName string
nodeName представляє імʼя вузла, на якому розташована ця точка доступу. Це можна використовувати для визначення точок доступу, локальних для вузла.
targetRef представляє посилання на обʼєкт Kubernetes, який представляє цю точку доступу.
zone string
zone представляє імʼя зони, в якій існує ця точка доступу.
EndpointConditions
EndpointConditions представляє поточний стан точки доступу.
Поле
Опис
ready boolean
ready вказує, що ця точка доступу готова приймати трафік, відповідно до системи, яка керує точкою доступу. Значення nil слід інтерпретувати як "true". Загалом, точка доступу повинна бути позначена як готова, якщо вона працює і не завершується, хоча це може бути перевизначено в деяких випадках, наприклад, коли повʼязаний Service встановив прапорець publishNotReadyAddresses.
serving boolean
serving вказує, що ця точка доступу може приймати трафік, відповідно до системи, яка керує точкою доступу. Для точок доступу, підтримуваних подами, контролер EndpointSlice позначить точку доступу як таку, що працює, якщо стан Ready пода є True. Значення nil слід інтерпретувати як "true".
terminating boolean
terminating вказує, що ця точка доступу завершує роботу. Значення nil слід інтерпретувати як "false".
EndpointHints
EndpointHints надає підказки щодо того, як слід використовувати точку доступу.
forNodes вказує на вузол(и), для яких ця точка доступу повинна використовуватися при маршрутизації з урахуванням топології. Може містити максимум 8 записів.
forZones вказує на зону(и), для яких ця точка доступу повинна використовуватися при маршрутизації з урахуванням топології. Може містити максимум 8 записів.
EndpointPort
EndpointPort представляє порт, який використовується EndpointSlice
Поле
Опис
appProtocol string
Протокол застосунку для цього порту. Використовується як підказка для реалізацій, щоб запропонувати більш багатий функціонал для протоколів, які вони розуміють. Це поле дотримується стандартного синтаксису міток Kubernetes. Дійсні значення можуть бути:
'kubernetes.io/h2c' — HTTP/2 prior knowledge over cleartext as described in RFC 9113
'kubernetes.io/ws' — WebSocket over cleartext as described in RFC 6455
'kubernetes.io/wss' — WebSocket over TLS as described in RFC 6455
Інші протоколи повинні використовувати імена з префіксом, визначені реалізацією, наприклад mycompany.com/my-custom-protocol.
name string
name представляє назву цього порту. Всі порти в EndpointSlice повинні мати унікальні назви. Якщо EndpointSlice походить від сервісу Kubernetes, це відповідає Service.ports[].name. Назва повинна бути або порожнім рядком, або відповідати валідації DNS_LABEL:
не більше 63 символів.
складається з малих літер, цифр або '-'.
починається і закінчується літерою або цифрою.
Стандартно — порожній рядок.
port integer
port представляє номер порту точки доступу. Якщо EndpointSlice походить від сервісу Kubernetes, це повинно бути встановлено на цільовий порт сервісу. EndpointSlices, що використовуються для інших цілей, можуть мати порожній порт.
protocol string
protocol представляє IP-протокол для цього порту. Повинно бути UDP, TCP або SCTP. Стандартно — TCP.
Можливі значення enum:
"SCTP" — протокол SCTP.
"TCP" — протокол TCP.
"UDP" — протокол UDP.
ForNode
ForNode надає інформацію про те, які вузли повинні використовувати цю точку доступу.
Поле
Опис
name* string
name представляє назву вузла.
ForZone
ForZone надає інформацію про те, які зони повинні використовувати цю точку доступу.
Поле
Опис
name* string
name представляє назву зони.
Операції
post Create
HTTP Запит
POST /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва EndpointSlice
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва EndpointSlice
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва EndpointSlice
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/discovery.k8s.io/v1/watch/endpointslices
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
FlowSchema визначає схему групи потоків. Зверніть увагу, що потік складається з набору вхідних API-запитів з подібними атрибутами і ідентифікується парою рядків: назвою FlowSchema та "розрізнювачем потоку".
apiVersion: flowcontrol.apiserver.k8s.io/v1
import "k8s.io/api/flowcontrol/v1"
FlowSchema
FlowSchema визначає схему групи потоків. Зверніть увагу, що потік складається з набору вхідних API-запитів з подібними атрибутами і ідентифікується парою рядків: назвою FlowSchema та "розрізнювачем потоку".
distinguisherMethod визначає, як обчислювати розрізнювач потоку для запитів, що відповідають цій схемі. nil вказує, що розрізнювач вимкнено і, отже, завжди буде порожнім рядком.
matchingPrecedence integer
matchingPrecedence використовується для вибору серед FlowSchemas, які відповідають даному запиту. Обрана FlowSchema є серед тих, у яких чисельно найнижчий (що ми вважаємо логічно найвищим) MatchingPrecedence. Кожне значення MatchingPrecedence повинно бути в діапазоні [1,10000]. Зверніть увагу, що якщо пріоритет не вказано, він буде стандартно встановлений на 1000.
priorityLevelConfiguration повинно посилатися на PriorityLevelConfiguration у кластері. Якщо посилання не може бути розпізнано, FlowSchema буде ігноровано та позначено як недійсне у своєму статусі. Обовʼязково.
rules описує, які запити відповідатимуть цій схемі потоку. Ця FlowSchema відповідає запиту тоді і тільки тоді, коли принаймні один елемент rules відповідає запиту. Якщо це порожній масив, жоден запит не відповідатиме FlowSchema.
FlowSchemaStatus
FlowSchemaStatus представляє поточний стан FlowSchema.
NonResourcePolicyRule є предикатом, який відповідає запитам до не-ресурсів відповідно до їх дієслова та цільового URL не-ресурсу. NonResourcePolicyRule відповідає запиту тоді і тільки тоді, коли обидва (a) принаймні один член verbs відповідає запиту і (b) принаймні один член nonResourceURLs відповідає запиту.
Поле
Опис
nonResourceURLs* string array
nonResourceURLs є набором префіксів URL, до яких користувач повинен мати доступ, і не може бути порожнім. Наприклад:
"/healthz" є допустимим
"/hea*" є недопустимим
"/hea" є допустимим, але не збігається ні з чим
"/hea/*" також не збігається ні з чим
"/healthz/*" збігається з усіма перевірками стану компонентів
"*" збігається з усіма не-ресурсними URL. Якщо він присутній, він повинен бути єдиним записом
Обовʼязково.
verbs* string array
verbs є списком відповідних дієслів і не може бути порожнім. "*" збігається з усіма дієсловами. Якщо він присутній, він повинен бути єдиним записом. Обовʼязково.
PolicyRulesWithSubjects
PolicyRulesWithSubjects визначає тест, який застосовується до запиту до apiserver. Тест враховує субʼєкта, який робить запит, дієслово, яке використовується, та ресурс, над яким виконується дія. Цей PolicyRulesWithSubjects відповідає запиту тоді і тільки тоді, коли обидва (a) принаймні один член subjects відповідає запиту і (b) принаймні один член resourceRules або nonResourceRules відповідає запиту.
resourceRules є списком ResourcePolicyRules, які визначають відповідні запити відповідно до їх дієслова та цільового ресурсу. Принаймні один з `resourceRules` або `nonResourceRules` повинен бути непорожнім.
subjects є списком звичайних користувачів, службових облікових записів або груп, до яких застосовується це правило. У цьому списку має бути принаймні один елемент. Список, який включає як групи користувачів system:authenticated, так і system:unauthenticated, відповідає на всі запити. Обовʼязково.
PriorityLevelConfigurationReference
PriorityLevelConfigurationReference містить інформацію, яка вказує на використаний "request-priority".
Поле
Опис
name* string
name є назвою конфігурації рівня пріоритету, на яку посилаються. Обовʼязково.
ResourcePolicyRule
ResourcePolicyRule є предикатом, який відповідає деяким запитам до ресурсів, перевіряючи дієслово запиту та цільовий ресурс. ResourcePolicyRule відповідає запиту до ресурсу тоді і тільки тоді, коли: (a) принаймні один член verbs відповідає запиту, (b) принаймні один член apiGroups відповідає запиту, (c) принаймні один член resources відповідає запиту, і (d) або (d1) запит не вказує простір імен (тобто Namespace=="") і clusterScope дорівнює true, або (d2) запит вказує простір імен і принаймні один член namespaces відповідає простору імен запиту.
Поле
Опис
apiGroups* string array
apiGroups є списком відповідних API груп і не може бути порожнім. "*" відповідає всім API групам і, якщо присутній, повинен бути єдиним елементом. Обовʼязково.
clusterScope boolean
clusterScope вказує, чи слід мати збіг з запитамм, які не вказують простір імен (що відбувається або тому, що ресурс не має простору імен, або запит націлений на всі простори імен). Якщо це поле опущено або має значення false, то поле namespaces повинно містити непорожній список.
namespaces string array
namespaces є списком цільових просторів імен, які обмежують збіги. Запит, який вказує цільовий простір імен, має збіг лише тоді, коли або (a) цей список містить цей цільовий простір імен, або (b) цей список містить "*". Зверніть увагу, що "*" відповідає будь-якому вказаному простору імен, але не відповідає запиту, який не вказує простір імен (див. поле clusterScope). Цей список може бути порожнім, але лише якщо clusterScope має значення true.
resources* string array
resources є списком відповідних ресурсів (тобто у нижньому регістрі та у множині) з, за бажанням, субресурсом. Наприклад, [ "services", "nodes/status" ]. Цей список не може бути порожнім. "*" відповідає всім ресурсам і, якщо присутній, повинен бути єдиним елементом. Обовʼязково.
verbs* string array
verbs є списком відповідних дієслів і не може бути порожнім. "*" відповідає всім дієсловам і, якщо присутній, повинен бути єдиним елементом. Обовʼязково.
ServiceAccountSubject
ServiceAccountSubject містить детальну інформацію для субʼєкта типу service-account.
Поле
Опис
name* string
name є назвою обʼєктів ServiceAccount, які відповідають, або "*" для відповідності незалежно від імені. Обовʼязково.
namespace* string
namespace є простором імен обʼєктів ServiceAccount, які відповідають. Обовʼязково.
Subject
Subject перевіряється на збіг з ініціатором запиту, як визначено системою автентифікації запиту. Існує три способи перевірки збігу з ініціатором: за користувачем, групою або обліковим записом служби.
UserSubject містить детальну інформацію для субʼєкта типу user.
Поле
Опис
name* string
name є іменем користувача, який відповідає, або "*" для відповідності всім іменам користувачів. Обовʼязково.
Операції
post Create
HTTP Запит
POST /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва FlowSchema
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва FlowSchema
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/flowcontrol.apiserver.k8s.io/v1/watch/flowschemas/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва FlowSchema
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/flowcontrol.apiserver.k8s.io/v1/watch/flowschemas
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва FlowSchema
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва FlowSchema
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
exempt визначає, як обробляються запити для рівня пріоритету, що звільнений від обмежень. Це поле МАЄ бути порожнім, якщо type дорівнює "Limited". Це поле МОЖЕ бути непорожнім, якщо type дорівнює "Exempt". Якщо порожнє і type дорівнює "Exempt", застосовуються стандартні значення для ExemptPriorityLevelConfiguration.
limited визначає, як обробляються запити для рівня пріоритету Limited. Це поле МАЄ бути непорожнім, якщо і тільки якщо type дорівнює "Limited".
type* string
type вказує, чи підлягає цей рівень пріоритету обмеженню виконання запитів. Значення "Exempt" означає, що запити цього рівня пріоритету не підлягають обмеженню (і, отже, ніколи не ставляться в чергу) і не зменшують доступну потужність для інших рівнів пріоритету. Значення "Limited" означає, що (a) запити цього рівня пріоритету підлягають обмеженням і (b) частина обмеженої потужності сервера виділяється виключно для цього рівня пріоритету. Обов'язково.
PriorityLevelConfigurationStatus
PriorityLevelConfigurationStatus представляє поточний стан "request-priority".
ExemptPriorityLevelConfiguration описує налаштовувані аспекти обробки виключень. У обовʼязковому обʼєкті конфігурації виключення в полях тут можуть бути змінені авторизованими користувачами, на відміну від решти spec.
Поле
Опис
lendablePercent integer
lendablePercent визначає частку NominalCL рівня, яку можуть позичати інші рівні пріоритету. Значення цього поля повинно бути між 0 і 100 включно, і зазвичай дорівнює 0. Кількість місць, які інші рівні можуть позичати у цього рівня, відома як LendableConcurrencyLimit (LendableCL) цього рівня, визначається наступним чином: LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
nominalConcurrencyShares integer
nominalConcurrencyShares (NCS) враховується при обчисленні NominalConcurrencyLimit (NominalCL) цього рівня. Це кількість місць виконання, номінально зарезервованих для цього рівня пріоритету. Це НЕ обмежує розподіл завдань з цього рівня пріоритету, але впливає на інші рівні пріоритету через механізм запозичення. Обмеження паралельності сервера (ServerCL) розподіляється між усіма рівнями пріоритету пропорційно до їхніх значень NCS: NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[рівень пріоритету k] NCS(k) Більші числа означають більший номінальний ліміт паралельності за рахунок усіх інших рівнів пріоритету. Це поле має стандартне значення нуль.
Translated with DeepL.com (free version)
LimitResponse
LimitResponse визначає, як обробляти запити, які не можуть бути виконані в даний момент.
queuing містить параметри конфігурації для черги. Це поле може бути непорожнім лише якщо type дорівнює "Queue".
type* string
type є "Queue" або "Reject". "Queue" означає, що запити, які не можуть бути виконані при надходженні, утримуються в черзі до тих пір, поки вони не можуть бути виконані або не досягнуто ліміт черги. "Reject" означає, що запити, які не можуть бути виконані при надходженні, відхиляються. Обовʼязкове поле.
LimitedPriorityLevelConfiguration
LimitedPriorityLevelConfiguration визначає, як обробляти запити, які підпадають під обмеження. Конфігурація вирішує два питання:
Як обмежуються запити для цього рівня пріоритету?
Що слід робити з запитами, які перевищують ліміт?
Поле
Опис
borrowingLimitPercent integer
borrowingLimitPercent, якщо присутній, налаштовує обмеження на кількість місць, які цей рівень пріоритету може позичати у інших рівнів пріоритету. Обмеження відоме як BorrowingConcurrencyLimit (BorrowingCL) цього рівня і є обмеженням на загальну кількість місць, які цей рівень може позичати одночасно. Це поле містить співвідношення цього обмеження до номінального обмеження паралельності рівня. Коли це поле не є nil, воно повинно містити невідʼємне ціле число, і обмеження обчислюється наступним чином. BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 ) Значення цього поля може перевищувати 100, що означає, що цей рівень пріоритету може позичати кількість місць, що перевищує його власне номінальне обмеження паралельності (NominalCL). Коли це поле залишено nil, обмеження фактично є нескінченним.
lendablePercent integer
lendablePercent визначає частку номінального обмеження паралельності рівня (NominalCL), яку можуть позичати інші рівні пріоритету. Значення цього поля повинно бути між 0 та 100 включно, і зазвичай дорівнює 0. Кількість місць, які інші рівні можуть позичати у цього рівня, відома як LendableConcurrencyLimit (LendableCL) цього рівня, визначається наступним чином. LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
limitResponse показує, що робити з запитами, які не можуть бути виконані прямо зараз
nominalConcurrencyShares integer
nominalConcurrencyShares (NCS) враховується при обчисленні NominalConcurrencyLimit (NominalCL) для даного рівня. Це кількість місць для виконання, доступних на цьому рівні пріоритету. Цей показник використовується як для запитів, що надходять з даного рівня пріоритету, так і для запитів з інших рівнів пріоритету, які запозичують місця з цього рівня. Обмеження паралельності сервера (ServerCL) розподіляється між рівнями пріоритету Limited пропорційно до їхніх значень NCS: NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) Більші числа означають більший номінальний ліміт паралельності за рахунок кожного іншого рівня пріоритету. Якщо не вказано, це поле зазвичай має значення 30. Встановлення цього поля на нуль підтримує створення «тюрми» для цього рівня пріоритету, яка використовується для утримання деяких запитів
PriorityLevelConfigurationCondition
PriorityLevelConfigurationCondition визначає стан рівня пріоритету.
lastTransitionTime є час останнього переходу стану з одного в інший.
message string
message є повідомленням, зрозумілим для людини, яке вказує деталі останнього переходу.
reason string
reason є унікальною, однословною, CamelCase причиною останнього переходу стану.
status string
status є статусом стану. Може бути True, False, Unknown. Обовʼязкове.
type string
type є типом стану. Обовʼязкове.
QueuingConfiguration
QueuingConfiguration містить параметри конфігурації для обробки черги
Поле
Опис
handSize integer
handSize є невеликим додатнім числом, яке налаштовує shuffle sharding запитів у черги. Під час додавання запиту на цей рівень пріоритету ідентифікатор потоку запиту (пара рядків) хешується, і значення хешу використовується для перемішування списку черг і роздачі "руки" розміру, вказаного тут. Запит поміщається в одну з найкоротших черг у цій "руці". handSize не повинен перевищувати queues і повинен бути значно меншим (щоб кілька важких потоків не переповнювали більшість черг). Див. документацію для користувачів для більш детальних рекомендацій щодо налаштування цього поля. Це поле має стандартне значення 8.
queueLengthLimit integer
queueLengthLimit є максимальною кількістю запитів, які можуть очікувати в даній черзі цього рівня пріоритету одночасно; надлишкові запити відхиляються. Значення повинно бути додатнім. Якщо не вказано, зазвичай буде 50.
queues integer
queues є кількістю черг для цього рівня пріоритету. Черги існують незалежно на кожному apiserver. Значення повинно бути додатнім. Встановлення його в 1 фактично виключає shuffle sharding і робить метод розрізнення повʼязаних flow schemas неактуальним. Це поле має стандартне значення 64.
Операції
post Create
HTTP Запит
POST /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityLevelConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityLevelConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/flowcontrol.apiserver.k8s.io/v1/watch/prioritylevelconfigurations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityLevelConfiguration
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/flowcontrol.apiserver.k8s.io/v1/watch/prioritylevelconfigurations
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityLevelConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityLevelConfiguration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
IPAddress представляє окрему IP-адресу одного IP-сімейства. Обʼєкт призначений для використання API, які працюють з IP-адресами. Обʼєкт використовується основним API Service для виділення IP-адрес. IP-адреса може бути представлена в різних форматах, щоб гарантувати унікальність IP, імʼя обʼєкта є IP-адресою в канонічному форматі, чотири десяткові цифри, розділені крапками, з придушенням нулів га початку для IPv4 та представленням, визначеним RFC 5952 для IPv6. Допустимі значення: 192.168.1.5 або 2001:db8::1 або 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Недійсні: 10.01.2.3 або 2001:db8:0:0:0::1
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
IPAddress
IPAddress представляє окрему IP-адресу одного IP-сімейства. Обʼєкт призначений для використання API, які працюють з IP-адресами. Обʼєкт використовується основним API Service для виділення IP-адрес. IP-адреса може бути представлена в різних форматах, щоб гарантувати унікальність IP, імʼя обʼєкта є IP-адресою в канонічному форматі, чотири десяткові цифри, розділені крапками, з придушенням нулів га початку для IPv4 та представленням, визначеним RFC 5952 для IPv6. Допустимі значення: 192.168.1.5 або 2001:db8::1 або 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Недійсні: 10.01.2.3 або 2001:db8:0:0:0::1
ParentReference описує посилання на батьківський обʼєкт.
Поле
Опис
group string
Group є групою обʼєкта, на який посилається.
name* string
Name є назвою обʼєкта, на який посилається.
namespace string
Namespace є простором імен обʼєкта, на який посилається.
resource* string
Resource є ресурсом обʼєкта, на який посилається.
Операції
post Create
HTTP Запит
POST /apis/networking.k8s.io/v1/ipaddresses
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/ipaddresses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва IPAddress
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Ingress є колекцією правил, які дозволяють вхідним зʼєднанням досягати точок доступу, визначених бекендом. Ingress можна налаштувати для надання сервісам зовнішньо доступних URL, балансування навантаження, теримінування SSL, пропозиції віртуального хостингу на основі імен тощо.
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
Ingress
Ingress є колекцією правил, які дозволяють вхідним зʼєднанням досягати точок доступу, визначених бекендом. Ingress можна налаштувати для надання сервісам зовнішньо доступних URL, балансування навантаження, теримінування SSL, пропозиції віртуального хостингу на основі імен тощо.
defaultBackend є бекендом, який повинен обробляти запити, що не відповідають жодному правилу. Якщо правила не вказані, обовʼязково має бути вказаний DefaultBackend. Якщо DefaultBackend не встановлено, обробка запитів, що не відповідають жодному з правил, буде залежати від контролера Ingress.
ingressClassName string
ingressClassName є назвою ресурсу IngressClass у кластері. Реалізації контролера Ingress використовують це поле, щоб знати, чи повинні вони обслуговувати цей ресурс Ingress, через транзитивне з'єднання (controller -> IngressClass -> Ingress resource). Хоча анотація `kubernetes.io/ingress.class` (проста константна назва) ніколи не була формально визначена, вона широко підтримувалася контролерами Ingress для створення прямого зв'язку між контролером Ingress та ресурсами Ingress. Новостворені ресурси Ingress повинні віддавати перевагу використанню цього поля. Однак, навіть якщо анотація офіційно застаріла, з міркувань зворотної сумісності контролери Ingress все ще повинні враховувати цю анотацію, якщо вона присутня.
rules є списком правил хостів, які використовуються для налаштування Ingress. Якщо не вказано або жодне правило не збігається, весь трафік надсилається до стандартного бекенду.
tls представляє конфігурацію TLS. Наразі Ingress підтримує лише один TLS-порт, 443. Якщо кілька елементів цього списку вказують різні хости, вони будуть мультиплексовані на одному порту відповідно до імені хоста, вказаного через розширення SNI TLS, якщо контролер Ingress, що обслуговує Ingress, підтримує SNI.
backend визначає посилання на точку доступу сервісу, до якої буде перенаправлено трафік.
path string
path відповідає шляху вхідного запиту. Наразі він може містити символи, заборонені в звичайній частині "path" URL, як визначено в RFC 3986. Шляхи повинні починатися з '/' і бути присутніми при використанні PathType зі значенням "Exact" або "Prefix".
pathType* string
pathType визначає інтерпретацію відповідності шляху. PathType може мати одне з наступних значень:
Exact: Точно збігається з URL шляху.
Prefix: Має збіг на основі префіксу URL шляху, розділеного '/'. Відповідність виконується по елементах шляху. Елемент шляху — це список міток у шляху, розділених символом '/'. Запит відповідає шляху p, якщо кожен p є префіксом елемента шляху запиту. Зверніть увагу, що якщо останній елемент шляху є підрядком останнього елемента шляху запиту, це не є відповідністю (наприклад, /foo/bar відповідає /foo/bar/baz, але не відповідає /foo/barbaz).
ImplementationSpecific: Інтерпретація відповідності шляху залежить від IngressClass. Реалізації можуть розглядати це як окремий PathType або обробляти його ідентично до типів шляхів Prefix або Exact. Реалізації зобовʼязані підтримувати всі типи шляхів.
Можливі значення enum:
"Exact" відповідає URL шляху точно і з урахуванням регістру.
"ImplementationSpecific" відповідність залежить від IngressClass. Реалізації можуть розглядати це як окремий PathType або обробляти його ідентично до типів шляхів Prefix або Exact.
"Prefix" відповідає на основі префіксу URL шляху, розділеного '/'. Відповідність чутлива до регістру і виконується по елементах шляху. Елемент шляху - це список міток у шляху, розділених символом '/'. Запит відповідає шляху p, якщо кожен p є префіксом елемента шляху запиту. Зверніть увагу, що якщо останній елемент шляху є підрядком останнього елемента шляху запиту, це не є відповідністю (наприклад, /foo/bar відповідає /foo/bar/baz, але не відповідає /foo/barbaz). Якщо в специфікації Ingress існує кілька відповідних шляхів, пріоритет надається найдовшому відповідному шляху. Приклади:
/foo/bar не має збігу з запитами до /foo/barbaz
/foo/bar має збіг з запитами до /foo/bar і /foo/bar/baz
/foo і /foo/ обидва мають збіг з запитами до /foo і /foo/. Якщо обидва шляхи присутні в специфікації Ingress, пріоритет надається найдовшому відповідному шляху (/foo/).
HTTPIngressRuleValue
HTTPIngressRuleValue є списком HTTP-селекторів, що вказують на бекенди. У прикладі: http://<host>/<path>?<searchpart> -> backend, де частини URL відповідають RFC 3986, цей ресурс буде використовуватися для відповідності всьому, що знаходиться після останнього '/' і перед першим '?' або '#'.
resource є посиланням на інший ресурс Kubernetes у просторі імен обʼєкта Ingress. Якщо вказано resource, не можна вказувати service.Name і service.Port. Це взаємовиключне налаштування з "Service".
ingress є списком, що містить точки доступу для балансувальника навантаження.
IngressPortStatus
IngressPortStatus представляє стан порту сервісу
Поле
Опис
error string
error використовується для запису проблеми з портом сервісу. Формат помилки повинен відповідати наступним правилам:
вбудовані значення помилок повинні бути вказані в цьому файлі і вони повинні використовувати CamelCase імена
специфічні для постачальника хмари значення помилок повинні мати імена, що відповідають формату foo.example.com/CamelCase
port* integer
port є номером порту ingress.
protocol* string
protocol є протоколом порту ingress. Підтримувані значення: "TCP", "UDP", "SCTP"
Можливі значення enum:
"SCTP" є протоколом SCTP.
"TCP" є протоколом TCP.
"UDP" є протоколом UDP.
IngressRule
IngressRule представляє правила, що зіставляють шляхи з зазначеним хостом та відповідним бекенд-сервісом. Вхідні запити спочатку оцінюються на відповідність хосту, а потім маршрутизуються до бекенду, повʼязаного з відповідним IngressRuleValue.
Поле
Опис
host string
host є повністю кваліфікованим доменним іменем мережевого хоста, як визначено в RFC 3986. Зверніть увагу на наступні відхилення від частини "host" URI, як визначено в RFC 3986:
IP-адреси не дозволені. Наразі IngressRuleValue може застосовуватися лише до IP у Spec батьківського Ingress.
Роздільник : не враховується, оскільки порти не дозволені. Наразі порт Ingress неявно :80 для http і :443 для https.
Обидва ці значення можуть змінитися в майбутньому. Вхідні запити порівнюються з host перед IngressRuleValue. Якщо host не вказано, Ingress маршрутизує весь трафік на основі зазначеного IngressRuleValue. host може бути "precise", що є доменним іменем без кінцевої крапки мережевого хоста (наприклад, "foo.bar.com"), або "wildcard", що є доменним іменем з префіксом одного символу підстановки (наприклад, "*.foo.com"). Символ підстановки '*' повинен зʼявлятися самостійно як перша DNS-мітка і відповідає лише одній мітці лейблу. Ви не можете мати мітку підстановки самостійно (наприклад, Host == "*"). Запити будуть порівнюватися з полем Host наступним чином:
Якщо host є точним, запит відповідає цьому правилу, якщо заголовок http host дорівнює Host.
Якщо host є підстановкою, запит відповідає цьому правилу, якщо заголовок http host дорівнює суфіксу (видаляючи перший лейбл) правила підстановки.
port є портом посилання на сервіс. Для IngressServiceBackend потрібен або імʼя порту, або номер порту.
IngressTLS
IngressTLS описує транспортний рівень безпеки, повʼязаний з ingress.
Поле
Опис
hosts string array
hosts є списком хостів, включених до TLS сертифіката. Значення в цьому списку повинні відповідати іменам, використаним у tlsSecret. Стандартно використовується налаштування wildcard host для контролера балансувальника навантаження, що виконує цей Ingress, якщо не вказано інше.
secretName string
secretName є імʼям секрету, який використовується для завершення TLS трафіку на порту 443. Поле залишено необовʼязковим, щоб дозволити маршрутизацію TLS на основі лише імені хоста SNI. Якщо хост SNI у слухачі конфліктує з полем заголовка "Host", використаним у IngressRule, хост SNI використовується для завершення, а значення заголовка "Host" використовується для маршрутизації.
ServiceBackendPort
ServiceBackendPort є портом сервісу, на який здійснюється посилання.
Поле
Опис
name string
name є імʼям порту на сервісі. Це взаємовиключне налаштування з "number".
number integer
number є числовим номером порту (наприклад, 80) на сервісі. Це взаємовиключне налаштування з "name".
Операції
post Create
HTTP Запит
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Ingress
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Ingress
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Ingress
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Ingress
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва Ingress
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
IngressClass представляє клас Ingress, на який посилається Ingress Spec. Анотація ingressclass.kubernetes.io/is-default-class може бути використана для вказівки, що IngressClass слід вважати стандартним. Коли один ресурс IngressClass має цю анотацію, встановлену на true, нові ресурси Ingress без вказаного класу будуть призначені цьому стандартному класу.
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
IngressClass
IngressClass представляє клас Ingress, на який посилається Ingress Spec. Анотація ingressclass.kubernetes.io/is-default-class може бути використана для вказівки, що IngressClass слід вважати стандартним. Коли один ресурс IngressClass має цю анотацію, встановлену на true, нові ресурси Ingress без вказаного класу будуть призначені цьому стандартному класу.
IngressClassSpec надає інформацію про клас Ingress.
Поле
Опис
controller string
controller посилається на імʼя контролера, який повинен обробляти цей клас. Це дозволяє мати різні "варіанти", які контролюються одним і тим же контролером. Наприклад, ви можете мати різні параметри для одного і того ж реалізуючого контролера. Це повинно бути вказано як шлях з префіксом домену довжиною не більше 250 символів, наприклад "acme.io/ingress-controller". Це поле є незмінним.
parameters є посиланням на власний ресурс, що містить додаткову конфігурацію для контролера. Це необовʼязково, якщо контролер не потребує додаткових параметрів.
IngressClassParametersReference ідентифікує обʼєкт API. Це можна використовувати для вказівки ресурсу з областю кластера або простору імен.
Поле
Опис
apiGroup string
apiGroup є групою для ресурсу, на який посилаються. Якщо APIGroup не вказано, зазначений Kind повинен бути в основній групі API. Для будь-яких інших сторонніх типів APIGroup є обовʼязковим.
kind* string
kind є типом ресурсу, на який посилаються.
name* string
name є імʼям ресурсу, на який посилаються.
namespace string
namespace є простором імен ресурсу, на який посилаються. Це поле обовʼязкове, коли scope встановлено на "Namespace" і повинно бути unset, коли scope встановлено на "Cluster".
scope string
scope визначає, чи це посилання на ресурс з областю кластера або простору імен. Це може бути встановлено на "Cluster" (стандартно) або "Namespace".
Операції
post Create
HTTP Звʼязок
POST /apis/networking.k8s.io/v1/ingressclasses
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/networking.k8s.io/v1/ingressclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва IngressClass
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/ingressclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва IngressClass
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/ingressclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва IngressClass
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/ingressclasses
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
egress є списком правил egress, які застосовуються до вибраних Podʼів. Вихідний трафік дозволяється, якщо немає NetworkPolicy, що вибирають Pod (і політика кластера інакше дозволяє трафік), АБО якщо трафік відповідає принаймні одному правилу egress серед усіх обʼєктів NetworkPolicy, чиї podSelector відповідає Podʼу. Якщо це поле порожнє, то цей NetworkPolicy обмежує весь вихідний трафік (і служить лише для забезпечення ізоляції вибраних Podʼів за замовчуванням). Це поле є бета-рівнем у версії 1.8
ingress є списком правил ingress, які застосовуються до вибраних Podʼів. Вхідний трафік дозволяється, якщо немає NetworkPolicy, що вибирають Pod (і політика кластера інакше дозволяє трафік), АБО якщо джерело трафіку є локальним вузлом Pod, АБО якщо трафік відповідає принаймні одному правилу ingress серед усіх обʼєктів NetworkPolicy, чиї podSelector відповідає Pod. Якщо це поле порожнє, то цей NetworkPolicy не дозволяє жодного трафіку (і служить лише для забезпечення ізоляції вибраних Podʼів за замовчуванням). Це поле є бета-рівнем у версії 1.8
podSelector вибирає Podʼи, до яких застосовується цей обʼєкт NetworkPolicy. Масив правил застосовується до будь-яких Podʼів, вибраних цим полем. Порожній селектор відповідає всім Podʼам у просторі імен політики. Кілька мережевих політик можуть вибирати один і той же набір Podʼів. У цьому випадку правила ingress для кожного з них комбінуються додатково. Це поле є необовʼязковим. Якщо воно не вказане, зазвичай використовується порожній селектор.
policyTypes string array
policyTypes є списком типів правил, до яких відноситься NetworkPolicy. Дійсні варіанти: ["Ingress"], ["Egress"], або ["Ingress", "Egress"]. Якщо це поле не вказане, воно буде визначене на основі наявності правил ingress або egress; політики, що містять секцію egress, вважаються впливовими на egress, а всі політики (незалежно від того, чи містять вони секцію ingress) вважаються впливовими на ingress. Якщо ви хочете створити політику лише для egress, ви повинні явно вказати policyTypes [ "Egress" ]. Аналогічно, якщо ви хочете створити політику, яка забороняє будь-який egress, ви повинні вказати значення policyTypes, що включає "Egress" (оскільки така політика не міститиме секції egress і в іншому випадку за замовчуванням буде лише [ "Ingress" ]). Це поле є бета-рівнем у версії 1.8
NetworkPolicyList
NetworkPolicyList є списком обʼєктів NetworkPolicy.
IPBlock описує конкретний CIDR (наприклад, "192.168.1.0/24", "2001:db8::/64"), який дозволено для підключених до NetworkPolicySpec podSelector. Поле except описує CIDR, які не повинні включатися в це правило.
Поле
Опис
cidr* string
cidr є рядком, що представляє IPBlock. Дійсні приклади: "192.168.1.0/24" або "2001:db8::/64"
except string array
except є списком CIDR, які не повинні включатися в IPBlock. Дійсні приклади: "192.168.1.0/24" або "2001:db8::/64". Значення except будуть відхилені, якщо вони знаходяться поза межами діапазону cidr.
NetworkPolicyEgressRule
NetworkPolicyEgressRule описує конкретний набір трафіку, якому дозволено виходити з підключених до NetworkPolicySpec podSelector подів. Трафік повинен відповідати параметру port, так і параметру to. Цей тип є бета-рівнем у версії 1.8.
ports є списком портів призначення для вихідного трафіку. Кожен елемент у цьому списку обʼєднується за допомогою логічного OR. Якщо це поле порожнє або відсутнє, це правило відповідає всім портам (трафік не обмежується портом). Якщо це поле присутнє і містить принаймні один елемент, тоді це правило дозволяє трафік лише у випадку, якщо трафік відповідає принаймні одному порту зі списку.
to є списком призначень для вихідного трафіку підключених до цього правила подів. Елементи цього списку обʼєднуються за допомогою логічного OR. Якщо це поле порожнє або відсутнє, це правило відповідає всім призначенням (трафік не обмежується призначенням). Якщо це поле присутнє і містить принаймні один елемент, тоді це правило дозволяє трафік лише у випадку, якщо трафік відповідає принаймні одному елементу зі списку to.
NetworkPolicyIngressRule
NetworkPolicyIngressRule описує конкретний набір трафіку, якому дозволено доступ до підключених до NetworkPolicySpec podSelector подів. Трафік повинен відповідати параметру ports, так і параметру from.
from є списком джерел, які повинні мати доступ до подів, обраних для цього правила. Елементи цього списку обʼєднуються за допомогою логічного OR. Якщо це поле порожнє або відсутнє, це правило відповідає всім джерелам (трафік не обмежується джерелом). Якщо це поле присутнє і містить принаймні один елемент, тоді це правило дозволяє трафік лише у випадку, якщо трафік відповідає принаймні одному елементу зі списку from.
ports є списком портів, які повинні бути доступні на подах, обраних для цього правила. Кожен елемент у цьому списку обʼєднується за допомогою логічного OR. Якщо це поле порожнє або відсутнє, це правило відповідає всім портам (трафік не обмежується портом). Якщо це поле присутнє і містить принаймні один елемент, тоді це правило дозволяє трафік лише у випадку, якщо трафік відповідає принаймні одному порту зі списку.
NetworkPolicyPeer
NetworkPolicyPeer описує пір, якому дозволено трафік to/from. Дозволені лише певні комбінації полів.
namespaceSelector обирає простори імен за допомогою міток на рівні кластера. Це поле дотримується стандартної семантики селектора міток; якщо воно присутнє, але порожнє, обираються всі простори імен. Якщо також встановлено podSelector, то NetworkPolicyPeer в цілому обирає поди, що відповідають podSelector, у просторах імен, обраних namespaceSelector. В іншому випадку обираються всі поди у просторах імен, обраних namespaceSelector.
podSelector є селектором міток, який обирає поди. Це поле дотримується стандартної семантики селектора міток; якщо воно присутнє, але порожнє, обираються всі поди. Якщо також встановлено namespaceSelector, то NetworkPolicyPeer в цілому обирає поди, що відповідають podSelector, у просторах імен, обраних namespaceSelector. В іншому випадку обираються поди, що відповідають podSelector, у власному просторі імен політики.
NetworkPolicyPort
NetworkPolicyPort описує порт, на якому дозволено трафік
Поле
Опис
endPort integer
endPort вказує, що діапазон портів від port до endPort, якщо він встановлений, включно, повинен бути дозволений політикою. Це поле не може бути визначене, якщо поле port не визначене або якщо поле port визначене як іменований (рядок) порт. endPort повинен бути рівним або більшим за port.
port
port представляє порт для вказаного протоколу. Він може бути або числом, або іменованим портом на поді. Якщо це поле не вказане, це відповідає всім іменам та номерам портів. Якщо присутнє, лише трафік на вказаному протоколі ТА порті буде відповідати.
protocol string
protocol представляє протокол (TCP, UDP або SCTP), який повинен відповідати трафіку. Якщо не вказано, це поле за замовчуванням встановлюється на TCP.
Можливі значення enum:
"SCTP" це протокол SCTP.
"TCP" це протокол TCP.
"UDP" це протокол UDP.
Операції
post Create
HTTP Запит
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
Параметр шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
Параметр шляху
Назва
Тип
Опис
name
string
Назва NetworkPolicy
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
Параметр шляху
Назва
Тип
Опис
name
string
Назва NetworkPolicy
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
Параметр шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}
Параметр шляху
Назва
Тип
Опис
name
string
Назва NetworkPolicy
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies
Параметр шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/networkpolicies
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
ServiceCIDR визначає діапазон IP-адрес у форматі CIDR (наприклад, 192.168.0.0/24 або 2001:db2::/64). Цей діапазон використовується для виділення ClusterIP для обʼєктів Service.
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
ServiceCIDR
ServiceCIDR визначає діапазон IP-адрес у форматі CIDR (наприклад, 192.168.0.0/24 або 2001:db2::/64). Цей діапазон використовується для виділення ClusterIP для обʼєктів Service.
ServiceCIDRSpec визначає CIDR, які користувач хоче використовувати для виділення ClusterIP для обʼєктів Service.
Поле
Опис
cidrs string array
CIDRs визначає блоки IP-адрес у форматі CIDR (наприклад, "192.168.0.0/24" або "2001:db8::/64"), з яких виділяються ClusterIP для обʼєктів Service. Дозволено максимум два CIDR, по одному для кожної IP-сімейства. Це поле є незмінним.
ServiceCIDRStatus
ServiceCIDRStatus описує поточний стан ServiceCIDR.
Поле
Опис
conditions Condition array patch strategy: merge on key type
conditions містить масив metav1.Condition, які описують стан ServiceCIDR. Поточний стан сервісу
ServiceCIDRList
ServiceCIDRList містить список обʼєктів ServiceCIDR.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/networking.k8s.io/v1/servicecidrs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceCIDR
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/servicecidrs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceCIDR
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/networking.k8s.io/v1/watch/servicecidrs/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceCIDR
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/networking.k8s.io/v1/servicecidrs/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceCIDR
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/networking.k8s.io/v1/servicecidrs/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ServiceCIDR
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
RuntimeClass визначає клас середовища виконання контейнерів, підтримуваного в кластері. RuntimeClass використовується для визначення, яке середовище виконання контейнерів буде використовуватися для запуску всіх контейнерів у поді. RuntimeClass визначаються вручну користувачем або провайдером кластера і вказуються в PodSpec. Kubelet відповідає за розвʼязання посилання RuntimeClassName перед запуском пода. Для отримання додаткової інформації див. https://kubernetes.io/docs/concepts/containers/runtime-class/
apiVersion: node.k8s.io/v1
import "k8s.io/api/node/v1"
RuntimeClass
RuntimeClass визначає клас середовища виконання контейнерів, підтримуваного в кластері. RuntimeClass використовується для визначення, яке середовище виконання контейнерів буде використовуватися для запуску всіх контейнерів у поді. RuntimeClass визначаються вручну користувачем або провайдером кластера і вказуються в PodSpec. Kubelet відповідає за розвʼязання посилання RuntimeClassName перед запуском пода. Для отримання додаткової інформації див. https://kubernetes.io/docs/concepts/containers/runtime-class/
handler визначає відповідне середовище виконання та конфігурацію, яку реалізація CRI використовуватиме для обробки подів цього класу. Можливі значення залежать від конфігурації вузла та CRI. Передбачається, що всі обробники доступні на кожному вузлі, а обробники з однаковою назвою еквівалентні на кожному вузлі. Наприклад, обробник з назвою "runc" може вказувати, що OCI runtime runc (з використанням нативних контейнерів Linux) буде використовуватися для запуску контейнерів у поді. Обробник повинен бути написаний малими літерами, відповідати вимогам DNS Label (RFC 1123) і бути незмінним.
scheduling містить обмеження планування, щоб забезпечити, що поди, які працюють з цим RuntimeClass, плануються на вузли, які його підтримують. Якщо scheduling дорівнює nil, вважається, що цей RuntimeClass підтримується всіма вузлами.
Overhead представляє накладні ресурси, повʼязані з запуском пода.
Поле
Опис
podFixed object
podFixed представляє фіксовані накладні ресурси, повʼязані з запуском пода.
Scheduling
Scheduling визначає обмеження планування для вузлів, що підтримують RuntimeClass.
Поле
Опис
nodeSelector object
nodeSelector містить мітки, які повинні бути присутні на вузлах, що підтримують цей RuntimeClass. Поди, які використовують цей RuntimeClass, можуть бути заплановані лише на вузол, що відповідає цьому селектору. nodeSelector RuntimeClass обʼєднується з наявним nodeSelector пода. Будь-які конфлікти призведуть до відхилення пода під час допуску.
tolerations додаються (без дублікатів) до подів, що виконуються з цим RuntimeClass під час допуску, фактично об’єднуючи набір вузлів, які допускаються як для пода, так і для RuntimeClass.
Операції
post Create
HTTP Запит
POST /apis/node.k8s.io/v1/runtimeclasses
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/node.k8s.io/v1/watch/runtimeclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва RuntimeClass
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Останній спостережуваний стан PodDisruptionBudget.
PodDisruptionBudgetSpec
PodDisruptionBudgetSpec є описом PodDisruptionBudget.
Поле
Опис
maxUnavailable
Виселення дозволяється, якщо не більше "maxUnavailable" подів, обраних за допомогою "selector", будуть недоступні після виселення, тобто навіть за відсутності виселеного пода. Наприклад, можна запобігти всім добровільним виселенням, вказавши 0. Це взаємовиключне налаштування з "minAvailable".
minAvailable
Виселення дозволяється, якщо принаймні "minAvailable" подів, обраних за допомогою "selector", залишаться доступними після виселення, тобто навіть за відсутності виселеного пода. Наприклад, можна запобігти всім добровільним виселенням, вказавши "100%".
Запит міток для подів, виселення яких керується бюджетом розладів. Null-селектор не відповідатиме жодному поду, тоді як порожній ({}) селектор вибере всі поди в межах простору імен.
unhealthyPodEvictionPolicy string
UnhealthyPodEvictionPolicy визначає критерії для визначення, коли несправні поди слід розглядати для виселення. Поточна реалізація вважає справними поди, які мають елемент status.conditions з type="Ready" та status="True".
Дійсні політики: IfHealthyBudget та AlwaysAllow. Якщо політика не вказана, буде використано стандартну поведінку, яка відповідає політиці IfHealthyBudget.
Політика IfHealthyBudget означає, що запущені поди (status.phase="Running"), але ще не справні, можуть бути виселені лише якщо охоронюваний застосунок не має розладу (status.currentHealthy принаймні дорівнює status.desiredHealthy). Справні поди підлягатимуть виселенню відповідно до PDB.
Політика AlwaysAllow означає, що всі запущені поди (status.phase="Running"), але ще не справні, вважаються такими, що мають розлади, і можуть бути виселені незалежно від того, чи виконуються критерії в PDB. Це означає, що перспективні запущені поди застосунку з розладами можуть не мати шанс стати справними. Справні поди підлягатимуть виселенню відповідно до PDB. Додаткові політики можуть бути додані в майбутньому. Клієнти, які приймають рішення про виселення, повинні забороняти виселення несправних подів, якщо вони стикаються з невідомою політикою в цьому полі.
Можливі значення enum:
"AlwaysAllow" політика означає, що всі запущені поди (status.phase="Running"), але ще не справні, вважаються такими, що мають розлади, і можуть бути виселені незалежно від того, чи виконуються критерії в PDB. Це означає, що перспективні запущені поди застосунку з розладами можуть не мати шанс стати справними. Справні поди підлягатимуть виселенню відповідно до PDB.
"IfHealthyBudget" політика означає, що запущені поди (status.phase="Running"), але ще не справні, можуть бути виселені лише якщо охоронюваний застосунок не має розладу (status.currentHealthy принаймні дорівнює status.desiredHealthy). Справні поди підлягатимуть виселенню відповідно до PDB.
PodDisruptionBudgetStatus
PodDisruptionBudgetStatus представляє інформацію про стан PodDisruptionBudget. Статус може відставати від фактичного стану системи.
Поле
Опис
conditions Condition array patch strategy: злиття за ключем type
Conditions містить стан для PodDisruptionBudget. Контролер розладів встановлює умову DisruptionAllowed. Наступні значення відомі для поля reason (можуть бути додані додаткові причини в майбутньому):
SyncFailed: Контролер зіткнувся з помилкою і не зміг обчислити кількість дозволених розладів. Тому жодні розлади не дозволені, і стан умови буде False.
InsufficientPods: Кількість подів або дорівнює, або менше необхідної за PodDisruptionBudget. Жодні розлади не дозволені, і стан умови буде False.
SufficientPods: Кількість подів перевищує необхідну за PodDisruptionBudget. Умова буде True, і кількість дозволених розладів надається властивістю disruptionsAllowed.
currentHealthy integer
кількість поточних справних подів
desiredHealthy integer
мінімальна бажана кількість справних подів
disruptedPods object
DisruptedPods містить інформацію про поди, виселення яких було оброблено обробником субресурсу виселення API-сервера, але ще не було зафіксовано контролером PodDisruptionBudget. Под буде в цій мапі з моменту, коли API-сервер обробив запит на виселення, до моменту, коли контролер PDB побачить, що под був позначений для видалення (або після тайм-ауту). Ключ у мапі — це імʼя поду, а значення — час, коли API-сервер обробив запит на виселення. Якщо видалення не відбулося і под все ще існує, він буде автоматично видалений зі списку контролером PodDisruptionBudget через деякий час. Якщо все йде гладко, ця мапа повинна бути порожньою більшість часу. Велика кількість записів у мапі може свідчити про проблеми з видаленням подів.
disruptionsAllowed integer
Кількість розладів подів, які наразі дозволені.
expectedPods integer
загальна кількість подів, врахованих цим бюджетом розладів
observedGeneration integer
Останнє покоління, спостережене під час оновлення цього статусу PDB. DisruptionsAllowed та інша інформація про статус дійсні лише якщо observedGeneration дорівнює поколінню об'єкта PDB.
PodDisruptionBudgetList
PodDisruptionBudgetList є колекцією PodDisruptionBudgets.
POST /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodDisruptionBudget
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodDisruptionBudget
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodDisruptionBudget
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodDisruptionBudget
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodDisruptionBudget
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
AggregationRule є опціональним полем, яке описує, як побудувати Rules для цього ClusterRole. Якщо AggregationRule встановлено, то Rules керуються контролером, і прямі зміни до Rules будуть перезаписані контролером.
ClusterRoleSelectors містить список селекторів, які будуть використані для пошуку ClusterRoles та створення правил. Якщо будь-який із селекторів збігається, то дозволи ClusterRole будуть додані
Операції
post Create
HTTP Запит
POST /apis/rbac.authorization.k8s.io/v1/clusterroles
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/rbac.authorization.k8s.io/v1/clusterroles/{name}
Параметр шляху
Назва
Тип
Опис
name
string
Назва ClusterRole
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/clusterroles/{name}
Параметр шляху
Назва
Тип
Опис
name
string
Назва ClusterRole
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/rbac.authorization.k8s.io/v1/clusterroles
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}
Параметр шляху
Назва
Тип
Опис
name
string
Назва ClusterRole
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/clusterroles
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
ClusterRoleBinding посилається на ClusterRole, але не містить його. Може посилатися на ClusterRole у глобальному просторі імен і додає інформацію про те, хто через Subject.
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
ClusterRoleBinding
ClusterRoleBinding посилається на ClusterRole, але не містить його. Може посилатися на ClusterRole у глобальному просторі імен і додає інформацію про те, хто через Subject.
RoleRef може посилатися лише на ClusterRole у глобальному просторі імен. Якщо RoleRef не може бути розпізнаний, Authorizer повинен повернути помилку. Це поле є незмінним.
POST /apis/rbac.authorization.k8s.io/v1/clusterrolebindings
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ClusterRoleBinding
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ClusterRoleBinding
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ClusterRoleBinding
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Role
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Role
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Role
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/roles
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
RoleBinding посилається на роль, але не містить її. Може посилатися на роль у тому самому просторі імен або на ClusterRole у глобальному просторі імен. Додає інформацію про суб’єктів через Subjects та інформацію про простір імен, у якому вона існує. RoleBindings у певному просторі імен діють лише в цьому просторі імен.
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
RoleBinding
RoleBinding посилається на роль, але не містить її. Може посилатися на роль у тому самому просторі імен або на ClusterRole у глобальному просторі імен. Додає інформацію про суб’єктів через Subjects та інформацію про простір імен, у якому вона існує. RoleBindings у певному просторі імен діють лише в цьому просторі імен.
RoleRef може посилатися на роль у поточному просторі імен або на ClusterRole у глобальному просторі імен. Якщо RoleRef не може бути розпізнаний, Authorizer повинен повернути помилку. Це поле є незмінним.
POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва RoleBinding
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва RoleBinding
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/rolebindings
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва RoleBinding
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/rbac.authorization.k8s.io/v1/watch/rolebindings
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
DeviceClass є ресурсом, наданим постачальником або адміністратором, який містить конфігурацію пристрою та селектори. Він може бути використаний у запитах на пристрої для застосування цих налаштувань. Область дії обмежена кластером.
apiVersion: resource.k8s.io/v1
import "k8s.io/api/resource/v1"
DeviceClass
DeviceClass є ресурсом, наданим постачальником або адміністратором, який містить конфігурацію пристрою та селектори. Він може бути використаний у запитах на пристрої для застосування цих налаштувань. Область дії обмежена кластером.
Spec визначає, що можна виділити та як це налаштувати. Це змінюване поле. Споживачі повинні бути готові до змін класів у будь-який час, або через їх оновлення, або заміну. Розподілення заявок здійснюється один раз на основі того, що було встановлено в класах на момент виділення. Зміна spec автоматично збільшує номер metadata.generation.
DeviceClassSpec
DeviceClassSpec використовується в DeviceClass для визначення того, що можна виділити та як це налаштувати.
Config визначає параметри конфігурації, які застосовуються до кожного пристрою, що заявлений через цей клас. Деякі класи можуть потенційно задовольнятися кількома драйверами, тому кожен екземпляр конфігурації постачальника застосовується точно до одного драйвера. Вони передаються драйверу, але не враховуються при розподілі заявки.
extendedResourceName string
ExtendedResourceName є розширеною назвою ресурсу для пристроїв цього класу. Пристрої цього класу можуть використовуватися для задоволення запитів на розширені ресурси пода. Вона має той самий формат, що й назва розширеного ресурсу пода. Вона повинна бути унікальною серед усіх класів пристроїв у кластері. Якщо два класи пристроїв мають однакову назву, то для задоволення запитів на розширені ресурси пода обирається клас, створений пізніше. Якщо два класи створені одночасно, то обирається клас, назва якого лексикографічно перша. Це бета-поле.
CELDeviceSelector містить CEL-вираз для вибору пристрою.
Поле
Опис
expression* string
Expression є виразом CEL, який оцінює один пристрій. Він повинен оцінюватися як true, коли розглянутий пристрій відповідає бажаним критеріям, і як false, коли не відповідає. Будь-який інший результат є помилкою і призводить до припинення виділення пристроїв.
Вхідні дані: вираз отримує об'єкт з назвою "device", який має наступні властивості:
driver (string): назва драйвера, який визначає цей пристрій.
attributes (map[string]object): атрибути пристрою, згруповані за префіксом (наприклад, device.attributes["dra.example.com"] оцінюється як об'єкт з усіма атрибутами, які мали префікс "dra.example.com").
capacity (map[string]object): ємності пристрою, згруповані за префіксом.
allowMultipleAllocations (bool): властивість allowMultipleAllocations пристрою (v1.34+ з увімкненою функцією DRAConsumableCapacity).
Приклад: Розглянемо пристрій з driver="dra.example.com", який має два атрибути з назвами "model" та "ext.example.com/family" і один ресурс з назвою "modules". Вхідні дані для цього виразу матимуть наступні поля:
Поле device.driver можна використовувати для перевірки конкретного драйвера, або як високорівневу передумову (тобто ви хочете розглядати лише пристрої від цього драйвера), або як частину виразу з кількома умовами, який призначений для розгляду пристроїв від різних драйверів.
Тип значення кожного атрибута визначається визначенням пристрою, і користувачі, які пишуть ці вирази, повинні консультуватися з документацією для своїх конкретних драйверів. Тип значення кожної ємності — Quantity.
Якщо використовується невідомий префікс для пошуку в device.attributes або device.capacity, буде повернута порожня мапа. Будь-яке посилання на невідоме поле призведе до помилки оцінки та припинення виділення.
Надійний вираз повинен перевіряти наявність атрибутів перед їх використанням.
Для зручності використання функція cel.bind() увімкнена і може використовуватися для спрощення виразів, які отримують доступ до кількох атрибутів з одного домену. Наприклад:
Коли функціональна можливість DRAListTypeAttributes увімкнена, доступний допоміжний метод includes(), який може працювати як для скалярних, так і для спискових атрибутів. Він був введений для підтримки плавної міграції від скалярних атрибутів до спискових, зберігаючи простоту виразів CEL. Наприклад:
OpaqueDeviceConfiguration містить параметри конфігурації для драйвера у форматі, визначеному постачальником драйвера.
Поле
Опис
driver* string
Driver використовується для визначення, який втулок kubelet повинен отримати ці параметри конфігурації. Політика допуску, надана розробником драйвера, може використовувати це для вирішення, чи потрібно їй перевіряти їх. Повинно бути субдоменом DNS і повинно закінчуватися доменом DNS, що належить постачальнику драйвера. Повинно використовувати лише малі літери.
parameters*
Parameters можуть містити довільні дані. Відповідальність за перевірку та керування версіями покладається на розробника драйверів. Зазвичай це включає самоідентифікацію та версію ("kind" + "apiVersion" для типів Kubernetes), а також конвертацію між різними версіями. Довжина вихідних даних повинна бути меншою або дорівнювати 10 Ki.
Операції
post Create
HTTP Запит
POST /apis/resource.k8s.io/v1/deviceclasses
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/watch/deviceclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва DeviceClass
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
DeviceTaintRule додає одну позначку taint до всіх пристроїв, які відповідають селектору. Це має той самий ефект, якби taint був вказаний безпосередньо в ResourceSlice драйвером DRA.
apiVersion: resource.k8s.io/v1beta2
import "k8s.io/api/resource/v1beta2"
DeviceTaintRule
DeviceTaintRule додає одну позначку taint до всіх пристроїв, які відповідають селектору. Це має той самий ефект, якби taint був вказаний безпосередньо в ResourceSlice драйвером DRA.
DeviceSelector визначає, до яких пристроїв застосовується taint. Всі критерії селектора повинні бути виконані, щоб пристрій відповідав умовам. Порожній селектор відповідає всім пристроям. Без селектора жоден пристрій не відповідає умовам.
Позначка taint, яка застосовується до відповідних пристроїв.
DeviceTaintRuleStatus
DeviceTaintRuleStatus надає інформацію про поточне виселення подів.
Поле
Опис
conditions Condition array patch strategy: merge on key type
Conditions надають інформацію про стан DeviceTaintRule та кластера в певний момент часу у машинозчитуваному та зручному для людини форматі. Поточний стан визначається як частина цього API, можуть бути додані інші:
Type: EvictionInProgress
Status: True, якщо наразі є поди, які потрібно виселити, False в іншому випадку (включає ефекти, які не призводять до виселення).
Reason: не вказано, може змінюватися
Message: містить інформацію про кількість очікуючих подів та вже виселених подів у зручному для людини форматі, оновлюється періодично, може змінюватися
Для effect: None, наведена вище умова встановлюється один раз для кожної зміни в spec, з повідомленням, що містить інформацію про те, що станеться, якщо ефект буде NoExecute. Цей відгук можна використовувати для вирішення, чи змінювати ефект на NoExecute буде працювати як задумано. Він встановлюється лише один раз, щоб уникнути постійного оновлення статусу. Має містити не більше 8 записів.
DeviceTaintSelector визначає, до яких пристроїв застосовується DeviceTaintRule. Порожній селектор має збіг зі всіма пристроями. Без селектора жоден пристрій збігу не має.
Поле
Опис
device string
Якщо device встановлено, вибираються лише пристрої з цим імʼям. Це поле відповідає slice.spec.devices[].name. Може знадобитися також встановити driver та pool, щоб уникнути неоднозначності, але це не обовʼязково.
driver string
Якщо driver встановлено, вибираються лише пристрої з цим драйвером. Це поле відповідає slice.spec.driver.
pool string
Якщо pool встановлено, вибираються лише пристрої з цього пулу. Також може бути корисно встановити імʼя драйвера, щоб уникнути неоднозначності, коли різні драйвери використовують однакове імʼя пулу, але це не обовʼязково, оскільки вибір пулів від різних драйверів також може бути корисним, наприклад, коли драйвери з локальними пристроями на вузлі використовують імʼя вузла як імʼя пулу.
Операції
post Create
HTTP Запит
POST /apis/resource.k8s.io/v1beta2/devicetaintrules
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/resource.k8s.io/v1beta2/devicetaintrules/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва DeviceTaintRule
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1beta2/devicetaintrules/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва DeviceTaintRule
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/resource.k8s.io/v1beta2/devicetaintrules
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1beta2/watch/devicetaintrules/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва DeviceTaintRule
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1beta2/watch/devicetaintrules
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/resource.k8s.io/v1beta2/devicetaintrules/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва DeviceTaintRule
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/resource.k8s.io/v1beta2/devicetaintrules/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва DeviceTaintRule
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
ResourceClaim описує запит на доступ до ресурсів у кластері для використання робочими навантаженнями. Наприклад, якщо робоче навантаження потребує пристрою-акселератора з конкретними властивостями, це саме той спосіб, як цей запит виражається. Розділ статусу відстежує, чи було задоволено цей запит і які конкретні ресурси були виділені.
apiVersion: resource.k8s.io/v1
import "k8s.io/api/resource/v1"
ResourceClaim
ResourceClaim описує запит на доступ до ресурсів у кластері для використання робочими навантаженнями. Наприклад, якщо робоче навантаження потребує пристрою-акселератора з конкретними властивостями, це саме той спосіб, як цей запит виражається. Розділ статусу відстежує, чи було задоволено цей запит і які конкретні ресурси були виділені.
Devices містить стан кожного пристрою, виділеного для цього запиту, як повідомляє драйвер. Це може включати інформацію, специфічну для драйвера. Записи належать відповідним драйверам.
ReservedFor вказує, які сутності наразі мають право використовувати запит. Pod, який посилається на ResourceClaim, який не зарезервований для цього Podʼа, не буде запущено. Запит, який використовується або може бути використаний, оскільки він був зарезервований, не повинен бути деалокований.
У кластері з кількома екземплярами планувальника два Podʼи можуть бути заплановані одночасно різними планувальниками. Коли вони посилаються на той самий ResourceClaim, який вже досяг максимальної кількості споживачів, лише один Pod може бути запланований.
Обидва планувальники намагаються додати свій Pod до поля claim.status.reservedFor, але лише оновлення, яке першим досягає API-сервера, зберігається. Інше оновлення завершується з помилкою, і планувальник, який його видав, знає, що він повинен повернути Pod назад у чергу, чекаючи, поки ResourceClaim знову стане доступним.
Може бути не більше 256 таких резервувань. Це число може бути збільшене в майбутньому, але не зменшене.
Conditions містить останнє спостереження стану пристрою. Якщо пристрій було налаштовано відповідно до класу та посилань на конфігурацію заявки, стан Ready повинна бути True. Не повинно містити більше 8 записів.
data
Data містить довільні дані, специфічні для драйвера. Довжина сирих даних повинна бути меншою або рівною 10 Ki.
device* string
Device посилається на один екземпляр пристрою за його імʼям у пулі ресурсів драйвера. Це повинно бути DNS-міткою.
driver* string
Driver вказує назву драйвера DRA, втулок kubelet якого повинен бути викликаний для обробки виділення, коли заявка потрібна на вузлі. Повинно бути субдоменом DNS і закінчуватися доменом DNS, що належить постачальнику драйвера. Повинно використовувати лише малі літери.
NetworkData містить інформацію, повʼязану з мережею, специфічну для пристрою.
pool* string
Це імʼя разом із назвою драйвера та полем імені пристрою визначає, який пристрій було виділено (<driver name>/<pool name>/<device name>). Не повинно бути довшим за 253 символи і може містити один або кілька піддоменів DNS, розділених слешами.
shareID string
ShareID унікально ідентифікує окрему частку виділення пристрою.
AllocationResult
AllocationResult містить атрибути виділеного ресурсу.
AllocationTimestamp зберігає час, коли ресурси були виділені. Це поле не гарантується до встановлення, у такому випадку час невідомий. Це бета-поле і вимагає увімкнення функцій DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.
NodeSelector визначає, де доступні виділені ресурси. Якщо не встановлено, вони доступні скрізь.
CapacityRequirements
CapacityRequirements визначає вимоги до ємності для конкретного запиту пристрою.
Поле
Опис
requests object
Requests представляє індивідуальні запити ресурсів пристрою для різних ресурсів, всі з яких повинні бути надані пристроєм.
Це значення використовується як додаткова умова фільтрації проти доступної ємності на пристрої. Це семантично еквівалентно селектору CEL з device.capacity[<domain>].<name>.compareTo(quantity(<request quantity>)) >= 0. Наприклад, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0.
Коли визначено requestPolicy, запитана кількість коригується вгору до найближчого допустимого значення на основі політики. Якщо запитана кількість не може бути скоригована до допустимого значення, тому що вона перевищує те, що дозволяє requestPolicy, пристрій вважається непридатним для виділення.
Для будь-якої ємності, яка явно не запитується:
Якщо requestPolicy не встановлено, споживана ємність зазвичай дорівнює повній ємності пристрою (тобто весь пристрій затребувано).
Якщо requestPolicy встановлено, споживана ємність зазвичай визначається відповідно до цієї політики. Якщо пристрій дозволяє кілька виділень, агрегована кількість по всіх запитах не повинна перевищувати значення ємності. Споживана ємність, яка може бути скоригована на основі requestPolicy, якщо вона визначена, записується в поле status.devices[*].consumedCapacity ресурсу claim.
DeviceAllocationConfiguration
DeviceAllocationConfiguration вбудовується в об’єкт AllocationResult.
Opaque надає параметри конфігурації, специфічні для драйвера.
requests string array
Requests перераховує імена запитів, до яких застосовується конфігурація. Якщо порожньо, конфігурація застосовується до всіх запитів. Посилання на підзапити повинні включати імʼя основного запиту і можуть включати підзапит у форматі <main request>[/<subrequest>]. Якщо вказано лише основний запит, конфігурація застосовується до всіх підзапитів.
source* string
Source записує, чи конфігурація походить від класу, і таким чином не є чимось, що звичайний користувач міг би встановити, або від запиту.
Можливі значення enum:
"FromClaim"
"FromClass"
DeviceAllocationResult
DeviceAllocationResult є результатом виділення пристроїв.
Це поле є комбінацією всіх параметрів конфігурації запиту та класу. Драйвери можуть відрізняти їх на основі прапорця. Це включає параметри конфігурації для драйверів, які не мають виділених пристроїв у результаті, оскільки це залежить від драйверів, які параметри конфігурації вони підтримують. Вони можуть мовчки ігнорувати невідомі параметри конфігурації.
Це поле містить конфігурацію для кількох потенційних драйверів, які можуть задовольнити запити у цій заявці. Воно ігнорується під час призначення заявки.
Opaque надає параметри конфігурації, специфічні для драйвера.
requests string array
Requests перераховує імена запитів, до яких застосовується конфігурація. Якщо порожньо, конфігурація застосовується до всіх запитів. Посилання на підзапити повинні включати імʼя основного запиту і можуть включати підзапит у форматі <main request>[/<subrequest>]. Якщо вказано лише основний запит, конфігурація застосовується до всіх підзапитів.
DeviceConstraint
DeviceConstraint повинен мати тільки одне поле, встановлене крім Requests.
Поле
Опис
distinctAttribute string
DistinctAttribute вимагає, щоб усі відповідні пристрої мали цей атрибут, а його тип і значення були унікальними для всіх цих пристроїв.
Коли функціональна можливість DRAListTypeAttributes увімкнена, порівняння здійснюється за семантикою множин (тобто порядок елементів та дублікати ігноруються): атрибути зі значенням у вигляді списку не повинні повторюватися на різних пристроях. Скалярні значення розглядаються як множини з одним елементом задля забезпечення зворотної сумісності.
Це діє як протилежність MatchAttribute.
Це обмеження використовується для уникнення розподілу кількох запитів на той самий пристрій, забезпечуючи диференціацію на рівні атрибутів.
Це корисно для сценаріїв, де запити на ресурси повинні виконуватися окремими фізичними пристроями. Наприклад, контейнер запитує два мережеві інтерфейси, які повинні бути розподілені між двома різними фізичними мережевими картами.
matchAttribute string
MatchAttribute вимагає, щоб усі пристрої, про які йдеться, мали цей атрибуту, а його тип і значення були однаковими для всіх цих пристроїв.
Коли функціональна можливість DRAListTypeAttributes увімкнена, порівняння здійснюється за семантикою множин (тобто порядок елементів та дублікати ігноруються): атрибути зі значенням у вигляді списку збігаються, коли перетин усіх пристроїв непорожній. Скалярні значення розглядаються як множини з одним елементом задля забезпечення зворотної сумісності.
Наприклад, якщо ви вказали "dra.example.com/numa" (гіпотетичний приклад!), то будуть обрані лише пристрої в одному й тому самому NUMA-вузлі. Пристрій, який не має цього атрибуту, не буде обраний. Усі пристрої повинні використовувати значення одного типу для цього атрибуту, оскільки це є частиною його специфікації, але якщо якийсь пристрій цього не робить, він також не буде обраний.
Має включати доменний кваліфікатор.
requests string array
Requests є списком з одного або більше запитів у цій заявці, які мають спільно задовольняти цю умову. Якщо запит виконується кількома пристроями, то всі пристрої повинні відповідати цій умові. Якщо це не вказано, ця умова застосовується до всіх запитів у заявці.
Посилання на підзапити повинні включати імʼя основного запиту і можуть включати підзапит у форматі <main request>[/<subrequest>]. Якщо вказано лише основний запит, обмеження застосовується до всіх підзапитів.
DeviceRequest
DeviceRequest є запитом на пристрої, необхідні для задоволення заявки. Зазвичай це заявка на один ресурс, такий як пристрій, але також може бути заявка на кілька ідентичних пристроїв. За допомогою FirstAvailable також можливо надати пріоритетний список запитів.
Exactly вказує деталі для одного запиту, який повинен бути виконаний точно для задоволення запиту. Потрібно встановити одне з полів Exactly або FirstAvailable.
FirstAvailable містить підзапити, з яких планувальник вибере тільки один. Він намагається задовольнити їх у порядку, в якому вони перелічені тут. Тому, якщо в списку два записи, планувальник перевірить другий лише тоді, якщо визначить, що перший не може бути використаний.
DRA ще не виконує оцінювання, тому планувальник вибере перший набір пристроїв, який задовольняє всі запити в заявці. І якщо вимоги можуть бути задоволені на більш ніж одному вузлі, інші функції планування визначать, який вузол буде обраний. Це означає, що набір пристроїв, виділених для заявки, може не бути оптимальним набором, доступним у кластері. Оцінювання буде реалізовано пізніше.
name* string
Name може використовуватись для посилання на цей запит у записі pod.spec.containers[].resources.claims та в обмеженні заявки.
Посилання з використанням імені в DeviceRequest унікально ідентифікує запит, коли встановлено поле Exactly. Коли встановлено поле FirstAvailable, посилання на ім'я DeviceRequest відповідатиме будь-якому підзапиту, обраному планувальником.
Має бути міткою DNS.
DeviceRequestAllocationResult
DeviceRequestAllocationResult містить результат розподілу для одного запиту.
Поле
Опис
adminAccess boolean
AdminAccess вказує, що цей пристрій був виділений для адміністративного доступу. Див. відповідне поле запиту для визначення режиму. Адміністративний доступ вимкнено, якщо це поле не встановлено або встановлено в false, інакше він увімкнено.
bindingConditions string array
BindingConditions містить копію BindingConditions з відповідного ResourceSlice на момент виділення. Це бета-поле і вимагає увімкнення функціональних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.
bindingFailureConditions string array
BindingFailureConditions містить копію BindingFailureConditions з відповідного ResourceSlice на момент виділення. Це бета-поле і вимагає увімкнення функціональних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.
consumedCapacity object
ConsumedCapacity відстежує кількість спожитої ємності на пристрій у рамках запиту на виділення. Спожита кількість може відрізнятися від запитаної: вона округлюється до найближчого допустимого значення на основі requestPolicy пристрою, якщо це застосовно (тобто не може бути менше запитаної кількості).
Загальна спожита ємність для кожного пристрою не повинна перевищувати значення DeviceCapacity.
Це поле заповнюється лише для пристроїв, які дозволяють кілька виділень. Всі записи про ємність включені, навіть якщо спожита кількість дорівнює нулю.
device* string
Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
driver* string
Driver визначає імʼя драйвера DRA, втулок kubelet якого повинен бути викликаний для обробки виділення, коли запит потрібен на вузлі.
Має бути піддоменом DNS і повинен закінчуватися доменом DNS, що належить постачальнику драйвера. Повинні використовуватися лише малі літери.
pool* string
Це імʼя разом з імʼям драйвера та імʼям пристрою визначає, який пристрій був виділений (<driver name>/<pool name>/<device name>).
Не повинно перевищувати 253 символи і може містити один або кілька піддоменів DNS, розділених слешами.
request* string
Request є імʼям запиту в заявці, який спричинив виділення цього пристрою. Якщо він посилається на підзапит у списку firstAvailable у DeviceRequest, це поле повинно включати як імʼя основного запиту, так і підзапиту, використовуючи формат <main request>/<subrequest>. Може бути виділено кілька пристроїв на один запит.
shareID string
ShareID унікально ідентифікує окрему частку виділення пристрою, використовується, коли пристрій підтримує кілька одночасних виділень. Служить додатковим ключем мапи для розрізнення одночасних часток одного й того ж пристрою.
Копія всіх толерацій, зазначених у запиті на момент виділення пристрою. Максимальна кількість толерацій — 16. Це бета-поле і вимагає увімкнення функціональної можливості DRADeviceTaints.
DeviceSubRequest
DeviceSubRequest описує запит на пристрій, наданий у масиві claim.spec.devices.requests[].firstAvailable. Кожен елемент зазвичай є запитом на один ресурс, наприклад, пристрій, але також може запитувати кілька ідентичних пристроїв.
DeviceSubRequest схожий на ExactDeviceRequest, але не розкриває поле AdminAccess, оскільки воно підтримується лише при запиті конкретного пристрою.
Поле
Опис
allocationMode string
AllocationMode та повʼязані з ним поля визначають, як пристрої виділяються для задоволення цього підзапиту. Підтримувані значення:
ExactCount: Цей запит стосується конкретної кількості пристроїв. Це стандартне значення. Точна кількість вказується в полі count.
All: Цей підзапит стосується всіх відповідних пристроїв у пулі. Виділення не вдасться, якщо деякі пристрої вже виділені, якщо не запитано adminAccess.
Якщо AllocationMode не вказано, стандартний режим — ExactCount. Якщо режим ExactCount і count не вказано, стандартне значення — один. Будь-які інші підзапити повинні вказувати це поле.
У майбутньому можуть бути додані інші режими. Клієнти повинні відмовлятися обробляти запити з невідомими режимами.
Capacity визначає вимоги до ресурсів для кожної ємності.
Якщо це поле не встановлено і пристрій підтримує кілька виділень, стандартне значення буде застосовано до кожної ємності відповідно до requestPolicy. Для ємності, яка не має requestPolicy, стандартне значення — повне значення ємності.
Застосовується до кожного виділення пристрою. Якщо Count > 1, запит не вдасться, якщо немає достатньої кількості пристроїв, що відповідають вимогам. Якщо AllocationMode встановлено на All, запит не вдасться, якщо є пристрої, які інакше відповідають запиту, і мають цю ємність, зі значенням >= запитаного, але які не можуть бути виділені для цього запиту.
count integer
Count використовується лише тоді, коли режим підрахунку — "ExactCount". Має бути більше нуля. Якщо AllocationMode встановлено на ExactCount і це поле не вказано, стандартне значення — один.
deviceClassName* string
DeviceClassName посилається на конкретний DeviceClass, який може визначати додаткову конфігурацію та селектори, які будуть успадковані цим підзапитом.
Клас є обовʼязковим. Доступні класи залежать від кластера.
Адміністратори можуть використовувати це для обмеження, які пристрої можуть бути запитані, встановлюючи лише класи з селекторами для дозволених пристроїв. Якщо користувачі можуть запитувати будь-що без обмежень, адміністратори можуть створити порожній DeviceClass для користувачів для посилання.
name* string
Name може використовуватися для посилання на цей підзапит у списку обмежень або списку конфігурацій для запиту. Посилання повинні використовувати формат <main request>/<subrequest>.
Selectors визначають критерії, які повинні бути виконані конкретним пристроєм, щоб цей пристрій був розглянутий для цього підзапиту. Всі селектори повинні бути виконані, щоб пристрій був розглянутий.
Толерації для NoSchedule потрібні для виділення пристрою, який має позначку taint з цим ефектом. Те ж саме стосується NoExecute.
Крім того, якщо будь-який з виділених пристроїв отримає taint NoExecute після виділення і цей ефект не толерується, тоді всі поди, що використовують ResourceClaim, будуть видалені для їх виселення. Планувальник не дозволить новим подам резервувати запит, поки він має ці позначені taint пристрої. Після виселення всіх подів, запит буде деактивовано.
Максимальна кількість толерацій — 16.
Це бета-поле і вимагає увімкнення функціональної можливості DRADeviceTaints
.
DeviceToleration
ResourceClaim, до якого приєднано цей DeviceToleration, допускає будь-який taint, що відповідає трійці <key,value,effect> за допомогою оператора зіставлення <operator>.
Поле
Опис
effect string
Effect вказує ефект taint, який має мати збіг. Порожнє значення означає відповідність всім ефектам taint. Якщо вказано, дозволені значення: NoSchedule та NoExecute.
Можливі значення enum:
"NoExecute" Виселити будь-які вже запущені поди, які не толерують taint пристрою.
"NoSchedule" Не дозволяти новим подам плануватися на використання пристрою позначеного taint, якщо вони не толерують taint, але дозволяти всім подам, поданим до Kubelet без проходження через планувальник, запускатися, і дозволяти всім вже запущеним подам продовжувати працювати.
"None" Без ефекту, taint є чисто інформаційним.
key string
Key є ключем taint, до якого застосовується толерантність. Порожнє значення означає відповідність всім ключам taint. Якщо ключ порожній, оператор повинен бути Exists; ця комбінація означає відповідність всім значенням і всім ключам. Має бути імʼям мітки.
operator string
Operator представляє відношення ключа до значення. Дійсні оператори: Exists та Equal. Стандартно використовується Equal. Exists еквівалентний символу підстановки для значення, щоб ResourceClaim міг толерувати всі taint певної категорії.
Можливі значення enum:
"Equal" Значення повинно точно збігатися.
"Exists" Існування ключа достатньо для відповідності.
tolerationSeconds integer
TolerationSeconds представляє період часу, протягом якого толерантність (яка повинна мати ефект NoExecute, інакше це поле ігнорується) толерує taint. Стандартно не встановлено, що означає толерувати taint назавжди (не виселяти). Нульові та відʼємні значення будуть розглядатися як 0 (виселити негайно) системою. Якщо більше нуля, час, коли под потрібно виселити, обчислюється як <time when taint was added> + <toleration seconds>.
value string
Value є значенням taint, до якого застосовується толерантність. Якщо оператор Exists, значення повинно бути порожнім, інакше це просто звичайний рядок. Має бути значенням мітки.
ExactDeviceRequest
ExactDeviceRequest є запитом на один або декілька ідентичних пристроїв.
Поле
Опис
adminAccess boolean
AdminAccess вказує, що це запит на адміністративний доступ до пристрою(ів). Очікується, що заявки з AdminAccess використовуватимуться для моніторингу або інших служб управління пристроєм.
Вони ігнорують всі звичайні запити до пристрою щодо режимів доступу та будь-яких виділень ресурсів.
Адміністративний доступ вимкнено, якщо це поле не встановлено або встановлено в false, інакше він увімкнений.
allocationMode string
AllocationMode та повʼязані з ним поля визначають, як пристрої виділяються для задоволення цього запиту. Підтримувані значення:
ExactCount: Цей запит стосується конкретної кількості пристроїв. Це стандартне значення. Точна кількість вказується у полі count.
All: Цей запит стосується всіх відповідних пристроїв у пулі. Принаймні один пристрій повинен існувати на вузлі для успішного виділення.
Розподіл завершиться невдачею, якщо деякі пристрої вже розподілені, за винятком випадків, коли запитується доступ адміністратора (adminAccess). Якщо параметр AllocationMode не вказано, зазвичай використовується режим ExactCount. Якщо встановлено режим ExactCount, а кількість (count) не вказано, стандартною кількістю вважається одиниця. У всіх інших запитах це поле має бути обов’язково вказано.
Можуть бути додані нові режими в майбутньому. Клієнти повинні відмовитися від обробки запитів із невідомими режимами.
Capacity визначає вимоги до ресурсів для кожної ємності.
Якщо поле не встановлено і пристрій підтримує кілька виділень, стандартне значення буде застосовано до кожної ємності відповідно до requestPolicy. Для ємності, яка не має requestPolicy, стандартне значення дорівнює повній ємності.
Застосовується до кожного виділення пристрою. Якщо Count > 1, запит не вдасться, якщо немає достатньої кількості пристроїв, що відповідають вимогам. Якщо AllocationMode встановлено на All, запит не вдасться, якщо є пристрої, які інакше відповідають запиту, і мають цю ємність, зі значенням >= запитаного, але які не можуть бути виділені для цього запиту.
count integer
Count використовується лише тоді, коли режим підрахунку встановлено на "ExactCount". Має бути більше нуля. Якщо AllocationMode встановлено на ExactCount і це поле не вказано, за замовчуванням використовується один.
deviceClassName* string
DeviceClassName посилається на конкретний DeviceClass, який може визначати додаткову конфігурацію та селектори, що успадковуються цим запитом.
DeviceClassName є обовʼязковим.
Адміністратори можуть використовувати це для обмеження, які пристрої можуть бути запитані, встановлюючи лише класи з селекторами для дозволених пристроїв. Якщо користувачі можуть запитувати будь-що без обмежень, адміністратори можуть створити порожній DeviceClass для посилання користувачів.
Selectors визначають критерії, які повинні бути виконані конкретним пристроєм, щоб цей пристрій був розглянутий для цього запиту. Всі селектори повинні бути виконані, щоб пристрій був розглянутий.
Толерантності для NoSchedule потрібні для виділення пристрою, який має taint з цим ефектом. Те ж саме стосується NoExecute.
Крім того, якщо будь-який з виділених пристроїв отримає taint з NoExecute після виділення і цей ефект не толерується, тоді всі поди, що використовують ResourceClaim, будуть видалені для їх виселення. Планувальник не дозволить новим подам резервувати запит, поки він має ці, позначені taint, пристрої. Після виселення всіх подів, запит буде деактивовано.
Максимальна кількість толерантностей — 16.
Це бета-поле і вимагає увімкнення функціональної можливості DRADeviceTaints.
NetworkDeviceData
NetworkDeviceData надає деталі, повʼязані з мережею, для виділеного пристрою. Ця інформація може бути заповнена драйверами або іншими компонентами для налаштування або ідентифікації пристрою в контексті мережі.
Поле
Опис
hardwareAddress string
HardwareAddress представляє апаратну адресу (наприклад, MAC-адресу) мережевого інтерфейсу пристрою.
Не повинна перевищувати 128 байт.
interfaceName string
InterfaceName вказує назву мережевого інтерфейсу, повʼязаного з виділеним пристроєм. Це може бути назва фізичного або віртуального мережевого інтерфейсу, який налаштовується в поді.
Не повинна перевищувати 256 байт.
ips string array
IPs список мережевих адрес, призначених мережевому інтерфейсу пристрою. Це може включати як IPv4, так і IPv6 адреси. IP-адреси вказуються в нотації CIDR, яка включає як адресу, так і відповідну маску підмережі. Наприклад: "192.0.2.5/24" для IPv4 та "2001:db8::5/64" для IPv6.
ResourceClaimConsumerReference
ResourceClaimConsumerReference містить достатньо інформації, щоб дозволити вам знайти споживача ResourceClaim. Користувач повинен бути ресурсом у тому ж просторі імен, що й ResourceClaim.
Поле
Опис
apiGroup string
APIGroup є групою для ресурсу, на який посилаються. Для основного API вона порожня. Це відповідає групі в APIVersion, яка використовується при створенні ресурсів.
name* string
Name є назвою ресурсу, на який посилаються.
resource* string
Resource є типом ресурсу, на який посилаються, наприклад "pods".
uid* string
UID ідентифікує точно одну інкарнацію ресурсу.
Операції
post Create
HTTP Запит
POST /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaims
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaims/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaims/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaims
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/watch/namespaces/{namespace}/resourceclaims/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/watch/namespaces/{namespace}/resourceclaims
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaims/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaims/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaim
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Описує ResourceClaim, який має бути створений. Це поле є незмінним. ResourceClaim буде створено панеллю управління для Podʼа, коли це буде потрібно, і більше не буде оновлюватися.
ResourceClaimTemplateSpec
ResourceClaimTemplateSpec містить метадані та поля для ResourceClaim.
ObjectMeta може містити мітки та анотації, які будуть скопійовані в ResourceClaim під час його створення. Жодні інші поля не дозволяються і будуть відхилені під час перевірки.
Spec для ResourceClaim. Весь вміст копіюється без змін у ResourceClaim, який створюється з цього шаблону. Ті самі поля, що й у ResourceClaim, також дійсні тут.
ResourceClaimTemplateList
ResourceClaimTemplateList є колекцією шаблонів запитів.
POST /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaimtemplates
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaimtemplates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaimTemplate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaimtemplates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaimTemplate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/resource.k8s.io/v1/namespaces/{namespace}/resourceclaimtemplates
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/resourceclaimtemplates
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/watch/namespaces/{namespace}/resourceclaimtemplates/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceClaimTemplate
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/watch/namespaces/{namespace}/resourceclaimtemplates
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/watch/resourceclaimtemplates
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
ResourcePoolStatusRequest запускає одноразовий розрахунок стану пулу ресурсів на основі наданих фільтрів. Після встановлення стану запит вважається завершеним і не буде повторно оброблятися. Користувачі повинні видаляти та створювати запити заново, щоб отримати оновлену інформацію.
apiVersion: resource.k8s.io/v1alpha3
import "k8s.io/api/resource/v1alpha3"
ResourcePoolStatusRequest
ResourcePoolStatusRequest запускає одноразовий розрахунок стану пулу ресурсів на основі наданих фільтрів. Після встановлення стану запит вважається завершеним і не буде повторно оброблятися. Користувачі повинні видаляти та створювати запити заново, щоб отримати оновлену інформацію.
Status заповнюється контролером з обчисленим станом пулу. Коли status не є nil, запит вважається завершеним, і весь обʼєкт стає незмінним.
ResourcePoolStatusRequestSpec
ResourcePoolStatusRequestSpec defines the filters for the pool status request.
Поле
Опис
driver* string
Driver визначає назву драйвера DRA для фільтрації пулів. Включаються лише пули з ResourceSlices з цим драйвером. Має бути піддоменом DNS (наприклад, "gpu.example.com").
limit integer
Limit необовʼязково визначає максимальну кількість пулів для повернення у статусі. Якщо більше пулів відповідають критеріям фільтрації, відповідь буде скорочена (тобто len(status.pools) < status.poolCount).
Стандартно: 100 Мінімум: 1 Максимум: 1000
poolName string
PoolName необовʼязково фільтрує за конкретною назвою пулу. Якщо не вказано, включаються всі пули з зазначеного драйвера. Коли вказано, повинно бути непустим дійсним імʼям пулу ресурсів (піддомени DNS, розділені "/").
ResourcePoolStatusRequestStatus
ResourcePoolStatusRequestStatus містить обчислену інформацію про стан пулу.
Поле
Опис
conditions Condition array patch strategy: merge on key type
Conditions надають інформацію про стан запиту. Стан з type=Complete або type=Failed завжди буде встановлено, коли статус заповнено.
Відомі типи умов:
"Complete": True, коли запит було успішно оброблено
"Failed": True, коли запит не вдалося обробити
poolCount* integer
PoolCount є загальною кількістю пулів, які відповідають критеріям фільтрації, незалежно від усічення. Це допомагає користувачам зрозуміти, скільки пулів існує, навіть коли відповідь усічена. Значення 0 означає, що жоден пул не відповідав критеріям фільтрації.
Pools містить перші spec.limit відповідних пулів, відсортованих за драйвером, а потім за назвою пулу. Якщо len(pools) < poolCount, список був усічений. Коли пропущено, жоден пул не відповідав фільтрам запиту.
ResourcePoolStatusRequestList
ResourcePoolStatusRequestList є колекцією ResourcePoolStatusRequests.
PoolStatus містить інформацію про стан одного пулу ресурсів.
Поле
Опис
allocatedDevices integer
AllocatedDevices — це кількість пристроїв, які наразі виділені для запитів. Значення 0 означає, що жоден пристрій не виділено. Може бути не встановлено, коли встановлено validationError.
availableDevices integer
AvailableDevices — це кількість пристроїв, доступних для виділення. Це дорівнює TotalDevices - AllocatedDevices - UnavailableDevices. Значення 0 означає, що наразі жоден пристрій не доступний. Може бути не встановлено, коли встановлено validationError.
driver* string
Driver є імʼям драйвера DRA для цього пулу. Має бути піддоменом DNS (наприклад, "gpu.example.com").
generation* integer
Generation є поколінням пулу, спостережуваним у всіх ResourceSlices цього пулу. Звіт продається лише для останнього покоління. Під час розгортання покоління, якщо не всі зрізи останнього покоління були опубліковані, пул включається з validationError, а поля кількості пристроїв не встановлюються.
nodeName string
NodeName є вузлом, з яким повʼязаний цей пул. Якщо не вказано, пул не повʼязаний з конкретним вузлом. Має бути дійсним піддоменом DNS (RFC1123).
poolName* string
PoolName є імʼям пулу. Має бути дійсним імʼям пулу ресурсів (піддомени DNS, розділені "/").
resourceSliceCount integer
ResourceSliceCount є кількістю ResourceSlices, що складають цей пул. Може бути не встановлено, коли встановлено validationError.
totalDevices integer
TotalDevices є загальною кількістю пристроїв у пулі по всіх зрізах. Значення 0 означає, що пул не має пристроїв. Може бути не встановлено, коли встановлено validationError.
unavailableDevices integer
UnavailableDevices є кількістю пристроїв, які недоступні через taints або інші умови, але не виділені. Значення 0 означає, що всі невиділені пристрої доступні. Може бути не встановлено, коли встановлено validationError.
validationError string
ValidationError встановлюється, коли дані пулу не можуть бути повністю перевірені (наприклад, неповна публікація зрізів). Коли встановлено, поля кількості пристроїв і ResourceSliceCount можуть бути не встановлені.
Операції
post Create
HTTP Запит
POST /apis/resource.k8s.io/v1alpha3/resourcepoolstatusrequests
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/resource.k8s.io/v1alpha3/resourcepoolstatusrequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourcePoolStatusRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1alpha3/resourcepoolstatusrequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourcePoolStatusRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/resource.k8s.io/v1alpha3/resourcepoolstatusrequests
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1alpha3/watch/resourcepoolstatusrequests/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourcePoolStatusRequest
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1alpha3/watch/resourcepoolstatusrequests
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/resource.k8s.io/v1alpha3/resourcepoolstatusrequests/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourcePoolStatusRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/resource.k8s.io/v1alpha3/resourcepoolstatusrequests/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourcePoolStatusRequest
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
ResourceSlice представляє один або кілька ресурсів у пулі подібних ресурсів, керованих спільним драйвером. Пул може охоплювати більше одного ResourceSlice, і точно визначити, скільки ResourceSlice складають пул, визначає драйвер.
На даний момент єдині підтримувані ресурси — це пристрої з атрибутами та ємностями (capacities). Кожен пристрій у даному пулі, незалежно від того, скільки ResourceSlice, повинен мати унікальне імʼя. ResourceSlice, у якому публікується пристрій, може змінюватися з часом. Унікальний ідентифікатор для пристрою — це кортеж <імʼя драйвера>, <імʼя пулу>, <імʼя пристрою>.
Щоразу, коли драйвер потребує оновлення пулу, він збільшує номер pool.Spec.Pool.Generation і оновлює всі ResourceSlices з новим номером та новими визначеннями ресурсів. Споживач повинен використовувати лише ResourceSlices з найвищим номером покоління і ігнорувати всі інші.
При виділенні всіх ресурсів у пулі, що відповідають певним критеріям, або при пошуку найкращого рішення серед кількох різних альтернатив, споживач повинен перевірити кількість ResourceSlices у пулі (включених у кожен ResourceSlice), щоб визначити, чи є його уявлення про пул повним, і якщо ні, слід чекати, поки драйвер завершить оновлення пулу.
Для ресурсів, які не є локальними для вузла, імʼя вузла не встановлюється. Замість цього драйвер може використовувати селектор вузла, щоб вказати, де доступні пристрої.
apiVersion: resource.k8s.io/v1
import "k8s.io/api/resource/v1"
ResourceSlice
ResourceSlice представляє один або кілька ресурсів у пулі подібних ресурсів, керованих спільним драйвером. Пул може охоплювати більше одного ResourceSlice, і точно визначити, скільки ResourceSlices складають пул, визначає драйвер.
На даний момент єдині підтримувані ресурси — це пристрої з атрибутами та ємностями (capacities). Кожен пристрій у даному пулі, незалежно від того, скільки ResourceSlices, повинен мати унікальне імʼя. ResourceSlice, у якому публікується пристрій, може змінюватися з часом. Унікальний ідентифікатор для пристрою — це кортеж <імʼя драйвера>, <імʼя пулу>, <імʼя пристрою>.
Щоразу, коли драйвер потребує оновлення пулу, він збільшує номер pool.Spec.Pool.Generation і оновлює всі ResourceSlices з новим номером та новими визначеннями ресурсів. Споживач повинен використовувати лише ResourceSlices з найвищим номером покоління і ігнорувати всі інші.
Коли виділяються всі ресурси в пулі, що відповідають певним критеріям, або коли шукається найкраще рішення серед кількох різних альтернатив, споживач повинен перевірити кількість ResourceSlices у пулі (включених у кожен ResourceSlice), щоб визначити, чи є його уявлення про пул повним, і якщо ні, слід чекати, поки драйвер завершить оновлення пулу.
Для ресурсів, які не є локальними для вузла, імʼя вузла не встановлюється. Замість цього драйвер може використовувати селектор вузла, щоб вказати, де доступні пристрої.
Devices перелічує деякі або всі пристрої в цьому пулі.
Не повинно бути більше 128 записів. Якщо будь-який пристрій використовує taints або споживає лічильники, обмеження становить 64.
Тільки один з Devices та SharedCounters може бути встановлений у ResourceSlice.
driver* string
Driver визнає DRA драйвер, який надає інформацію про ємність. Можна використовувати селектор полів, щоб перелічити лише обʼєкти ResourceSlice з певним імʼям драйвера.
Повинно бути DNS-піддоменом і закінчуватися DNS-доменом, що належить постачальнику драйвера. Повинно використовувати лише малі літери. Це поле є незмінним.
nodeName string
NodeName вказує вузол, який надає ресурси в цьому пулі. Можна використовувати селектор полів, щоб перелічити лише обʼєкти ResourceSlice, що належать певному вузлу.
Це поле можна використовувати для обмеження доступу вузлів до ResourceSlices з однаковим імʼям вузла. Воно також вказує автомасштабувальникам, що додавання нових вузлів того ж типу, що й деякі старі вузли, може також зробити доступними нові ресурси.
Тільки один з NodeName, NodeSelector, AllNodes та PerDeviceNodeSelection повинен бути встановлений. Це поле є незмінним.
NodeSelector визначає, які вузли мають доступ до ресурсів у пулі, коли цей пул не обмежений одним вузлом.
Має тільки один термін.
Тільки один з NodeName, NodeSelector, AllNodes та PerDeviceNodeSelection повинен бути встановлений.
perDeviceNodeSelection boolean
PerDeviceNodeSelection визначає, чи доступ вузлів до ресурсів у пулі встановлюється на рівні ResourceSlice або на кожному пристрої. Якщо встановлено значення true, кожен пристрій, визначений у ResourceSlice, повинен вказати це окремо.
Тільки один з NodeName, NodeSelector, AllNodes та PerDeviceNodeSelection повинен бути встановлений.
SharedCounters визначає список наборів лічильників, кожен з яких має імʼя та список доступних лічильників.
Імена наборів лічильників повинні бути унікальними в ResourcePool. Тільки один з Devices та SharedCounters може бути встановлений у ResourceSlice. Максимальна кількість наборів лічильників становить 8.
ResourceSliceList
ResourceSliceList is a collection of ResourceSlices.
ValidValues визначає набір допустимих значень кількості в запитах на споживання.
Не може містити більше 10 записів. Повинно бути відсортовано за зростанням.
Якщо це поле встановлено, Default повинен бути визначений і він повинен входити до списку ValidValues.
Якщо запитана кількість не відповідає жодному допустимому значенню, але менша за деякі допустимі значення, планувальник обчислює найменше допустиме значення, яке більше або дорівнює запиту. Тобто: min(ceil(requestedValue) ∈ validValues), де requestedValue ≤ max(validValues).
Якщо запитана кількість перевищує всі допустимі значення, запит порушує політику, і цей пристрій не може бути виділений.
CapacityRequestPolicyRange
CapacityRequestPolicyRange визначає допустимий діапазон значень споживаної ємності.
Якщо запитана кількість менша за Min, вона округлюється до значення Min.
Якщо Step встановлено, а запитана кількість знаходиться між Min і Max, але не відповідає Step, вона буде округлена до наступного значення, рівного Min + (n * Step).
Якщо Step не встановлено, запитана кількість використовується як є, якщо вона знаходиться в діапазоні від Min до Max (якщо встановлено).
Якщо запитана або округлена кількість перевищує Max (якщо встановлено), запит не відповідає політиці, і пристрій не може бути виділений.
Value визначає, скільки певного лічильника пристрою доступно.
CounterSet
CounterSet визначає іменований набір лічильників, які доступні для використання пристроями, визначеними в ResourcePool.
Лічильники самі по собі не можуть бути виділені, але можуть бути посиланням для пристроїв. Коли пристрій виділяється, частина лічильників, яку він використовує, більше не буде доступна для використання іншими пристроями.
Поле
Опис
counters* object
Counters визначає набір лічильників для цього CounterSet.
Імʼя кожного лічильника повинно бути унікальним у цьому наборі та відповідати DNS-мітці. Максимальна кількість лічильників — 32.
name* string
Name визначає імʼя набору лічильників.
Воно повинно бути DNS-міткою.
Device
Device представляє один окремий апаратний екземпляр, який можна вибрати на основі його атрибутів. Крім імені, має бути встановлено тільки одне поле.
Поле
Опис
allNodes boolean
AllNodes вказує, що всі вузли мають доступ до пристрою.
Має бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Можна встановити не більше одного з NodeName, NodeSelector та AllNodes.
allowMultipleAllocations boolean
AllowMultipleAllocations вказує, чи дозволено виділяти пристрій для кількох DeviceRequests.
Якщо AllowMultipleAllocations встановлено в true, пристрій може бути виділений більше одного разу, і вся його ємність буде споживана, незалежно від того, чи визначено requestPolicy чи ні.
attributes object
Attributes визначає набір атрибутів для цього пристрою.
Імʼя кожного атрибуту повинно бути унікальним у цьому наборі.
Максимальна кількість атрибутів та ємностей разом становить 32.
bindingConditions string array
BindingConditions визначає умови для продовження привʼязки.
Всі ці умови повинні бути встановлені в умовах стану кожного пристрою зі значенням True, щоб продовжити привʼязку пода до вузла під час планування пода.
Максимальна кількість умов привʼязки становить 4.
Умови повинні бути дійсним рядком типу умови.
Це бета-поле і вимагає увімкнення функційних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.
bindingFailureConditions string array
BindingFailureConditions визначає умови для невдачі привʼязки. Вони можуть бути встановлені в умовах стану кожного пристрою. Якщо будь-яка з них встановлена в "True", сталася невдача привʼязки.
Максимальна кількість умов невдачі привʼязки становить 4.
Умови повинні бути дійсним рядком типу умови.
Це бета-поле і вимагає увімкнення функційних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.
bindsToNode boolean
BindsToNode показує, чи використання виділення, що включає цей пристрій, має бути обмежене саме тим вузлом, який був обраний під час розподілу заявки. Якщо встановлено в true, планувальник встановить ResourceClaim.Status.Allocation.NodeSelector, щоб відповідати вузлу, де було зроблено виділення.
Це бета-поле і вимагає увімкнення функційних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.
capacity object
Capacity визначає набір ємностей для цього пристрою. Імʼя кожної ємності повинно бути унікальним у цьому наборі.
Максимальна кількість атрибутів і ємностей разом становить 32.
ConsumesCounters визначає список посилань на sharedCounters та набір лічильників, які пристрій буде споживати з цих наборів лічильників.
Може бути лише один запис на counterSet. Максимальна кількість споживань лічильників пристрою на пристрій становить 2.
name* string
Name є унікальним ідентифікатором серед усіх пристроїв, керованих драйвером у пулі. Він повинен бути міткою DNS.
nodeAllocatableResourceMappings object
NodeAllocatableResourceMappings визначає зіставлення ресурсів вузла, якими керує драйвер DRA, що надає цей пристрій. Це включає ресурси, які наразі повідомляються у v1.Node status.allocatable, але не є розширеними ресурсами (див. https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#extended-resources). Прикладами є "cpu", "memory", "ephemeral-storage" та hugepages. Крім стандартних запитів, зроблених через Pod spec, ці ресурси також можуть бути запитані через заявки та виділені драйвером DRA. Наприклад, драйвер CPU DRA може виділяти ексклюзивні CPU або допоміжні залежності памʼяті вузла для прискорювального пристрою. Ключі цієї мапи є іменами ресурсів, доступних на вузлі (наприклад, "cpu", "memory"). Імена розширених ресурсів не дозволяються як ключі.
nodeName string
NodeName визначає вузол, де доступний пристрій.
Може бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Може бути встановлено не більше одного з NodeName, NodeSelector та AllNodes.
NodeSelector визначає вузли, де доступний пристрій.
Має використовуватися тільки один термін.
Може бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Може бути встановлено не більше одного з NodeName, NodeSelector та AllNodes.
Максимальна кількість taints становить 16. Якщо taints встановлено для будь-якого пристрою в ResourceSlice, тоді максимальна кількість дозволених пристроїв на ResourceSlice становить 64 замість 128.
Це бета-поле і вимагає увімкнення функціональної можливості DRADeviceTaints.
DeviceAttribute
DeviceAttribute має мати встановлене тільки одне поле.
Поле
Опис
bool boolean
BoolValue є значенням true/false.
bools boolean array
BoolValues є непорожнім списком значень true/false.
int integer
IntValue є числом.
ints integer array
IntValues є непорожнім списком чисел.
Це альфа-поле і вимагає увімкнення функціональної можливості DRAListTypeAttributes.
string string
StringValue є рядком. Не повинен перевищувати 64 символи.
strings string array
StringValues є непорожнім списком рядків. Кожен рядок не повинен перевищувати 64 символи.
Це альфа-поле і вимагає увімкнення функціональної можливості DRAListTypeAttributes.
version string
VersionValue є семантичним версіонуванням відповідно до специфікації semver.org 2.0.0. Не має перевищувати 64 символи.
versions string array
VersionValues є непорожнім списком семантичних версій відповідно до специфікації semver.org 2.0.0. Кожен рядок версії не повинен перевищувати 64 символи.
Це альфа-поле і вимагає увімкнення функціональної можливості DRAListTypeAttributes.
DeviceCapacity
DeviceCapacity описує кількість, повʼязану з пристроєм.
RequestPolicy визначає, як ця DeviceCapacity повинна споживатися, коли пристрій дозволено ділити між кількома розподілами.
Пристрій повинен мати allowMultipleAllocations встановлено в true, щоб встановити requestPolicy.
Якщо не встановлено, запити на ємність не обмежені: запити можуть споживати будь-яку кількість ємності, доки загальна спожита кількість у всіх виділеннях не перевищує визначену ємність пристрою. Якщо request також не встановлено, за замовчуванням використовується повна ємність.
Value визначає, скільки певної ємності має пристрій.
Це поле відображає фіксовану загальну ємність і не змінюється. Спожита кількість відстежується окремо планувальником і не впливає на це значення.
DeviceCounterConsumption
DeviceCounterConsumption визначає набір лічильників, які пристрій буде споживати з CounterSet.
Поле
Опис
counterSet* string
CounterSet є назвою набору, з якого будуть споживатися визначені лічильники.
counters* object
Counters визначає лічильники, які будуть споживатися пристроєм.
Максимальна кількість лічильників становить 32.
DeviceTaint
Пристрій, до якого прикріплено цей taint, має «вплив» на будь-яку заявку, яка не толерує taint, і, через заявку, на podʼи, що використовують цю заявку.
Поле
Опис
effect* string
Вплив taint на заявки, які не толерують цей taint, і через такі заявки на поди, що їх використовують.
Дійсні ефекти: None, NoSchedule та NoExecute. PreferNoSchedule, як використовується для вузлів, тут недійсний. У майбутньому можуть бути додані інші ефекти. Споживачі повинні трактувати невідомі ефекти як None.
Можливі значення enum:
"NoExecute" Виселити будь-які вже запущені поди, які не толерують taint пристрою.
"NoSchedule" Не дозволяти новим подам плануватися з використанням taint пристрою, якщо вони не толерують taint, але дозволяти всім подам, поданим до Kubelet без проходження через планувальник, запускатися, і дозволяти всім вже запущеним подам продовжувати працювати.
"None" Без ефекту, taint є чисто інформаційним.
key* string
Ключ taint, який буде застосовано до пристрою. Повинен бути імʼям мітки.
TimeAdded представляє час, коли taint був доданий або (тільки в DeviceTaintRule) ефект був змінений. Додається автоматично під час створення або оновлення, якщо не встановлено.
Крім того, у DeviceTaintRule значення, надане під час оновлення, замінюється на поточний час, якщо надане значення збігається зі старим і новий ефект відрізняється. Зміна ключа та/або значення при збереженні ефекту без змін можлива і не оновлює часову мітку, оскільки виселення, яке її використовує, вже почалося (NoExecute) або ще не почалося (NoEffect, NoSchedule).
value string
Значення taint, що відповідає ключу taint. Повинно бути значенням мітки.
NodeAllocatableResourceMapping
NodeAllocatableResourceMapping визначає перетворення між одиницями пристрою/ємності DRA, запитаними, та відповідною кількістю ресурсу вузла, доступного для виділення.
AllocationMultiplier використовується як множник для кількості виділених пристроїв або виділеної ємності в запиті. Зазвичай дорівнює 1, якщо не вказано. Використання цього поля також залежить від того, чи встановлено capacityKey.
Якщо capacityKey не встановлено: allocationMultiplier множить кількість пристроїв, виділених для запиту.
a. DRA-драйвер, який представляє кожне ядро CPU як пристрій, матиме {ResourceName: "cpu", allocationMultiplier: "2"} у своєму nodeAllocatableResourceMappings. Якщо 4 пристрої виділено для запиту, 4 * 2 CPU вважатимуться виділеними і відніматимуться з ємності вузла.
b. GPU-пристрій, який потребує додаткової памʼяті вузла на кожне виділення GPU, матиме {ResourceName: "memory", allocationMultiplier: "2Gi"}. Кожен виділений екземпляр цього типу GPU-пристрою враховуватиме 2Gi пам'яті.
Якщо capacityKey встановлено: allocationMultiplier множиться на кількість спожитої ємності. Остаточна кількість ресурсу вузла, доступного для виділення, визначається як consumedCapacity[capacityKey] * allocationMultiplier. Наприклад, якщо спожито ємність пристрою "dra.example.com/cores", і кожне "ядро" забезпечує 2 "cpu", відображення буде таким: {ResourceName: "cpu", capacityKey: "dra.example.com/cores", allocationMultiplier: "2"}. Якщо запит споживає 8 "dra.example.com/cores", відбиток CPU становитиме 8 * 2 = 16.
capacityKey string
CapacityKey посилається на назву ємності, визначену як ключ у мапі spec.devices[*].capacity. Коли це поле встановлено, значення, повʼязане з цим ключем у мапі status.allocation.devices.results[*].consumedCapacity (для конкретного виділення запиту), визначає базову кількість для ресурсу вузла, доступного для виділення. Якщо також встановлено allocationMultiplier, воно множиться на базову кількість. Наприклад, якщо spec.devices[*].capacity має запис "dra.example.com/memory": "128Gi", і це поле встановлено на "dra.example.com/memory", тоді для виділення запиту, яке споживає { "dra.example.com/memory": "4Gi" }, базова кількість для відображення ресурсу вузла буде "4Gi", і allocationMultiplier слід опустити або встановити на "1".
NodeSelectorRequirement
Вимога до селектора вузлів — це селектор, що містить значення, ключ та оператор, який пов’язує ключ і значення.
Поле
Опис
key* string
Ключ мітки, до якого застосовується селектор.
operator* string
Представляє відношення ключа до набору значень. Дійсні оператори: In, NotIn, Exists, DoesNotExist, Gt та Lt.
Можливі значення enum:
"DoesNotExist"
"Exists"
"Gt"
"In"
"Lt"
"NotIn"
values string array
Масив значень рядків. Якщо оператор дорівнює In або NotIn, масив values повинен бути непорожнім. Якщо оператор дорівнює Exists або DoesNotExist, масив values повинен бути порожнім. Якщо оператор дорівнює Gt або Lt, масив values повинен містити один елемент, який буде інтерпретований як ціле число. Цей масив замінюється під час стратегічного злиття патчу.
ResourcePool
ResourcePool Описує пул, до якого належать ResourceSlices.
Поле
Опис
generation* integer
Generation відстежує зміни в пулі з часом. Коли драйвер змінює щось у одному або декількох ресурсах у пулі, він повинен змінити generation у всіх ResourceSlices, які є частиною цього пулу. Споживачі ResourceSlices повинні враховувати лише ресурси з пулу з найвищим номером generation. Generation може бути скинутий драйверами, що має бути прийнятним для споживачів, за умови, що всі ResourceSlices у пулі оновлені або видалені.
У поєднанні з ResourceSliceCount, цей механізм дозволяє споживачам виявляти пули, які складаються з кількох ResourceSlices і знаходяться в неповному стані.
name* string
Name використовується для ідентифікації пулу. Для локальних пристроїв вузла це часто імʼя вузла, але це не обовʼязково.
Воно не повинно перевищувати 253 символи і повинно складатися з одного або декількох піддоменів DNS, розділених слешами. Це поле є незмінним.
resourceSliceCount* integer
ResourceSliceCount є загальною кількістю ResourceSlices у пулі на цей номер generation. Має бути більше нуля.
Споживачі можуть використовувати це, щоб перевірити, чи бачили вони всі ResourceSlices, що належать до одного пулу.
Операції
post Create
HTTP Запит
POST /apis/resource.k8s.io/v1/resourceslices
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/resource.k8s.io/v1/resourceslices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceSlice
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/resourceslices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceSlice
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/resource.k8s.io/v1/watch/resourceslices/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва ResourceSlice
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
PodGroup представляє екземпляр виконання подів, згрупованих разом. PodGroups створюються контролерами робочих навантажень (Job, LWS, JobSet тощо) з Workload.podGroupTemplates. Увімкнення API PodGroup керується прапорцем функції GenericWorkload.
apiVersion: scheduling.k8s.io/v1alpha2
import "k8s.io/api/scheduling/v1alpha2"
PodGroup
PodGroup представляє екземпляр виконання подів, згрупованих разом. PodGroups створюються контролерами робочих навантажень (Job, LWS, JobSet тощо) з Workload.podGroupTemplates. Увімкнення API PodGroup керується прапорцем функції GenericWorkload.
Status представляє поточний спостережуваний стан PodGroup.
PodGroupSpec
PodGroupSpec визначає бажаний стан PodGroup.
Поле
Опис
disruptionMode string
DisruptionMode визначає режим, у якому дану PodGroup можна порушити. Контролери очікують, що це поле буде заповнене шляхом копіювання його з PodGroupTemplate. Одне з Pod, PodGroup. Стандартно — Pod, якщо не встановлено. Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.
Можливі значення enum:
"Pod" означає, що окремі поди можуть бути порушені або передані незалежно. Це не залежить від точного набору подів, які наразі працюють у цій PodGroup.
"PodGroup" означає, що вся PodGroup повинна бути порушена або передана разом.
PodGroupTemplateRef визначає опціональний шаблон PodGroup в іншому обʼєкті (наприклад, Workload), який був використаний для створення PodGroup. Це поле є незмінним.
priority integer
Priority визначає значення пріоритету цієї групи подів. Різні компоненти системи використовують це поле для визначення пріоритету групи подів. Коли увімкнено контролер допуску пріоритету, він запобігає користувачам встановлювати це поле. Контролер допуску заповнює це поле з PriorityClassName. Чим вище значення, тим вищий пріоритет. Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.
priorityClassName string
PriorityClassName визначає пріоритет, який слід враховувати при плануванні цієї групи подів. Контролери очікують, що це поле буде заповнене шляхом копіювання його з PodGroupTemplate. В іншому випадку воно перевіряється та вирішується аналогічно до PriorityClassName на PodGroupTemplate (тобто, якщо пріоритет класу не вказано, контролер допуску може встановити його на стандартний глобальний пріоритет, якщо він існує. В іншому випадку пріоритет групи подів буде нульовим). Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.
ResourceClaims визначає, які ResourceClaims можуть бути спільно використані серед Podʼів у групі. Podʼи використовують пристрої, виділені для заявки PodGroup, визначаючи заявку у власному Spec.ResourceClaims, яка точно відповідає заявці PodGroup. Заявка повинна мати однакове імʼя та посилатися на той самий ResourceClaim або ResourceClaimTemplate.
Це поле є альфа-рівнем і вимагає, щоб функціональна можливість DRAWorkloadResourceClaims була увімкнена.
SchedulingConstraints визначає опціональні обмеження планування (наприклад, топологію) для цієї PodGroup. Контролери очікують, що це поле буде заповнене шляхом копіювання його з PodGroupTemplate. Це поле є незмінним. Це поле доступне лише тоді, коли увімкнено функціональну можливість TopologyAwareWorkloadScheduling.
SchedulingPolicy визначає політику планування для цього екземпляра PodGroup. Контролери очікують, що це поле буде заповнене шляхом копіювання його з PodGroupTemplate. Це поле є незмінним.
PodGroupStatus
PodGroupStatus представляє інформацію про стан групи подів.
Поле
Опис
conditions Condition array patch strategy: merge on key type
Conditions представляють останні спостереження за станом PodGroup.
Відомі типи умов:
"PodGroupScheduled": Вказує, чи було виконано вимогу планування.
"DisruptionTarget": Вказує, чи PodGroup буде завершено через порушення, наприклад, через передчасне завершення.
Відомі причини для стану PodGroupScheduled:
"Unschedulable": PodGroup не може бути заплановано через обмеження ресурсів, правила (анти)спорідненості або недостатню ємність для групи.
"SchedulerError": PodGroup не може бути заплановано через внутрішню помилку, яка сталася під час планування, наприклад через помилки розбору nodeAffinity.
Відомі причини для стану DisruptionTarget:
"PreemptionByScheduler": PodGroup було передчасно завершено планувальником, щоб звільнити місце для PodGroup або Podʼа з вищим пріоритетом.
resourceClaimStatuses PodGroupResourceClaimStatus array patch strategy: merge,retainKeys on key name
BasicSchedulingPolicy вказує, що слід використовувати стандартну поведінку планування Kubernetes.
GangSchedulingPolicy
GangSchedulingPolicy визначає параметри для групового планування.
Поле
Опис
minCount* integer
MinCount — це мінімальна кількість Podʼів, які повинні бути заплановані або заплановані одночасно, щоб планувальник дозволив всю групу. Це повинно бути додатне ціле число.
PodGroupResourceClaim
PodGroupResourceClaim посилається точно на одну ResourceClaim, або безпосередньо, або шляхом вказівки ResourceClaimTemplate, який потім перетворюється на ResourceClaim для PodGroup.
Вона додає імʼя, яке унікально ідентифікує ResourceClaim всередині PodGroup. Поди, які потребують доступу до ResourceClaim, визначають відповідне посилання у своєму Spec.ResourceClaims. Претензія пода повинна точно відповідати всім полям заявки PodGroup.
Поле
Опис
name* string
Імʼя унікально ідентифікує цю заявку на ресурс всередині PodGroup. Це повинно бути DNS_LABEL.
resourceClaimName string
ResourceClaimName — це імʼя обʼєкта ResourceClaim у тому ж просторі імен, що й цей PodGroup. ResourceClaim буде зарезервовано для PodGroup замість його окремих подів.
Повинно бути встановлено тільки одне з полів ResourceClaimName або ResourceClaimTemplateName.
resourceClaimTemplateName string
ResourceClaimTemplateName — це імʼя обʼєкта ResourceClaimTemplate у тому ж просторі імен, що й цей PodGroup.
Шаблон буде використано для створення нового ResourceClaim, який буде привʼязаний до цього PodGroup. Коли цей PodGroup буде видалено, ResourceClaim також буде видалено. Імʼя PodGroup та імʼя ресурсу, разом із згенерованим компонентом, будуть використані для формування унікального імені для ResourceClaim, яке буде зафіксовано в podgroup.status.resourceClaimStatuses.
Це поле є незмінним, і після створення ResourceClaim панель управління не вноситиме жодних змін до відповідного ResourceClaim.
Повинно бути встановлено тільки одне з полів ResourceClaimName або ResourceClaimTemplateName.
PodGroupSchedulingConstraints
PodGroupSchedulingConstraints визначає обмеження планування (наприклад, топологію) для PodGroup.
Gang вказує, що поди в цій групі повинні плануватися з використанням семантики "все або нічого".
PodGroupTemplateReference
PodGroupTemplateReference посилається на шаблон PodGroup, визначений в деякому обʼєкті (наприклад, Workload). Повинно бути встановлено тільки одне посилання.
Workload посилається на PodGroupTemplate всередині обʼєкта Workload, який був використаний для створення PodGroup.
TopologyConstraint
TopologyConstraint визначає обмеження топології для PodGroup.
Поле
Опис
key* string
Key визначає ключ мітки вузла, що представляє топологічну доменну область. Всі поди в межах PodGroup повинні бути розташовані в одному екземплярі доменної області. Різні PodGroup можуть розташовуватися в різних екземплярах доменної області, навіть якщо вони походять від одного і того ж PodGroupTemplate. Приклади: "topology.kubernetes.io/rack"
WorkloadPodGroupTemplateReference
WorkloadPodGroupTemplateReference посилається на PodGroupTemplate всередині обʼєкта Workload.
Поле
Опис
podGroupTemplateName* string
PodGroupTemplateName визначає назву PodGroupTemplate всередині обʼєкта Workload.
workloadName* string
WorkloadName визначає назву обʼєкта Workload.
Операції
post Create
HTTP Запит
POST /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodGroup
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodGroup
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/watch/namespaces/{namespace}/podgroups/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodGroup
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/watch/namespaces/{namespace}/podgroups
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/watch/podgroups
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodGroup
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/podgroups/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва PodGroup
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
description є довільним рядком, який зазвичай надає рекомендації щодо того, коли слід використовувати цей клас пріоритету.
globalDefault boolean
globalDefault вказує, чи слід вважати цей PriorityClass стандартним пріоритетом для подів, які не мають жодного класу пріоритету. Лише один PriorityClass може бути позначений як globalDefault. Однак, якщо існує більше одного PriorityClass з полем globalDefault, встановленим у true, буде використано найменше значення таких стандартних глобальних пріоритетів.
preemptionPolicy є Політикою випередження подів з нижчим пріоритетом. Одне з значень: Never, PreemptLowerPriority. Стандартно використовується PreemptLowerPriority, якщо не вказано.
Можливі значення enum:
"Never" означає, що под ніколи не випереджає інші поди з нижчим пріоритетом.
"PreemptLowerPriority" означає, що под може випереджати інші поди з нижчим пріоритетом.
value integer
value представляє ціле число цього класу пріоритету. Це фактичний пріоритет, який отримують поди, коли вони мають імʼя цього класу у своїй специфікації поду.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/scheduling.k8s.io/v1/priorityclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityClass
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1/priorityclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityClass
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва PriorityClass
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1/watch/priorityclasses
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Workload дозволяє виражати обмеження планування, які слід використовувати при управлінні життєвим циклом робочих навантажень з точки зору планування, включаючи планування, випередження, виселення та інші фази. Увімкнення API Workload керується функціональною можливістю GenericWorkload.
apiVersion: scheduling.k8s.io/v1alpha2
import "k8s.io/api/scheduling/v1alpha2"
Workload
Workload дозволяє виражати обмеження планування, які слід використовувати при управлінні життєвим циклом робочих навантажень з точки зору планування, включаючи планування, випередження, виселення та інші фази. Увімкнення API Workload керується функціональною можливістю GenericWorkload.
ControllerRef є опцональним посиланням на обʼєкт, який контролює, наприклад, Deployment або Job. Це поле призначене для використання інструментами, такими як CLI, для надання посилання на оригінальне визначення робочого навантаження. Це поле є незмінним.
PodGroupTemplate представляє шаблон для набору подів з політикою планування.
Поле
Опис
disruptionMode string
DisruptionMode визначає режим, у якому даний PodGroup може бути порушений. Одине з Pod, PodGroup. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.
Можливі значення enum:
"Pod" означає, що окремі поди можуть бути порушені або передбачені незалежно. Це не залежить від точного набору подів, які наразі працюють у цьому PodGroup.
"PodGroup" означає, що весь PodGroup потрібно порушити або передбачити разом.
name* string
Name є унікальним ідентифікатором для PodGroupTemplate в межах Workload. Він повинен бути DNS-міткою. Це поле є незмінним.
priority integer
Priority є значенням пріоритету груп подів, створених з цього шаблону. Різні компоненти системи використовують це поле для визначення пріоритету групи подів. Коли увімкнено Priority Admission Controller, він запобігає користувачам встановлювати це поле. Контролер допуску заповнює це поле з PriorityClassName. Чим вище значення, тим вищий пріоритет. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.
priorityClassName string
PriorityClassName вказує пріоритет, який слід враховувати при плануванні групи подів, створеної з цього шаблону. Якщо пріоритет класу не вказано, контролер допуску може встановити його на стандартний глобальний пріоритет класу, якщо він існує. В іншому випадку групи подів, створені з цього шаблону, матимуть пріоритет, встановлений на нуль. Це поле доступне лише тоді, коли увімкнено функціональну можливість WorkloadAwarePreemption.
ResourceClaims визначає, які ResourceClaims можуть бути спільно використані серед Podʼів у групі. Podʼи використовують пристрої, виділені для заявок PodGroup, визначаючи заявку у власному Spec.ResourceClaims, яка точно відповідає заявці PodGroup. Заявка повинна мати однакове імʼя та посилатися на той самий ResourceClaim або ResourceClaimTemplate.
Це поле є альфа-рівня і вимагає, щоб функціональна можливість DRAWorkloadResourceClaims була увімкнена.
SchedulingConstraints визначає опціональні обмеження планування (наприклад, топологію) для цього PodGroupTemplate. Це поле доступне лише тоді, коли увімкнено функціональну можливість TopologyAwareWorkloadScheduling.
SchedulingPolicy визначає політику планування для цього PodGroupTemplate.
Операції
post Create
HTTP Запит
POST /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/workloads
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/workloads/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Workload
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/workloads/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Workload
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/scheduling.k8s.io/v1alpha2/namespaces/{namespace}/workloads
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/watch/namespaces/{namespace}/workloads/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва Workload
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/watch/namespaces/{namespace}/workloads
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/scheduling.k8s.io/v1alpha2/watch/workloads
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
CSIDriver збирає інформацію про драйвер тому Container Storage Interface (CSI), розгорнутий у кластері. Контролер приєднання та відʼєднання Kubernetes використовує цей обʼєкт для визначення, чи потрібне приєднання. Kubelet використовує цей обʼєкт для визначення, чи потрібно передавати інформацію про поди під час монтування. Обʼєкти CSIDriver не мають простору імен.
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSIDriver
CSIDriver збирає інформацію про драйвер тому Container Storage Interface (CSI), розгорнутий у кластері. Контролер приєднання та відʼєднання Kubernetes використовує цей обʼєкт для визначення, чи потрібне приєднання. Kubelet використовує цей обʼєкт для визначення, чи потрібно передавати інформацію про поди під час монтування. Обʼєкти CSIDriver не мають простору імен.
Стандартні метадані обʼєкта. metadata.Name вказує назву драйвера CSI, до якого відноситься цей обʼєкт; вона ПОВИННА бути такою ж, як і назва, повернена викликом CSI GetPluginName() для цього драйвера. Назва драйвера повинна містити не більше 63 символів, починатися та закінчуватися алфавітно-цифровим символом ([a-z0-9A-Z]) з дефісами (-), крапками (.) та алфавітно-цифровими символами між ними. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
CSIDriverSpec представляє специфікацію драйвера CSI.
Поле
Опис
attachRequired boolean
attachRequired показує, чи цей драйвер CSI вимагає операції приєднання (оскільки він реалізує метод CSI ControllerPublishVolume()), і що контролер приєднання/відʼєднання Kubernetes повинен викликати інтерфейс приєднання тома, який перевіряє стан volumeattachment і чекає, поки том не буде приєднаний, перш ніж продовжити монтування. Зовнішній приєднувач CSI координується з драйвером CSI і оновлює стан volumeattachment, коли операція приєднання завершена. Якщо значення вказано як false, операція приєднання буде пропущена. В іншому випадку операція приєднання буде викликана.
This field is immutable.
fsGroupPolicy string
fsGroupPolicy визначає, чи підтримує базовий том зміну власника та дозволів тома перед його монтуванням. Дивіться конкретні значення FSGroupPolicy для додаткових деталей.
Це поле було незмінним у Kubernetes < 1.29 і тепер є змінним.
Стандартно встановлено ReadWriteOnceWithFSType, що дозволяє перевіряти кожен том, щоб визначити, чи Kubernetes повинен змінювати власника та дозволи тома. Зі стандартною політикою визначений fsGroup буде застосовуватися лише у разі визначення fstype та якщо режим доступу тома містить ReadWriteOnce.
nodeAllocatableUpdatePeriodSeconds integer
nodeAllocatableUpdatePeriodSeconds визначає інтервал між періодичними оновленнями доступної ємності CSINode для цього драйвера. Коли встановлено, обидва періодичні оновлення та оновлення, викликані помилками, повʼязаними з ємністю, увімкнені. Якщо не встановлено, оновлення не відбуваються (ні періодичні, ні при виявленні помилок, повʼязаних з ємністю), і allocatable.count залишається статичним. Мінімально допустиме значення для цього поля становить 10 секунд.
Ця функція вимагає, щоб була увімкнена функціональна можливість MutableCSINodeAllocatableCount.
Це поле є змінним.
podInfoOnMount boolean
podInfoOnMount показує, чи цей драйвер CSI вимагає додаткової інформації про поди (наприклад, podName, podUID тощо) під час операцій монтування, якщо встановлено значення true. Якщо встановлено значення false, інформація про поди не буде передаватися під час монтування. Стандартно встановлено false.
Драйвер CSI вказує podInfoOnMount як частину розгортання драйвера. Якщо встановлено значення true, Kubelet передаватиме інформацію про поди як VolumeContext у викликах CSI NodePublishVolume(). Драйвер CSI відповідає за розбір та перевірку інформації, переданої як VolumeContext.
Наступний VolumeContext буде передано, якщо podInfoOnMount встановлено значення true. Цей список може зростати, але префікс буде використовуватися. "csi.storage.k8s.io/pod.name": pod.Name "csi.storage.k8s.io/pod.namespace": pod.Namespace "csi.storage.k8s.io/pod.uid": string(pod.UID) "csi.storage.k8s.io/ephemeral": "true", якщо том є ефермерним вбудованим томом, визначеним CSIVolumeSource, інакше "false" "csi.storage.k8s.io/ephemeral" є новою функцією в Kubernetes 1.16. Вона потрібна лише для драйверів, які підтримують обидва режими VolumeLifecycleMode: "Persistent" та "Ephemeral". Інші драйвери можуть залишити інформацію про поди вимкненою та/або ігнорувати це поле. Оскільки Kubernetes 1.15 не підтримує це поле, драйвери можуть підтримувати лише один режим при розгортанні на такому кластері, і розгортання визначає, який режим це буде, наприклад, через параметр командного рядка драйвера.
Це поле було незмінним у Kubernetes < 1.29 і тепер є змінним.
preventPodSchedulingIfMissing boolean
PreventPodSchedulingIfMissing показує, чи CSI драйвер хоче запобігти плануванню подів, якщо CSI драйвер на вузлі відсутній.
Увімкнення цієї опції запобігатиме плануванню подів на вузли, де CSI драйвер не встановлений, як для планувальника (або будь-якого іншого компонента, який вбудовує стандартний планувальник, наприклад, cluster-autoscaler).
Для компонентів (таких як cluster-autoscaler), які вбудовують планувальник і виконують симуляції розміщення подів за допомогою плагінів планувальника, вони МАЮТЬ бути обізнані про інформацію про реєстрацію CSI драйвера через обʼєкт CSINode. Вони повинні створювати симульовані обʼєкти CSINode на додаток до обʼєктів Node під час симуляції планування, інакше, якщо PreventPodSchedulingIfMissing увімкнено глобально для об'єкта CSIDriver, будь-який новостворений вузол може бути відхилений планувальником через відсутність інформації про CSI драйвер на вузлі.
Це альфа-функція і вимагає увімкнення функціональної можливості VolumeLimitScaling. Стандартно встановлено "false".
requiresRepublish boolean
requiresRepublish показує, чи CSI драйвер хоче, щоб NodePublishVolume викликався періодично для показу будь-яких можливих змін у змонтованому томі. Стандартно встановлено false.
Примітка: Після успішного початкового виклику NodePublishVolume, наступні виклики NodePublishVolume повинні лише оновлювати вміст тому. Нові точки монтування не будуть видимі для запущеного контейнера.
seLinuxMount boolean
seLinuxMount визначає, чи підтримує CSI драйвер опцію монтування "-o context".
Коли встановлено "true", CSI драйвер повинен забезпечити, щоб усі томи, надані цим CSI драйвером, могли монтуватися окремо з різними опціями -o context. Це типово для сховищ, які надають томи як файлові системи на блочних пристроях або як незалежні спільні томи. Kubernetes викличе NodeStage / NodePublish з опцією монтування "-o context=xyz" при монтуванні тома ReadWriteOncePod, який використовується в Pod з явно встановленим контекстом SELinux. У майбутньому це може бути розширено на інші режими доступу до томів. У будь-якому випадку Kubernetes забезпечить, щоб том монтувався лише з одним контекстом SELinux.
Коли встановлено "false", Kubernetes не передаватиме жодних спеціальних опцій монтування SELinux драйверу. Це типово для томів, які представляють субтеки більшої спільної файлової системи.
Стандартно встановлено "false".
serviceAccountTokenInSecrets boolean
serviceAccountTokenInSecrets є опційним параметром для CSI драйверів, щоб вказати, що токени службових облікових записів повинні передаватися через поле Secrets у NodePublishVolumeRequest замість поля VolumeContext. Специфікація CSI надає спеціальне поле Secrets для конфіденційної інформації, такої як токени, що є відповідним механізмом для обробки облікових даних. Це вирішує проблеми безпеки, коли конфіденційні токени реєструвалися як частина контексту тома.
Коли встановлено "true", kubelet передаватиме токени лише в полі Secrets з ключем "csi.storage.k8s.io/serviceAccount.tokens". CSI драйвер повинен бути оновлений для читання токенів з поля Secrets замість VolumeContext.
Коли встановлено "false" або не встановлено, kubelet передаватиме токени в VolumeContext з ключем "csi.storage.k8s.io/serviceAccount.tokens" (існуюча поведінка). Це забезпечує зворотну сумісність з наявними CSI драйверами.
Це поле можна встановити лише тоді, коли налаштовано TokenRequests. Сервер API відхилить специфікації CSIDriver, які встановлюють це поле без TokenRequests.
Стандартна поведінка, якщо не встановлено, полягає в передачі токенів у поле VolumeContext.
storageCapacity boolean
storageCapacity показує, що CSI драйвер томів хоче, щоб планування Podʼа враховувало ємність сховища, яку розгортання драйвера повідомляє, створюючи об'єкти CSIStorageCapacity з інформацією про ємність, якщо встановлено true.
Перевірку можна ввімкнути відразу при розгортанні драйвера. У цьому випадку створення нових томів з пізнім звʼязуванням буде призупинено, поки розгортання драйвера не опублікує відповідний обʼєкт CSIStorageCapacity.
Альтернативно, драйвер можна розгорнути з незаданим або false полем, і його можна змінити пізніше, коли буде опублікована інформація про ємність сховища.
Це поле було незмінним у Kubernetes <= 1.22 і тепер є змінним.
tokenRequests показує, що CSI драйвер потребує токенів службових облікових записів Podʼів, для яких він монтує томи, для виконання необхідної автентифікації. Kubelet передаватиме токени в VolumeContext у викликах CSI NodePublishVolume. CSI драйвер повинен розібрати та перевірити наступний VolumeContext:
Примітка: Audience у кожному TokenRequest має бути різним, і не більше одного токена може бути порожнім рядком. Щоб отримати новий токен після закінчення терміну дії, можна використовувати RequiresRepublish для періодичного виклику NodePublishVolume.
volumeLifecycleModes string array
volumeLifecycleModes визначає, які типи томів підтримує цей CSI драйвер томів. Зазвичай, якщо список порожній, використовується "Persistent", що відповідає специфікації CSI і реалізується в Kubernetes через звичайний механізм PV/PVC.
Інший режим — "Ephemeral". У цьому режимі томи визначаються безпосередньо в специфікації Podʼа за допомогою CSIVolumeSource, і їх життєвий цикл повʼязаний з життєвим циклом цього Podʼа. Драйвер повинен бути обізнаний про це, оскільки він отримає виклик NodePublishVolume лише для такого тому.
TokenRequest містить параметри токена службового облікового запису.
Поле
Опис
audience* string
audience визначає призначену аудиторію токена в "TokenRequestSpec". За замовчуванням використовується аудиторія kube apiserver.
expirationSeconds integer
expirationSeconds визначає тривалість дії токена в "TokenRequestSpec". Воно має таке ж значення за замовчуванням, як і "ExpirationSeconds" у "TokenRequestSpec".
Операції
post Create
HTTP Запит
POST /apis/storage.k8s.io/v1/csidrivers
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/csidrivers/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CSIDriver
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
CSINode містить інформацію про всі CSI драйвери, встановлені на вузлі. CSI драйвери не потребують створення обʼєкта CSINode безпосередньо. Поки вони використовують контейнер sidecar node-driver-registrar, kubelet автоматично заповнює обʼєкт CSINode для CSI драйвера в рамках реєстрації втулка kubelet. CSINode має ту ж назву, що й вузол. Якщо обʼєкт відсутній, це означає, що або на вузлі немає доступних CSI драйверів, або версія Kubelet занадто низька, щоб створити цей обʼєкт. CSINode має OwnerReference, який вказує на відповідний обʼєкт вузла.
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSINode
CSINode містить інформацію про всі CSI драйвери, встановлені на вузлі. CSI драйвери не потребують створення обʼєкта CSINode безпосередньо. Поки вони використовують контейнер sidecar node-driver-registrar, kubelet автоматично заповнює обʼєкт CSINode для CSI драйвера в рамках реєстрації втулка kubelet. CSINode має ту ж назву, що й вузол. Якщо обʼєкт відсутній, це означає, що або на вузлі немає доступних CSI драйверів, або версія Kubelet занадто низька, щоб створити цей обʼєкт. CSINode має OwnerReference, який вказує на відповідний обʼєкт вузла.
allocatable представляє ресурси томів вузла, доступні для планування. Це поле є бета-версією.
name* string
name представляє імʼя CSI драйвера, до якого відноситься цей обʼєкт. Воно ПОВИННО збігатися з імʼям, повернутим викликом CSI GetPluginName() для цього драйвера.
nodeID* string
nodeID вузла з точки зору драйвера. Це поле дозволяє Kubernetes взаємодіяти з системами зберігання, які не використовують однакову номенклатуру для вузлів. Наприклад, Kubernetes може посилатися на певний вузол як "node1", але система зберігання може посилатися на той самий вузол як "nodeA". Коли Kubernetes видає команду системі зберігання для приєднання тому до конкретного вузла, він може використовувати це поле для посилання на імʼя вузла, використовуючи ID, який система зберігання зрозуміє, наприклад "nodeA" замість "node1". Це поле є обовʼязковим.
topologyKeys string array
topologyKeys є списком ключів, підтримуваних драйвером. Коли драйвер ініціалізується в кластері, він надає набір ключів топології, які він розуміє (наприклад, "company.com/zone", "company.com/region"). Коли драйвер ініціалізується на вузлі, він надає ті ж ключі топології разом зі значеннями. Kubelet буде відображати ці ключі топології як мітки на своєму власному обʼєкті вузла. Коли Kubernetes виконує розподіл з урахуванням топології, він може використовувати цей список для визначення, які мітки слід отримати з обʼєкта вузла і передати назад драйверу. Можливо, що різні вузли використовують різні ключі топології. Це поле може бути порожнім, якщо драйвер не підтримує топологію.
VolumeNodeResources
VolumeNodeResources є набором обмежень ресурсів для планування томів.
Поле
Опис
count integer
count вказує максимальну кількість унікальних томів, керованих CSI драйвером, які можуть використовуватися на вузлі. Тому, який одночасно приєднаний і змонтований на вузлі, вважається використаним один раз, а не двічі. Те ж правило застосовується до унікального тому, який спільно використовується кількома подами на одному вузлі. Якщо це поле не вказано, то підтримувана кількість томів на цьому вузлі необмежена.
Операції
post Create
HTTP Запит
POST /apis/storage.k8s.io/v1/csinodes
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
CSIStorageCapacity зберігає результат одного виклику CSI GetCapacity. Для певного StorageClass це описує доступну ємність у певному сегменті топології. Це можна використовувати під час розгляду місця для створення нових PersistentVolumes.
Наприклад, це може виражати такі речі:
StorageClass "standard" має "1234 GiB" доступних у "topology.kubernetes.io/zone=us-east1"
StorageClass "localssd" має "10 GiB" доступних у "kubernetes.io/hostname=knode-abc123"
Наступні три випадки всі означають, що для певної комбінації немає доступної ємності:
не існує обʼєкта з підходящою топологією та назвою класу зберігання
такий обʼєкт існує, але ємність не встановлена
такий обʼєкт існує, але ємність дорівнює нулю
Виробник цих обʼєктів може вирішити, який підхід є більш підходящим.
Вони використовуються kube-scheduler, коли драйвер CSI обирає планування з урахуванням ємності за допомогою CSIDriverSpec.StorageCapacity. Планувальник порівнює MaximumVolumeSize з запитаним розміром очікуваних томів, щоб відфільтрувати непридатні вузли. Якщо MaximumVolumeSize не встановлено, він повертається до порівняння з менш точним Capacity. Якщо це також не встановлено, планувальник вважає, що ємності недостатньо, і пробує інший вузол.
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSIStorageCapacity
CSIStorageCapacity зберігає результат одного виклику CSI GetCapacity. Для певного StorageClass це описує доступну ємність у певному сегменті топології. Це можна використовувати під час розгляду місця для створення нових PersistentVolumes.
Наприклад, це може виражати такі речі:
StorageClass "standard" має "1234 GiB" доступних у "topology.kubernetes.io/zone=us-east1"
StorageClass "localssd" має "10 GiB" доступних у "kubernetes.io/hostname=knode-abc123"
Наступні три випадки всі означають, що для певної комбінації немає доступної ємності:
не існує обʼєкта з підходящою топологією та назвою класу зберігання
такий обʼєкт існує, але ємність не встановлена
такий обʼєкт існує, але ємність дорівнює нулю
Виробник цих обʼєктів може вирішити, який підхід є більш підходящим.
Вони використовуються kube-scheduler, коли драйвер CSI обирає планування з урахуванням ємності за допомогою CSIDriverSpec.StorageCapacity. Планувальник порівнює MaximumVolumeSize з запитаним розміром очікуваних томів, щоб відфільтрувати непридатні вузли. Якщо MaximumVolumeSize не встановлено, він повертається до порівняння з менш точним Capacity. Якщо це також не встановлено, планувальник вважає, що ємності недостатньо, і пробує інший вузол.
capacity є значенням, яке повідомляє драйвер CSI у своєму GetCapacityResponse для GetCapacityRequest з топологією та параметрами, що відповідають попереднім полям.
Семантика наразі (специфікація CSI 1.2) визначена як: доступна ємність у байтах для зберігання, яка може бути використана для створення томів. Якщо не встановлено, ця інформація наразі недоступна.
maximumVolumeSize є значенням, яке повідомляє драйвер CSI у своєму GetCapacityResponse для GetCapacityRequest з топологією та параметрами, що відповідають попереднім полям.
Семантика визначена з CSI spec 1.4.0 як найбільший розмір, який може бути використаний у полі CreateVolumeRequest.capacity_range.required_bytes для створення тому з тими ж параметрами, що й у GetCapacityRequest. Відповідне значення в Kubernetes API — це ResourceRequirements.Requests у запиті на том.
Стандартні метадані обʼєкта. Імʼя не має особливого значення. Воно повинно бути субдоменом DNS (допускаються крапки, 253 символи). Щоб уникнути конфліктів з іншими драйверами CSI в кластері, рекомендується використовувати csisc-<uuid>, згенероване імʼя або зворотне доменне імʼя, яке закінчується унікальним імʼям драйвера CSI.
nodeTopology визначає, які вузли мають доступ до сховища, для якого була повідомлена ємність. Якщо не встановлено, сховище недоступне з будь-якого вузла в кластері. Якщо порожнє, сховище доступне з усіх вузлів. Це поле незмінне.
storageClassName* string
storageClassName представляє імʼя StorageClass, до якого застосовується повідомлена ємність. Воно повинно відповідати тим самим вимогам, що й імʼя обʼєкта StorageClass (непорожнє, субдомен DNS). Якщо цей обʼєкт більше не існує, обʼєкт CSIStorageCapacity є застарілим і повинен бути видалений його творцем. Це поле незмінне.
CSIStorageCapacityList
CSIStorageCapacityList є колекцією обʼєктів CSIStorageCapacity.
POST /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CSIStorageCapacity
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CSIStorageCapacity
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва CSIStorageCapacity
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities
Параметри шляху
Назва
Тип
Опис
namespace
string
Назва обʼєкта та область авторизації, наприклад для команд і проєктів
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/csistoragecapacities
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowedTopologies обмежує топології вузлів, де томи можуть бути динамічно створені. Кожен втулок томів визначає свої власні підтримувані специфікації топології. Порожній список TopologySelectorTerm означає, що обмежень топології немає. Це поле враховується лише серверами, які увімкнули функцію VolumeScheduling.
mountOptions керує параметрами монтування для динамічно створених PersistentVolumes цього класу сховища. Наприклад: ["ro", "soft"]. Не перевіряється — монтування PV просто не вдасться, якщо один з параметрів недійсний.
parameters object
parameters містить параметри для провайдера, який повинен створювати томи цього класу сховища.
provisioner* string
provisioner вказує тип провайдера.
reclaimPolicy string
reclaimPolicy керує політикою відновлення для динамічно створених PersistentVolumes цього класу сховища. Стандартно використовується Delete.
Можливі значення enum:
"Delete" означає, що том буде видалено з Kubernetes після звільнення з його запиту. Втулок томів повинен підтримувати видалення.
"Recycle" означає, що том буде перероблений назад у пул невикористаних постійних томів після звільнення з його запиту. Втулок томів повинен підтримувати вивільнення.
"Retain" означає, що том залишиться у своєму поточному стані (Released) для ручного відновлення адміністратором. Стандартна політика — Retain.
volumeBindingMode string
volumeBindingMode показує, як PersistentVolumeClaims повинні бути створені та привʼязані.
Якщо не встановлено, використовується VolumeBindingImmediate. Це поле враховується лише серверами, які увімкнули функцію VolumeScheduling.
Можливі значення enum:
"Immediate" означає, що PersistentVolumeClaims повинні бути негайно створені та привʼязані. Це стандартний режим.
"WaitForFirstConsumer" означає, що PersistentVolumeClaims не повинні створюватися та привʼязуватися до тих пір, поки не буде створено перший Pod, який посилається на PersistentVolumeClaim. Створення та привʼязка томів відбудеться під час планування Podʼів.
Стандартні метадані списку. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
TopologySelectorLabelRequirement
Вимоги до селектора топології є селектором, який відповідає заданій мітці. Це альфа-функція і може змінитися в майбутньому.
Поле
Опис
key* string
Ключ мітки, до якої застосовується селектор.
values* string array
Масив значень рядків. Одне значення повинно відповідати мітці, щоб бути обраним. Кожен запис у Values обʼєднується за логікою OR.
TopologySelectorTerm
Термін селектора топології представляє результат запитів до міток. Null або порожній термін селектора топології не відповідає жодним обʼєктам. Вимоги до них обʼєднуються за логікою AND. Він забезпечує підмножину функціональності NodeSelectorTerm. Це альфа-функція і може змінитися в майбутньому.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/storageclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageClass
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
attachError представляє останню помилку, що виникла під час операції приєднання, якщо така є. Це поле повинно встановлюватися лише сутністю, що виконує операцію приєднання, тобто зовнішнім приєднувачем.
attached* boolean
attached вказує, що том успішно приєднано. Це поле повинно встановлюватися лише сутністю, що виконує операцію приєднання, тобто зовнішнім приєднувачем.
attachmentMetadata object
attachmentMetadata заповнюється будь-якою інформацією, поверненою під час операції приєднання, після успішного приєднання, яка повинна бути передана у наступні виклики WaitForAttach або Mount. Це поле повинно встановлюватися лише сутністю, що виконує операцію приєднання, тобто зовнішнім приєднувачем.
detachError представляє останню помилку, що виникла під час операції відʼєднання, якщо така є. Це поле повинно встановлюватися лише сутністю, що виконує операцію відʼєднання, тобто зовнішнім приєднувачем.
VolumeAttachmentList
VolumeAttachmentList є колекцією обʼєктів VolumeAttachment.
VolumeAttachmentSource представляє том, який слід приєднати. Наразі лише PersistentVolumes можуть бути приєднані через зовнішній приєднувач, у майбутньому ми можемо дозволити також inline томи в подах. Може бути встановлено лише один член.
inlineVolumeSpec містить всю інформацію, необхідну для приєднання постійного тому, визначеного в inline VolumeSource пода. Це поле заповнюється лише для функції CSIMigration. Воно містить перекладені поля з inline VolumeSource пода до PersistentVolumeSpec. Це поле знаходиться на рівні бета-версії і враховується лише серверами, які увімкнули функцію CSIMigration.
persistentVolumeName string
persistentVolumeName представляє імʼя постійного тому, який слід приєднати.
VolumeError
VolumeError фіксує помилку, що виникла під час операції з томом.
Поле
Опис
errorCode integer
errorCode є числовим кодом gRPC, що представляє помилку, яка виникла під час операцій Attach або Detach. Це поле вимагає увімкнення функціональної можливості MutableCSINodeAllocatableCount.
message string
message представляє помилку, яка виникла під час операцій Attach або Detach. Цей рядок може бути зареєстрований, тому він не повинен містити конфіденційну інформацію.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/storage.k8s.io/v1/volumeattachments/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttachment
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/volumeattachments/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttachment
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/volumeattachments/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttachment
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/volumeattachments
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/storage.k8s.io/v1/volumeattachments/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttachment
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/storage.k8s.io/v1/volumeattachments/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttachment
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
VolumeAttributesClass представляє специфікацію змінних атрибутів томів, визначених драйвером CSI. Клас можна вказати під час динамічного створення PersistentVolumeClaims і змінити в специфікації PersistentVolumeClaim після створення.
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
VolumeAttributesClass
VolumeAttributesClass представляє специфікацію змінних атрибутів томів, визначених драйвером CSI. Клас можна вказати під час динамічного створення PersistentVolumeClaims і змінити в специфікації PersistentVolumeClaim після створення.
parameters містить атрибути томів, визначені драйвером CSI. Ці значення є непрозорими для Kubernetes і передаються безпосередньо драйверу CSI. Підлягаючий зберіганню провайдер підтримує зміну цих атрибутів на наявному томі, проте саме поле parameters є незмінним. Щоб викликати оновлення тому, слід створити новий VolumeAttributesClass з новими параметрами, а PersistentVolumeClaim слід оновити, щоб посилатися на новий VolumeAttributesClass.
Це поле є обовʼязковим і повинно містити принаймні одну пару ключ/значення. Ключі не можуть бути порожніми, а максимальна кількість параметрів становить 512, з сумарним максимальним розміром 256K. Якщо драйвер CSI відхиляє недійсні параметри, цільовий PersistentVolumeClaim буде встановлено в стан "Infeasible" у полі modifyVolumeStatus.
VolumeAttributesClassList
VolumeAttributesClassList є колекцією обʼєктів VolumeAttributesClass.
POST /apis/storage.k8s.io/v1/volumeattributesclasses
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/storage.k8s.io/v1/volumeattributesclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttributesClass
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/volumeattributesclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttributesClass
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/storage.k8s.io/v1/volumeattributesclasses
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/volumeattributesclasses/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва VolumeAttributesClass
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storage.k8s.io/v1/watch/volumeattributesclasses
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Ресурс, який переноситься. Програма міграції надсилає запити до точки доступу, що обслуговує цей ресурс. Незмінне поле.
StorageVersionMigrationStatus
Стан міграції збережених даних.
Поле
Опис
conditions Condition array patch strategy: злиття за ключем type
Останні доступні спостереження за поточним станом міграції.
resourceVersion string
ResourceVersion для порівняння з кешем GC під час виконання міграції. Це поточна версія ресурсу для даної групи, версії та ресурсу, коли kube-controller-manager вперше спостерігає цей ресурс StorageVersionMigration.
StorageVersionMigrationList
StorageVersionMigrationList є колекцією міграцій версій збережених даних.
POST /apis/storagemigration.k8s.io/v1beta1/storageversionmigrations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
PUT /apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersionMigration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSeconds
integer
Часу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
Якщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependents
boolean
Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicy
string
Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersionMigration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
GET /apis/storagemigration.k8s.io/v1beta1/storageversionmigrations
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storagemigration.k8s.io/v1beta1/watch/storageversionmigrations/{name}
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersionMigration
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
GET /apis/storagemigration.k8s.io/v1beta1/watch/storageversionmigrations
Параметри запиту
Назва
Тип
Опис
allowWatchBookmarks
boolean
allowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continue
string
Опція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelector
string
Селектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limit
integer
limit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEvents
boolean
sendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelector
string
shardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
object.metadata.uid
object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
force
boolean
Force має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.
GET /apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersionMigration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
PUT /apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/{name}/status
Параметри шляху
Назва
Тип
Опис
name
string
Назва StorageVersionMigration
Параметри запиту
Назва
Тип
Опис
pretty
string
Якщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRun
string
Коли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
All: всі етапи dry run будуть виконані
fieldManager
string
fieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidation
string
fieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
Високорівневі показники для вимірювання надійності та продуктивності компонентів Kubernetes.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.32 [stable](стандартно увімкнено)
Типово Kubernetes 1.36 публікує метрики Індикаторів Рівня Обслуговування (SLI) для кожного компонентного бінарного файлу Kubernetes. Ця точка доступу метрики відкривається на порту HTTPS кожного компонента за шляхом /metrics/slis. Функціональна можливістьComponentSLIs типово увімкнена для кожного компонента Kubernetes починаючи з версії v1.27.
Метрики SLI
З увімкненими метриками SLI кожен компонент Kubernetes відкриває дві метрики, позначені для кожної перевірки стану:
вимірювач (gauge, який представляє поточний стан перевірки стану)
лічильник (counter, який записує накопичувальні підрахунки, спостережені для кожного стану перевірки стану)
Ви можете використовувати інформацію метрики для розрахунку статистики доступності кожного компонента. Наприклад, сервер API перевіряє стан etcd. Ви можете визначити та повідомити, наскільки доступним чи недоступним був etcd — як повідомляє його клієнт, сервер API.
Дані вимірювача Prometheus виглядають так:
# HELP kubernetes_healthcheck [ALPHA] Ця метрика записує результат однієї перевірки стану.
# TYPE kubernetes_healthcheck gauge
kubernetes_healthcheck{name="autoregister-completion",type="healthz"} 1
kubernetes_healthcheck{name="autoregister-completion",type="readyz"} 1
kubernetes_healthcheck{name="etcd",type="healthz"} 1
kubernetes_healthcheck{name="etcd",type="readyz"} 1
kubernetes_healthcheck{name="etcd-readiness",type="readyz"} 1
kubernetes_healthcheck{name="informer-sync",type="readyz"} 1
kubernetes_healthcheck{name="log",type="healthz"} 1
kubernetes_healthcheck{name="log",type="readyz"} 1
kubernetes_healthcheck{name="ping",type="healthz"} 1
kubernetes_healthcheck{name="ping",type="readyz"} 1
Дані лічильника виглядають так:
# HELP kubernetes_healthchecks_total [ALPHA] Ця метрика записує результати всіх перевірок стану.
# TYPE kubernetes_healthchecks_total counter
kubernetes_healthchecks_total{name="autoregister-completion",status="error",type="readyz"} 1
kubernetes_healthchecks_total{name="autoregister-completion",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="autoregister-completion",status="success",type="readyz"} 14
kubernetes_healthchecks_total{name="etcd",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="etcd",status="success",type="readyz"} 15
kubernetes_healthchecks_total{name="etcd-readiness",status="success",type="readyz"} 15
kubernetes_healthchecks_total{name="informer-sync",status="error",type="readyz"} 1
kubernetes_healthchecks_total{name="informer-sync",status="success",type="readyz"} 14
kubernetes_healthchecks_total{name="log",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="log",status="success",type="readyz"} 15
kubernetes_healthchecks_total{name="ping",status="success",type="healthz"} 15
kubernetes_healthchecks_total{name="ping",status="success",type="readyz"} 15
Використання цих даних
Точка доступу метрик компонентів SLI призначена для збору даних з високою частотою. Збір даних з високою частотою означає, що ви отримуєте більш точний сигнал вимірювача, який можна потім використовувати для розрахунку SLO. Точка доступу /metrics/slis надає необроблені дані, необхідні для розрахунку SLO доступності для відповідного компонента Kubernetes.
6.2 - Дані метрик вузла
Механізми доступу до метрик на рівні вузла, томів, Pod та контейнерів, як їх бачить kubelet.
kubelet збирає статистичні дані метрик на рівні вузла, томів, pod та контейнерів, і надає цю інформацію через
Summary API.
Ви можете надіслати запит з проксі до Summary API через сервер API Kubernetes.
Ось приклад запиту до Summary API для вузла з іменем minikube:
kubectl get --raw "/api/v1/nodes/minikube/proxy/stats/summary"
Ось той самий виклик API за допомогою curl:
# Спочатку потрібно запустити "kubectl proxy"# Змініть 8080 на порт, який призначає "kubectl proxy"curl http://localhost:8080/api/v1/nodes/minikube/proxy/stats/summary
Примітка:
Починаючи з metrics-server версії 0.6.x, metrics-server запитує кінцеву точку kubelet /metrics/resource, а не /stats/summary.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [stable](стандартно увімкнено)
У Kubernetes ви можете налаштувати kubelet для збору інформації про використання ядром Linux Pressure Stall Information (PSI) щодо використання CPU, памʼяті та вводу-виводу. Інформація збирається на рівні вузлів, podʼів та контейнерів. Докладну схему див. у Summary API. Починаючи з Kubernetes v1.36, функціональна можливість KubeletPSI заблокована в значенні true і не може бути вимкнена. Інформація також доступна у Prometheus метриках.
Для того, щоб зрозуміти метрики PSI, ви можете ознайомитися зі статею Розуміння метрик PSI.
На сторінках завдань для Виправлення неполадок у кластерах обговорюється, як використовувати конвеєр метрик, який залежить від цих даних.
6.3 - Метрики Pod та Контейнерів CRI
Збір метрик Pod та контейнерів через CRI.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.23 [alpha]
kubelet збирає метрики Pod та контейнерів через cAdvisor. Як альфа-функція, Kubernetes дозволяє налаштувати збір метрик Pod та контейнерів через Інтерфейс Виконання Контейнерів (CRI). Ви повинні увімкнути функціональну можливістьPodAndContainerStatsFromCRI та використовувати сумісну реалізацію CRI (containerd >= 1.6.0, CRI-O >= 1.23.0), щоб використовувати механізм збору через CRI.
Метрики Pod та Контейнерів CRI
З увімкненим PodAndContainerStatsFromCRI, kubelet опитує підлегле середовище виконання контейнерів для отримання статистики Pod та контейнерів замість того, щоб безпосередньо перевіряти хост-систему за допомогою cAdvisor. Переваги використання середовища виконання контейнерів для цієї інформації, на відміну від прямого збору за допомогою cAdvisor, включають:
Потенційне покращення продуктивності, якщо середовище виконання контейнерів вже збирає цю інформацію під час нормальної роботи. У цьому випадку дані можуть бути повторно використані замість того, щоб бути знову агрегованими kubelet.
Це ще більше розʼєднує kubelet і середовище виконання контейнерів, дозволяючи збирати метрики для середовищ виконання контейнерів, які не запускають процеси безпосередньо на хості з kubelet, де вони спостережувані за допомогою cAdvisor (наприклад: середовища виконання контейнерів, що використовують віртуалізацію).
6.4 - Підтримка нативних гістограм для метрик Kubernetes
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [alpha](стандартно вимкнено)
Компоненти Kubernetes можуть експонувати метрики гістограм у форматі Prometheus Native Histogram, поряд із класичним форматом гістограм. Нативні гістограми використовують експоненційні межі кошиків замість фіксованих меж, що забезпечує значну ефективність зберігання, покращену продуктивність запитів та більш детальне відображення розподілів.
Перш ніж почати
Щоб використовувати нативні гістограми, вам потрібно мати:
Kubernetes v1.36 або новішу версію з увімкненою функціональною можливістю NativeHistograms.
Prometheus 2.40 або новішу версію для збору та зберігання нативних гістограм. Рекомендується Prometheus 3.0+ для конфігурації на рівні завдань.
Що таке нативні гістограми?
Класичні гістограми Prometheus використовують фіксовані межі кошиків (наприклад, [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10] секунд). Кожен кошик створює окрему часову серію (_bucket, _count, _sum), що може призвести до:
Високих витрат на зберігання у великих масштабах, оскільки кожна гістограма генерує багато часових серій.
Проблем з точністю, оскільки дані в межах широкого кошика є невідрізненими. Наприклад, запит, що виконується за 1 мкс, і запит, що виконується за 4 мс, обидва потрапляють у той самий кошик le="0.005".
Нативні гістограми вирішують ці обмеження, використовуючи експоненційні межі кошиків, які автоматично підлаштовуються під розподіл даних. Переваги включають:
~10x зменшення кількості часових серій для кожної метрики гістограми, що значно зменшує обсяг зберігання Prometheus і покращує продуктивність запитів.
Більш детальна роздільна здатність для виявлення регресій продуктивності та встановлення точних порогів SLO.
Як це працює
Коли функціональна можливість NativeHistograms увімкнена, компоненти Kubernetes одночасно експонують метрики гістограм у класичному та нативному форматах (подвійна експозиція). Формат, що повертається, залежить від заголовка Accept у HTTP-запиті (узгодження вмісту Prometheus). Prometheus автоматично встановлює цей заголовок на основі вашої конфігурації збору; вам потрібно враховувати це лише при безпосередньому запиті до точки доступу /metrics.
Текстовий формат (Accept: text/plain, OpenMetrics 1.0): Повертає лише класичні кошики гістограм. Зворотно сумісний з усіма наявними інструментами.
Формат Protobuf (Accept: application/vnd.google.protobuf): Містить як класичні кошики, так і дані нативних гістограм. Prometheus автоматично запитує цей формат, коли scrape_native_histograms: true встановлено в конфігурації збору Prometheus для відповідного завдання збору.
Ця стратегія подвійної експозиції забезпечує:
Наявні інфопанелі та сповіщення продовжують працювати без змін.
Користувачі можуть поступово переносити запити на нативні гістограми.
Prometheus зберігає той формат, який він налаштований збирати.
Увімкнення нативних гістограм
Увімкнення нативних гістограм є двоетапним процесом: увімкніть функціональну можливість на компонентах Kubernetes і налаштуйте Prometheus для збору нативних гістограм.
Крок 1: Увімкніть функціональну можливість Kubernetes
Увімкніть функціональну можливість NativeHistograms на компонентах Kubernetes, з яких ви хочете експонувати нативні гістограми:
--feature-gates=NativeHistograms=true
Ця функціональна можливість застосовується до наступних компонентів:
kube-apiserver
kube-controller-manager
kube-scheduler
kubelet
kube-proxy
Метрики кожного компонента є незалежними; ви можете увімкнути або вимкнути функціональну можливість для кожного компонента окремо.
Крок 2: Налаштуйте Prometheus
Конфігурація Prometheus залежить від вашої версії Prometheus.
Версія Prometheus
Підтримка нативних гістограм
Конфігурація
Примітки
< 2.40
Немає
N/A
Тільки класичні гістограми. Увімкнення функціональної можливості Kubernetes не має ефекту.
2.40 – 2.x
Експериментальна
--enable-feature=native-histograms (глобально)
Все або нічого; немає контролю на рівні завдання.
3.0 – 3.7
Стабільна
На рівні завдання scrape_native_histograms та always_scrape_classic_histograms
Рекомендовано конфігурацію на рівні завдання. Глобальний прапорець все ще підтримується.
3.8
Стабільна
Конфігурація на рівні завдання (необхідна для точного контролю)
Глобальний прапорець лише змінює значення за замовчуванням для всіх завдань.
3.9+
Стабільна
На рівні завдання scrape_native_histograms тільки
Глобальний прапорець видалено. Потрібно використовувати конфігурацію на рівні завдання.
Для Prometheus 3.x використовуйте конфігурацію на рівні завдання для точного контролю:
scrape_configs:- job_name:'kubernetes-apiservers'scrape_native_histograms:true# Використовує нативні гістограмиalways_scrape_classic_histograms:true# Зберігає класичний формат під час міграції
Встановіть обидві опції в true під час періоду міграції. Це дозволяє збирати нативні гістограми, зберігаючи класичні гістограми для наявних інформаційних панелей.
Примітка:
Нативні гістограми вимагають формату експозиції Protobuf. Це обробляється автоматично Prometheus за замовчуванням. Однак, якщо ви налаштували scrape_protocols, переконайтеся, що PrometheusProto включено до списку.
Міграція інформаційних панелей та сповіщень
Увага:
Якщо Prometheus налаштовано з scrape_native_histograms: true, але always_scrape_classic_histograms: false (стандартно), Prometheus збирає лише нативні гістограми. Наявні інформаційні панелі, які використовують класичні запити гістограм (наприклад, histogram_quantile(..._bucket...)), не відображатимуть дані. Завжди встановлюйте always_scrape_classic_histograms: true під час міграції.
Під час міграції з класичних запитів гістограм на нативні гістограми, дотримуйтесь цього робочого процесу:
Увімкніть обидва формати: Встановіть scrape_native_histograms: true та always_scrape_classic_histograms: true у конфігурації збору Prometheus.
Міграція запитів: Оновіть запити інформаційних панелей та вирази сповіщень з класичних функцій гістограм на еквіваленти нативних гістограм.
Перевірка на staging: Перевірте всі інформаційні панелі та сповіщення з запитами нативних гістограм перед впровадженням в експлуатацію.
Вимкнення класичного збору: Після завершення та перевірки міграції встановіть always_scrape_classic_histograms: false, щоб зменшити обсяг зберігання.
Вимкнення нативних гістограм
Ви можете вимкнути нативні гістограми в будь-який час, використовуючи один із двох підходів:
На стороні Prometheus (найшвидший, не потребує перезапуску Kubernetes; тільки Prometheus 3.x): Встановіть scrape_native_histograms: false для кожного завдання збору. Prometheus відновлює збір класичного формату на наступному інтервалі збору.
Функціональна можливість Kubernetes: Перезапустіть компонент з --feature-gates=NativeHistograms=false. Після перезапуску буде доступний тільки класичний формат гістограм.
Коли нативні гістограми вимкнено, точка доступу метрик повертається до класичного формату гістограм. Історичні дані нативних гістограм у Prometheus залишаються доступними для запитів.
Усунення несправностей
Інформаційні панелі не відображають дані після увімкнення нативних гістограм: Це відбувається, коли Prometheus налаштовано з scrape_native_histograms: true, але always_scrape_classic_histograms: false (зазвичай), і ваші інформаційні панелі все ще використовують класичні запити гістограм (наприклад, histogram_quantile(..._bucket...)).
Виправлення: Встановіть always_scrape_classic_histograms: true, щоб відновити збір класичного формату під час міграції інформаційних панелей.
Збільшення використання памʼяті після увімкнення нативних гістограм: Невелике збільшення памʼяті очікується для зберігання кошиків нативних гістограм, обмежене максимумом 160 кошиків на гістограму. Відстежуйте process_resident_memory_bytes для виявлення несподіваних збільшень.
Виправлення: Якщо тиск на памʼять значний, вимкніть збір нативних гістограм у Prometheus (scrape_native_histograms: false) або вимкніть функціональну можливість Kubernetes.
Логи Prometheus повідомляють про невідомий формат метрик: Ваша версія Prometheus занадто стара, щоб розуміти нативні гістограми.
Виправлення: Оновіть Prometheus до версії 2.40+ або вимкніть нативні гістограми в Kubernetes.
Не впевнені, чи нативні гістограми експонуються: Перевірте стан функціональної можливості, виконавши запит kubernetes_feature_enabled{name="NativeHistograms"} у Prometheus. Значення 1 вказує на те, що функціональна можливість увімкнена. Ви також можете безпосередньо запитати кінцеву точку метрик у форматі protobuf:
6.5 - Розуміння метрик Pressure Stall Information (PSI)
Детальне пояснення метрик Pressure Stall Information (PSI) та їх використання для виявлення тиску на ресурси в Kubernetes.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [stable](стандартно увімкнено)
Kubernetes дозволяє налаштувати kubelet для збору інформації про тиск на ресурси в Linux Pressure Stall Information (PSI) про використання CPU, памʼяті та вводу-виводу. Інформація збирається на рівні вузлів, podʼів та контейнерів. Починаючи з Kubernetes v1.36, функціональна можливість KubeletPSI заблокована в значенні true і не може бути вимкнена.
Метрики PSI надаються через два різні джерела:
Summary API kubelet, який надає дані PSI на рівні вузлів, podʼів та контейнерів.
Точка доступу /metrics/cadvisor на kubelet, яка надає метрики PSI у форматі Prometheus.
Вимоги
Pressure Stall Information вимагає наступного на ваших вузлах Linux:
Ядро Linux має бути версії 4.20 чи новіше.
Ядро має бути скомпільоване з параметром CONFIG_PSI=y. Що у більшість сучасних дистрибутивів є стандартно увімкненим. Ви можете перевірити конфігурацію вашого ядра, виконавши команду zgrep CONFIG_PSI /proc/config.gz.
Деякі дистрибутиви Linux можуть скомпілювати PSI в ядро, але мати його стандартно вимкненим. Якщо це так, вам потрібно увімкнути його під час завантаження, додавши параметр psi=1 до командного рядка ядра.
Метрики Pressure Stall Information (PSI) надаються для трьох ресурсів: CPU, памʼяті та вводу-виводу. Вони поділяються на два основних типи тиску: some та full.
some: Це значення вказує на те, що деякі завдання (одне або кілька) заблоковані на ресурсі. Наприклад, якщо деякі завдання чекають на ввід-вивід, ця метрика зросте. Це може бути раннім показником конкуренції за ресурси.
full: Це значення вказує на те, що всі не-очікувальні завдання заблоковані на ресурсі одночасно. Це свідчить про більш серйозний дефіцит ресурсів, коли вся система не може рухатись далі.
Кожен тип тиску надає чотири метрики: avg10, avg60, avg300 та total. Значення avg представляють відсоток часу, протягом якого завдання були заблоковані за 10-секундними, 60-секундними та 5-хвилинними ковзаючими середніми. Значення total є кумулятивним лічильником в мікросекундах, що показує загальний час, протягом якого завдання були заблоковані.
Розглянемо, наприклад, наступний запит до Summary API:
kubectl get --raw "/api/v1/nodes/$(kubectl get nodes -o jsonpath='{.items[0].metadata.name}')/proxy/stats/summary" | jq '.pods[].containers[] | select(.name=="<CONTAINER_NAME>") | {name, cpu: .cpu.psi, memory: .memory.psi, io: .io.psi}'.
Це повертає інформацію у форматі JSON, як показано нижче.
Це простий сценарій сплеску. Значення avg10 для cpu.some рівне 0.74 вказує на те, що за останні 10 секунд принаймні одне завдання в цьому контейнері було заблоковане на CPU протягом 0.74% часу (0.0074 секунди або 74 мілісекунди). Оскільки avg10 (0.74) значно перевищує avg300 (0.21) для того ж ресурсу, це свідчить про недавній сплеск конкуренції за ресурси, а не про тривалу проблему. Якщо спостерігати за цими метриками постійно і значення avg300 також зросте, можна діагностувати більш серйозну, тривалу проблему.
Крім того, зверніть увагу, що в цьому прикладі cpu.some показує тиск, тоді як cpu.full залишається на рівні 0.00. Це означає, що хоча деякі процеси були затримані в очікуванні часу на CPU, контейнер в цілому все ще просувався вперед. Ненульове значення full вказувало б на те, що всі неактивні завдання були заблоковані одночасно, що є набагато більшою проблемою. Хоча не так зрозуміло для людини, значення total рівне 35232438 представляє кумулятивний час блокування в мікросекундах, що дозволяє виявляти сплески затримки, які інакше можуть не відображатися в середніх значеннях.
Як останнє зауваження, при спостереженні високого тиску на I/O разом з низьким тиском на памʼять, це може вказувати на те, що застосунок очікує на пропускну здатність диска, а не через нестачу доступної оперативної памʼяті. Вузол не перевантажений по памʼяті, і можна розслідувати іншу діагностику для споживання диска.
Приклад сценаріїв
Ви можете використовувати простий Pod з інструментом для стрес-тестування, щоб згенерувати тиск на ресурси та спостерігати за метриками PSI. У наступних прикладах використовується образ контейнера agnhost, який включає інструмент stress.
Генерація тиску на CPU
Створіть Pod, який генерує тиск на CPU за допомогою утиліти stress. Це навантаження створить сильне навантаження на один CPU-ядро.
Застосуйте його до вашого кластера: kubectl apply -f cpu-pressure-pod.yaml
Спостереження за тиском на CPU
Після запуску Podʼа ви можете спостерігати за тиском на CPU через Summary API або через точку моніторингу метрик Prometheus.
Використовуючи Summary API:
Спостерігайте за підсумковими статистиками для вашого вузла. У окремому терміналі виконайте:
# Замініть <node-name> на імʼя вузла у вашому кластеріkubectl get --raw "/api/v1/nodes/<node-name>/proxy/stats/summary"| jq '.pods[] | select(.podRef.name | contains("cpu-pressure-pod"))'
Ви побачите, що метрики PSI some для CPU зростають у виводі Summary API. Значення avg10 для тиску some повинно перевищити нуль, що вказує на те, що завдання витрачають час на блокування на CPU.
Використовуючи точку моніторингу метрик Prometheus:
Надіщліть запит до точки /metrics/cadvisor, щоб побачити метрику container_pressure_cpu_waiting_seconds_total.
# Замініть <node-name> на імʼя вузла, на якому працює Podkubectl get --raw "/api/v1/nodes/<node-name>/proxy/metrics/cadvisor"|\
grep 'container_pressure_cpu_waiting_seconds_total{container="cpu-stress"}'
Вихідні дані повинні показувати зростаюче значення, що вказує на те, що контейнер витрачає час на блокування в очікуванні ресурсів CPU.
Очищення
Вилучіть Pod, коли закінчите:
kubectl delete pod cpu-pressure-pod
Генерація тиску на памʼять
Цей приклад створює Pod, який безперервно записує у файли в записуваному шарі контейнера, що призводить до зростання кешу сторінок ядра та примусового відновлення памʼяті, що генерує тиск.
Створіть файл з назвою memory-pressure-pod.yaml:
apiVersion:v1kind:Podmetadata:name:memory-pressure-podspec:restartPolicy:Nevercontainers:- name:memory-stressimage:registry.k8s.io/e2e-test-images/agnhost:2.47command:["/bin/sh","-c"]args:- "i=0; while true; do dd if=/dev/zero of=testfile.$i bs=1M count=50 &>/dev/null; i=$(((i+1)%5)); sleep 0.1; done"resources:limits:memory:"200M"requests:memory:"200M"
Застосуйте його до кластера: kubectl apply -f memory-pressure-pod.yaml
Спостереження за тиском на памʼять
Використовуючи Summary API:
У виводі підсумків ви спостерігатимете зростання метрик PSI full для памʼяті, що вказує на те, що система зазнає значного тиску на памʼять.
# Замініть <node-name> на імʼя вузла у вашому кластеріkubectl get --raw "/api/v1/nodes/<node-name>/proxy/stats/summary"| jq '.pods[] | select(.podRef.name | contains("memory-pressure-pod"))'
Використовуючи точку моніторингу метрик Prometheus:
Надіщліть запит до точки доступу /metrics/cadvisor, щоб побачити метрику container_pressure_memory_waiting_seconds_total.
# Замініть <node-name> на імʼя вузла, на якому працює Podkubectl get --raw "/api/v1/nodes/<node-name>/proxy/metrics/cadvisor"|\
grep 'container_pressure_memory_waiting_seconds_total{container="memory-stress"}'
У виводі ви спостерігатимете зростання значення метрики, що вказує на те, що система зазнає значного тиску на памʼять.
Очищення
Вилучіть Pod, коли закінчите:
kubectl delete pod memory-pressure-pod
Генерація тиску на I/O
Цей Pod генерує тиск на I/O, безперервно записуючи файл на диск і використовуючи sync для скидання даних з памʼяті, що створює затримки I/O.
Застосуйте це до вашого кластера: kubectl apply -f io-pressure-pod.yaml
Спостереження за тиском на I/O
Використовуючи Summary API:
Ви побачите, що деякі метрики PSI для I/O зростають, оскільки Pod безперервно записує на диск.
# Замініть <node-name> на імʼя вузла у вашому кластеріkubectl get --raw "/api/v1/nodes/<node-name>/proxy/stats/summary"| jq '.pods[] | select(.podRef.name | contains("io-pressure-pod"))'
Використовуючи точку моніторингу метрик Prometheus:
Надіщліть запит до точки доступу /metrics/cadvisor, щоб побачити метрику container_pressure_io_waiting_seconds_total.
# Замініть <node-name> на імʼя вузла, на якому працює Podkubectl get --raw "/api/v1/nodes/<node-name>/proxy/metrics/cadvisor"|\
grep 'container_pressure_io_waiting_seconds_total{container="io-stress"}'
Ви побачите, що значення метрики зростає, оскільки Pod безперервно записує на диск.
Очищення
Вилучіть Pod, коли закінчите:
kubectl delete pod io-pressure-pod
Що далі
Сторінки завдань для Усунення несправностей кластерів містять опис того, як використовувати конвеєр метрик, який спирається на ці дані.
6.6 - Kubernetes z-pages
Забезпечують діагностику під час роботи компонентів Kubernetes, надаючи інформацію про стан роботи компонентів та прапорці конфігурації.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [beta]
Компоненти ядра Kubernetes можуть надавати набір z-endpoints, щоб полегшити користувачам налагодження кластера та його компонентів. Ці точки доступу мають використовуватися виключно для перевірки людиною для отримання інформації про налагодження двійкового коду компонента у реальному часі. У Kubernetes 1.36 це бета функція, і формат відповіді може змінитися у майбутніх випусках.
z-pages
Kubernetes v1.36 дозволяє увімкнути z-pages, які допоможуть вам усунути проблеми з компонентами основної панелі управління. Ці спеціальні налагоджувальні точки доступу надають внутрішню інформацію про запущені компоненти. У Kubernetes 1.36 компоненти обслуговують такі точки доступу (якщо їх увімкнено):
Увімкнена за допомогою функціональної можливостіComponentStatusz, точка доступу /statusz показує високорівневу інформацію про компонент, таку як версія Kubernetes, версія емуляції, час запуску тощо.
Відповідь у вигляді простого тексту /statusz від сервера API виглядає приблизно так:
kube-apiserver statusz
Warning: This endpoint is not meant to be machine parseable, has no formatting compatibility guarantees and is for debugging purposes only.
Started: Wed Oct 16 21:03:43 UTC 2024
Up: 0 hr 00 min 16 sec
Go version: go1.23.2
Binary version: 1.32.0-alpha.0.1484+5eeac4f21a491b-dirty
Emulation version: 1.32.0-alpha.0.1484
Paths: /healthz /livez /metrics /readyz /statusz /version
statusz (структуровано)
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [beta](стандартно увімкнено)
Починаючи з Kubernetes v1.35, точка доступу /statusz підтримує структурований формат відповіді з версіями, якщо запит надсилається з відповідним заголовком Accept. Без заголовка Accept точка доступу типово повертає відповідь у форматі простого тексту.
Щоб отримати структуровану відповідь, використовуйте:
Схема config.k8s.io/v1beta1 для структурованої відповіді /statusz виглядає наступним чином:
// Statusz — це схема config.k8s.io/v1beta1 для точки доступу /statusz.typeStatuszstruct{// Kind є "Statusz".Kindstring`json:"kind"`// APIVersion — це версія обʼєкта, наприклад, "config.k8s.io/v1beta1".APIVersionstring`json:"apiVersion"`// Стандартні метадані обʼєкта.// +опціональноMetadatametav1.ObjectMeta`json:"metadata,omitempty"`// StartTime — час, коли було розпочато процес компонента.StartTimemetav1.Time`json:"startTime"`// UptimeSeconds — це тривалість у секундах, протягом якої компонент працював безперервно.UptimeSecondsint64`json:"uptimeSeconds"`// GoVersion — це версія мови програмування Go, яка використовується для створення бінарного файлу.// Не гарантується, що формат буде однаковим для різних збірок Go.// +опціональноGoVersionstring`json:"goVersion,omitempty"`// BinaryVersion — це версія бінарного файлу компонента.// Формат не обовʼязково відповідає семантичному версіонуванню і може бути довільним рядком.BinaryVersionstring`json:"binaryVersion"`// EmulationVersion — це версія API Kubernetes, яку емулює цей компонент.// якщо присутня, форматується як "<major>.<minor>"// +опціональноEmulationVersionstring`json:"emulationVersion,omitempty"`// MinimumCompatibilityVersion — це мінімальна версія API Kubernetes, з якою компонент призначений для роботи.// якщо присутня, форматується як "<major>.<minor>"// +опціональноMinimumCompatibilityVersionstring`json:"minimumCompatibilityVersion,omitempty"`// Шляхи містять відносні URL-адреси інших важливих точок доступу, доступних тільки для читання, для налагодження та усунення несправностей.// +опціональноPaths[]string`json:"paths,omitempty"`}
flagz
Увімкнена за допомогою функціональної можливостіComponentFlagz, точка доступу /flagz показує вам аргументи командного рядка, які було використано для запуску компонента.
Відповідь у вигляді простого тексту /flagz від сервера API виглядає приблизно так:
kube-apiserver flags
Warning: This endpoint is not meant to be machine parseable, has no formatting compatibility guarantees and is for debugging purposes only.
advertise-address=192.168.8.2
contention-profiling=false
enable-priority-and-fairness=true
profiling=true
authorization-mode=[Node,RBAC]
authorization-webhook-cache-authorized-ttl=5m0s
authorization-webhook-cache-unauthorized-ttl=30s
authorization-webhook-version=v1beta1
default-watch-cache-size=100
flagz (структуровано)
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [beta](стандартно увімкнено)
Починаючи з Kubernetes v1.35, точка доступу /flagz підтримує структурований формат відповіді з версіями, якщо запит надсилається з відповідним заголовком Accept. Без заголовка Accept точка доступу типово повертає відповідь у форматі простого тексту.
Щоб отримати структуровану відповідь, використовуйте:
Схема config.k8s.io/v1beta1 для структурованої відповіді /flagz виглядає наступним чином:
// Flagz — це схема config.k8s.io/v1beta1 для точки доступу /flagz.typeFlagzstruct{// Kind ' "Flagz".Kindstring`json:"kind"`// APIVersion — це версія обʼєкта, наприклад, "config.k8s.io/v1beta1".APIVersionstring`json:"apiVersion"`// Стандартні метадані обʼєкта.// +опціональноMetadatametav1.ObjectMeta`json:"metadata,omitempty"`// Flags містить прапорці командного рядка та їхні значення.// Ключі — це імена прапорців, а значення — це значення прапорців,// можливо, з вилученими конфіденційними значеннями.// +опціональноFlagsmap[string]string`json:"flags,omitempty"`}
Примітка:
Структуровані відповіді для /statusz та /flagz є бета-функціями у версії 1.36 і можуть бути змінені в майбутніх версіях. Вони призначені для надання машиночитаного виводу для інструментів налагодження та інтроспекції.
6.7 - Довідник Метрик Kubernetes
Деталі щодо метрик, які експортують компоненти Kubernetes.
Метрики (v1.36)
Ця сторінка містить деталі метрик, які експортують різні компоненти Kubernetes. Ви можете запитувати точки доступу метрик для цих компонентів за допомогою HTTP-запиту та отримувати поточні дані метрик у форматі Prometheus.
Список стабільних метрик Kubernetes
Стабільні метрики дотримуються суворих API контрактів, і жодні мітки не можуть бути додані або видалені зі стабільних метрик протягом їхнього життєвого циклу.
Гістограма затримки контролера допуску в секундах, визначена за назвою та розподілена для кожної операції та ресурсу API і типу (перевірка або допуск).
Гістограма затримки вебхука в секундах, ідентифікована за назвою та розбита за кожною операцією, ресурсом API та типом (валідація або допуск).
STABLE
Histogram
nameoperationrejectedtype
kube-apiserver (/metrics)
apiserver_current_inflight_requests
Максимальна кількість поточних використаних запитів цього apiserver на тип запиту за останню секунду.
STABLE
Gauge
request_kind
kube-apiserver (/metrics)
apiserver_longrunning_requests
Вимірювач усіх активних тривалих запитів apiserver, розділених за дієсловом, групою, версією, ресурсом, областю та компонентом. Не всі запити відстежуються таким чином.
STABLE
Gauge
componentgroupresourcescopesubresourceverbversion
kube-apiserver (/metrics)
apiserver_request_duration_seconds
Розподіл затримки відповіді в секундах для кожного дієслова, значення dry run, групи, версії, ресурсу, субресурсу, області застосування та компонента.
Вимірювач запитуваних застарілих API, розподілених за групами API, версією, ресурсом, субресурсом і видаленим_випуском.
STABLE
Gauge
groupremoved_releaseresourcesubresourceversion
kube-apiserver (/metrics)
apiserver_response_sizes
Розподіл розміру відповіді в байтах для кожної групи, версії, дієслова, ресурсу, субресурсу, області дії та компонента.
STABLE
Histogram
componentgroupresourcescopesubresourceverbversion
kube-apiserver (/metrics)
apiserver_storage_objects
[ЗАСТАРІЛО, розгляньте можливість використання apiserver_resource_objects замість цього]Кількість збережених обʼєктів на момент останньої перевірки з розподілом за типом. У разі помилки вибірки значення буде -1.
STABLE
Gauge
resource
kube-apiserver (/metrics)
1.34.0
apiserver_storage_size_bytes
Розмір сховища для файлу бази даних, фізично виділеного в байтах.
STABLE
Custom
storage_cluster_id
kube-apiserver (/metrics)
container_cpu_usage_seconds_total
Сукупний час процесора, який споживає контейнер, у секундах ядра
Час між запланованим запуском cronjob і створенням відповідного завдання
STABLE
Histogram
kube-controller-manager (/metrics)
job_controller_job_pods_finished_total
Кількість завершених Podʼів, які повністю відстежуються
STABLE
Counter
completion_moderesult
kube-controller-manager (/metrics)
job_controller_job_sync_duration_seconds
Час, необхідний для синхронізації завдання
STABLE
Histogram
actioncompletion_moderesult
kube-controller-manager (/metrics)
job_controller_job_syncs_total
Кількість синхронізацій завдання
STABLE
Counter
actioncompletion_moderesult
kube-controller-manager (/metrics)
job_controller_jobs_finished_total
Кількість завершених завдань
STABLE
Counter
completion_modereasonresult
kube-controller-manager (/metrics)
kube_pod_resource_limit
Ліміт ресурсів для робочих навантажень в кластері, з розбивкою за Podʼами. Це показує використання ресурсів, яке планувальник і kubelet очікують на кожен Pod для ресурсів, а також одиницю виміру для ресурсу, якщо така є.
STABLE
Custom
namespacepodnodeschedulerpriorityresourceunit
kube-scheduler (/metrics)
kube_pod_resource_request
Ресурси, запитувані робочими навантаженнями в кластері, з розбивкою за Podʼами. Це показує використання ресурсів, яке планувальник і kubelet очікують на кожен Pod для ресурсів, а також одиницю виміру для ресурсу, якщо така є.
STABLE
Custom
namespacepodnodeschedulerpriorityresourceunit
kube-scheduler (/metrics)
kubernetes_healthcheck
Ця метрика фіксує результат однієї перевірки справності.
STABLE
Gauge
nametype
cloud-controller-manager (/metrics/slis)
kube-apiserver (/metrics/slis)
kube-controller-manager (/metrics/slis)
kube-proxy (/metrics/slis)
kube-scheduler (/metrics/slis)
kubelet (/metrics/slis)
kubernetes_healthchecks_total
Ця метрика фіксує результати всіх перевірок справності.
STABLE
Counter
namestatustype
cloud-controller-manager (/metrics/slis)
kube-apiserver (/metrics/slis)
kube-controller-manager (/metrics/slis)
kube-proxy (/metrics/slis)
kube-scheduler (/metrics/slis)
kubelet (/metrics/slis)
node_collector_evictions_total
Кількість виселень Node, що відбулися з моменту запуску поточного екземпляра NodeController.
STABLE
Counter
zone
kube-controller-manager (/metrics)
node_cpu_usage_seconds_total
Сукупний час процесора, споживаний вузлом у секундах ядра
STABLE
Custom
kubelet (/metrics/resource)
node_memory_working_set_bytes
Поточний робочий набір вузла в байтах
STABLE
Custom
kubelet (/metrics/resource)
pod_cpu_usage_seconds_total
Сукупний час процесора, споживаний Podʼом у секундах ядра
STABLE
Custom
podnamespace
kubelet (/metrics/resource)
pod_memory_working_set_bytes
Поточний робочий набір Podʼа в байтах
STABLE
Custom
podnamespace
kubelet (/metrics/resource)
resource_scrape_error
1, якщо сталася помилка під час отримання метрик контейнера, 0 в іншому випадку
Затримка для запуску всіх втулків певної точки розширення.
STABLE
Histogram
extension_pointprofilestatus
kube-scheduler (/metrics)
scheduler_pending_pods
Кількість відкладених Podʼів за типом черги. 'active' означає кількість Podʼів в activeQ; 'backoff' означає кількість Pods у backoffQ; 'unschedulable' означає кількість Podʼів в unschedulablePods, які планувальник намагався запланувати, але не зміг; 'gated' означає кількість незапланованих Podʼів, які планувальник ніколи не намагався запланувати, тому що вони є gated.
STABLE
Gauge
queue
kube-scheduler (/metrics)
scheduler_pod_scheduling_attempts
Кількість спроб успішно запланувати Pod.
STABLE
Histogram
kube-scheduler (/metrics)
scheduler_preemption_attempts_total
Загальна кількість спроб випередження в кластері до цього часу
STABLE
Counter
kube-scheduler (/metrics)
scheduler_preemption_victims
Кількість обраних жертв випередження
STABLE
Histogram
kube-scheduler (/metrics)
scheduler_queue_incoming_pods_total
Кількість Podʼів, доданих до черг планування за подіями та типами черг.
STABLE
Counter
eventqueue
kube-scheduler (/metrics)
scheduler_schedule_attempts_total
Кількість спроб запланувати Podʼи, за результатом. "unscheduled" означає, що Pod не вдалося запланувати, тоді як "error" означає внутрішню проблему планувальника.
STABLE
Counter
profileresult
kube-scheduler (/metrics)
scheduler_scheduling_attempt_duration_seconds
Затримка спроби планування в секундах (алгоритм планування + привʼязка)
STABLE
Histogram
profileresult
kube-scheduler (/metrics)
Список бета-метрик Kubernetes
Бета-метрики дотримуються менш суворих API контрактів порівняно зі стабільними метриками. Жодні мітки не можуть бути видалені з бета-метрик протягом їхнього життєвого циклу, проте мітки можуть бути додані, поки метрика перебуває на етапі бета-тестування. Це забезпечує впевненість у тому, що бета-метрики підтримуватимуть існуючі панелі моніторингу та оповіщення, водночас дозволяючи вносити зміни в майбутньому.
Загальна кількість автоматичних перезавантажень конфігурації авторизації, розподілених за статусом та ідентифікатором apiserver.
BETA
Counter
apiserver_id_hashstatus
kube-apiserver (/metrics)
apiserver_cel_compilation_duration_seconds
Час компіляції CEL у секундах.
BETA
Histogram
kube-apiserver (/metrics)
apiserver_cel_evaluation_duration_seconds
CEL evaluation time in seconds.
BETA
Histogram
kube-apiserver (/metrics)
apiserver_flowcontrol_current_executing_requests
Кількість запитів на початковій (для WATCH) або будь-якій (для не-WATCH) стадії виконання в підсистемі API Priority and Fairness
BETA
Gauge
flow_schemapriority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_current_executing_seats
Паралельність (кількість місць), яку займають поточні запити, що виконуються (початкова стадія для WATCH, будь-яка інша стадія) у підсистемі API Priority and Fairness
BETA
Gauge
flow_schemapriority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_current_inqueue_requests
Кількість запитів, що перебувають у чергах підсистеми API Priority and Fairness
BETA
Gauge
flow_schemapriority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_dispatched_requests_total
Кількість виконаних запитів в підсистемі API Priority and Fairness
BETA
Counter
flow_schemapriority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_nominal_limit_seats
Номінальна кількість місць виконання, налаштована для кожного рівня пріоритету
BETA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_rejected_requests_total
Кількість запитів, відхилених підсистемою API Priority and Fairness
Затримка допуску валідації для окремих виразів валідації в секундах, позначена політикою, а також включно із зобовʼязуючими та примусовими діями, що були вжиті.
BETA
Histogram
enforcement_actionerror_typepolicypolicy_binding
kube-apiserver (/metrics)
apiserver_validating_admission_policy_check_total
Перевірка політики допуску перевіряє загальну суму, позначену політикою, і далі ідентифікує обовʼязковість та вжиті заходи щодо забезпечення дотримання.
Кількість випадків, коли декларативна валідація панікувала під час валідації.
BETA
Counter
kube-apiserver (/metrics)
apiserver_watch_list_duration_seconds
Розподіл часу відгуку в секундах для запитів зі списку спостереження з розбивкою за групами, версіями, ресурсами та областями дії.
BETA
Histogram
groupresourcescopeversion
kube-apiserver (/metrics)
disabled_metrics_total
Кількість вимкнених метрик.
BETA
Counter
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
hidden_metrics_total
Кількість прихованих метрик.
BETA
Counter
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
kubelet_image_volume_mounted_errors_total
Кількість невдалих спроб монтування тому образу.
BETA
Counter
kubelet (/metrics)
kubelet_image_volume_mounted_succeed_total
Кількість успішних підключень томів образів.
BETA
Counter
kubelet (/metrics)
kubelet_image_volume_requested_total
Кількість запитаних томів образів.
BETA
Counter
kubelet (/metrics)
kubernetes_build_info
Метрика з постійним значенням '1', що містить такі позначки: основна версія, другорядна версія, версія Git, коміт Git, стан дерева Git, дата збірки, версія Go, компілятор, на якому було зібрано Kubernetes, та платформа, на якій він працює.
Ця метрика фіксує дані про стадію та ввімкнення функції k8s.
BETA
Gauge
namestage
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
prober_probe_total
Кумулятивний номер проби життєздатності, готовності або запуску для контейнера за результатом.
BETA
Counter
containernamespacepodpod_uidprobe_typeresult
kubelet (/metrics)
registered_metrics_total
Кількість зареєстрованих метрик з розбивкою за рівнем стабільності та версією застарівння.
BETA
Counter
deprecated_versionstability_level
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
running_managed_controllers
Показує, де в даний момент працюють екземпляри контролера
BETA
Gauge
managername
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
scheduler_pod_scheduling_sli_duration_seconds
E2e затримка для пакета, що планується, з моменту потрапляння пакета в чергу на планування і може включати декілька спроб планування.
BETA
Histogram
attempts
kube-scheduler (/metrics)
workqueue_adds_total
Загальна кількість доданих елементів, оброблених робочою чергою
BETA
Counter
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
workqueue_depth
Поточна глибина робочої черги
BETA
Gauge
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
workqueue_longest_running_processor_seconds
Скільки секунд працює процесор із найтривалішим часом роботи для черги завдань?
BETA
Gauge
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
workqueue_queue_duration_seconds
Скільки секунд елемент перебуває в черзі завдань перед тим, як його буде запрошено.
BETA
Histogram
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
workqueue_retries_total
Загальна кількість повторних спроб, оброблених чергою завдань
BETA
Counter
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
workqueue_unfinished_work_seconds
Скільки секунд роботи виконується і ще не було зафіксовано за допомогою work_duration. Великі значення вказують на завислі потоки. Можна визначити кількість завислих потоків, спостерігаючи за швидкістю збільшення цього показника.
BETA
Gauge
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
workqueue_work_duration_seconds
Скільки секунд займає обробка елемента з черги завдань.
BETA
Histogram
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
Список альфа-метрик Kubernetes
Альфа-метрики не мають жодних гарантій API. Ці метрики слід використовувати на свій страх і ризик, наступні версії Kubernetes можуть взагалі вилучити ці метрики або мутувати API таким чином, щоб зламати наявні інформаційні панелі та сповіщення.
aggregator_discovery_aggregation_count_total
Лічильник кількості разів, коли виявлення (discovery) було агреговано
ALPHA
Counter
kube-apiserver (/metrics)
aggregator_discovery_nopeer_requests_total
Лічильник кількості запитів на виявлення без агрегації партнерів (non peer-aggregated)
Кількість помилок оцінки умов допуску, ідентифікованих за назвою ресурсу, що містить умову допуску, з розбивкою для кожного типу, що містить matchConditions ("вебхук" або "політика"), операцію та тип допуску (валідація або допуск).
Час оцінки відповідності умов допуску в секундах, ідентифікований за назвою і розбитий для кожного типу, що містить matchConditions ("вебхук" або "політика"), операцію і тип (валідація або допуск).
Кількість виключень для оцінки відповідності умов допуску, ідентифікована за назвою ресурсу, що містить умову відповідності, і розбита для кожного типу, що містить matchConditions ("вебхук" або "політика"), операцію і тип допуску (валідація або допуск).
Зведення затримок на підетапах допуску в секундах для кожної операції, ресурсу API та типу етапу (валідація або допуск) для кожної операції та ресурсу API.
ALPHA
Summary
operationrejectedtype
kube-apiserver (/metrics)
apiserver_admission_webhook_fail_open_count
Кількість відкритих помилок вебхука допуску, ідентифікованих за іменами та розбитих за кожним типом допуску (валідація або допуск).
ALPHA
Counter
nametype
kube-apiserver (/metrics)
apiserver_admission_webhook_rejection_count
Кількість відмов від вебхуків допуску, ідентифікованих за іменами та розбитих за кожним типом допуску (валідація або допуск) та операцією. Додаткові мітки вказують на тип помилки (error_webhook_error або apiserver_internal_error, якщо сталася помилка; no_error в іншому випадку) і необовʼязково ненульовий код відмови, якщо вебхук відхиляє запит з кодом HTTP-статусу (обробляється apiserver, коли код більше або дорівнює 400). Коди, більші за 600, усікаються до 600, щоб обмежити кардинальність метрики.
ALPHA
Counter
error_typenameoperationrejection_codetype
kube-apiserver (/metrics)
apiserver_admission_webhook_request_total
Загальна кількість запитів на вебхук, ідентифікована за назвою та розбита за типом допуску (валідація чи модифікація) та операцією. Додаткові мітки вказують, чи був запит відхилений, і код статусу HTTP. Коди, що перевищують 600, усікаються до 600, щоб обмежити кардинальність метрики.
ALPHA
Counter
codenameoperationrejectedtype
kube-apiserver (/metrics)
apiserver_audit_error_total
Лічильник подій аудиту, які не були перевірені належним чином. Мітка plugin визначає втулок, на який вплинула помилка.
ALPHA
Counter
plugin
kube-apiserver (/metrics)
apiserver_audit_event_total
Лічильник подій аудиту, що генеруються та надсилаються до бекенду аудиту.
ALPHA
Counter
kube-apiserver (/metrics)
apiserver_audit_level_total
Лічильник рівнів політики для подій аудиту (1 на запит).
ALPHA
Counter
level
kube-apiserver (/metrics)
apiserver_audit_requests_rejected_total
Лічильник запитів apiserver, відхилених через помилку в логах аудиту в бекенді.
Часовий відбиток останнього успішного або невдалого виклику JWKS, розділений за результатом, ідентифікатором API-сервера та емітентом JWT для автентифікатора JWT.
Затримка операцій автентифікації jwt у секундах. Це час, витрачений на автентифікацію токена лише у випадку пропуску в кеші (тобто коли токен не знайдено в кеші).
Загальна кількість виданих CSR із запитаною тривалістю, яка була виконана, розділена за підписувачами (лише імена підписувачів kubernetes.io визначено окремо)
Затримка запиту в секундах. Розбито за кодом статусу.
ALPHA
Histogram
code
kube-apiserver (/metrics)
apiserver_delegated_authz_request_total
Кількість HTTP-запитів, розділених за кодом статусу.
ALPHA
Counter
code
kube-apiserver (/metrics)
apiserver_egress_dialer_dial_duration_seconds
Гістограма затримки набору в секундах, позначена протоколом (http-connect або grpc), транспортом (tcp або uds)
ALPHA
Histogram
protocoltransport
kube-apiserver (/metrics)
apiserver_egress_dialer_dial_failure_count
Кількість невдалих спроб зʼєднання, позначених протоколом (http-connect або grpc), транспортом (tcp або uds) та стадією (зʼєднання або проксі). Етап вказує на те, на якому етапі сталася помилка зʼєднання
ALPHA
Counter
protocolstagetransport
kube-apiserver (/metrics)
apiserver_egress_dialer_dial_start_total
Стартує зʼєднання, позначене протоколом (http-connect або grpc) і транспортом (tcp або uds).
Кількість записів у вихідному кеші ключа шифрування даних (DEK). При перезапуску це значення є наближеним значенням кількості розшифрованих RPC-викликів, які сервер зробить до втулка KMS.
Unix Timestamp у секундах останнього успішного запиту FetchKeys
ALPHA
Gauge
kube-apiserver (/metrics)
apiserver_externaljwt_request_duration_seconds
Тривалість та час запиту на виклики до external-jwt-signer
ALPHA
Histogram
codemethod
kube-apiserver (/metrics)
apiserver_externaljwt_sign_request_total
Загальна кількість спроб підписати JWT
ALPHA
Counter
code
kube-apiserver (/metrics)
apiserver_flowcontrol_current_inqueue_seats
Кількість місць у чергах підсистеми API Priority and Fairness, що перебувають на розгляді в даний момент
ALPHA
Gauge
flow_schemapriority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_current_limit_seats
Поточна похідна кількість місць виконання, доступних для кожного рівня пріоритету
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_current_r
R(час останньої зміни)
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_demand_seats
Спостереження, в кінці кожної наносекунди, за (кількістю місць, які може використати кожен рівень пріоритету) / (номінальна кількість місць для цього рівня)
ALPHA
TimingRatioHistogram
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_demand_seats_average
Середньозважене за часом значення demand_seats за останній період коригування
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_demand_seats_high_watermark
Найвищий показник, за останній період коригування, для demand_seats
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_demand_seats_smoothed
Згладжені вимоги до місць
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_demand_seats_stdev
Середньозважене за часом стандартне відхилення, за останній період коригування, demand_seats
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_dispatch_r
R(час останньої диспетчеризації)
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_epoch_advance_total
Кількість разів, коли лічильник прогресу набору черг стрибнув назад
ALPHA
Counter
priority_levelsuccess
kube-apiserver (/metrics)
apiserver_flowcontrol_latest_s
S(останній відправлений запит)
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_lower_limit_seats
Налаштовано нижню межу кількості місць виконання, доступних для кожного рівня пріоритету
ALPHA
Gauge
priority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_next_discounted_s_bounds
min і max, за чергою, для S (найстаріша заявка в черзі) — оціночне значення незавершеної роботи
ALPHA
Gauge
boundpriority_level
kube-apiserver (/metrics)
apiserver_flowcontrol_next_s_bounds
min і max, за чергами, для S (найстаріша заявка в черзі)
Спостереження наприкінці кожної наносекунди кількості запитів (у частках від відповідного ліміту), що очікують або перебувають на будь-якій стадії виконання (але тільки на початковій стадії для WATCH)
Спостереження наприкінці кожної наносекунди за кількістю запитів (у частках від відповідного ліміту), які очікують на виконання або перебувають на стадії виконання
ALPHA
TimingRatioHistogram
phaserequest_kind
kube-apiserver (/metrics)
apiserver_flowcontrol_request_concurrency_in_use
Паралельність (кількість місць), яку займають поточні запити, що виконуються (початкова стадія для WATCH, будь-яка інша стадія) у підсистемі API Priority and Fairness
ALPHA
Gauge
flow_schemapriority_level
kube-apiserver (/metrics)
1.31.0
apiserver_flowcontrol_request_concurrency_limit
Номінальна кількість місць виконання, налаштована для кожного рівня пріоритету
Підраховує кількість запитів до серверів з незахищеними SHA1-підписами в обслуговуючому сертифікаті АБО кількість збоїв зʼєднання через незахищені SHA1-підписи (або/або, залежно від середовища виконання)
ALPHA
Counter
kube-apiserver (/metrics)
apiserver_kube_aggregator_x509_missing_san_total
Підраховує кількість запитів до серверів, у яких відсутнє розширення SAN в обслуговуючому сертифікаті, АБО кількість збоїв зʼєднання через відсутність x509 сертифіката, у якому відсутнє розширення SAN (або, залежно від середовища виконання)
Затримка допуску мутації для окремих проявів мутації в секундах, позначена політикою та звʼязком.
ALPHA
Histogram
error_typepolicypolicy_binding
kube-apiserver (/metrics)
apiserver_mutating_admission_policy_check_total
Перевірка загальної політики допуску мутацій, позначена політикою та додатково ідентифікована звʼязком.
ALPHA
Counter
error_typepolicypolicy_binding
kube-apiserver (/metrics)
apiserver_nodeport_repair_port_errors_total
Кількість помилок, виявлених на портах циклом виправлення, з розбивкою за типом помилки: leak, repair, full, outOfRange, duplicate, unknown
ALPHA
Counter
type
kube-apiserver (/metrics)
apiserver_nodeport_repair_reconcile_errors_total
Кількість невдалих спроб узгодження в циклі узгодження відновлення nodeport
ALPHA
Counter
kube-apiserver (/metrics)
apiserver_peer_discovery_sync_errors_total
Загальна кількість помилок, що виникли під час синхронізації інформації про відкриття з peer kube-apiserver
ALPHA
Counter
type
kube-apiserver (/metrics)
apiserver_peer_proxy_errors_total
Загальна кількість помилок, що виникли під час проксирування запитів до peer kube-apiserver
ALPHA
Counter
groupresourcetypeversion
kube-apiserver (/metrics)
apiserver_request_aborts_total
Кількість запитів, які apiserver перервав, можливо, через таймаут, для кожної групи, версії, дієслова, ресурсу, субресурсу та області дії
ALPHA
Counter
groupresourcescopesubresourceverbversion
kube-apiserver (/metrics)
apiserver_request_body_size_bytes
Розмір тіла запиту Apiserver в байтах з розбивкою за ресурсами та дієсловами.
ALPHA
Histogram
groupresourceverb
kube-apiserver (/metrics)
apiserver_request_filter_duration_seconds
Розподіл затримки фільтрації запитів у секундах для кожного типу фільтрів
ALPHA
Histogram
filter
kube-apiserver (/metrics)
apiserver_request_post_timeout_total
Відстежує активність обробників запитів після того, як повʼязані з ними запити були вичерпані apiserverʼом
ALPHA
Counter
sourcestatus
kube-apiserver (/metrics)
apiserver_request_sli_duration_seconds
Розподіл затримок відповіді (не враховуючи тривалості вебхука та часу очікування в черзі пріоритету і справедливості) в секундах для кожного дієслова, групи, версії, ресурсу, субресурсу, області дії та компонента.
ALPHA
Histogram
componentgroupresourcescopesubresourceverbversion
kube-apiserver (/metrics)
apiserver_request_slo_duration_seconds
Розподіл затримок відповіді (не враховуючи тривалості вебхука та часу очікування в черзі пріоритету і справедливості) в секундах для кожного дієслова, групи, версії, ресурсу, субресурсу, області дії та компонента.
ALPHA
Histogram
componentgroupresourcescopesubresourceverbversion
kube-apiserver (/metrics)
1.27.0
apiserver_request_terminations_total
Кількість запитів, які apiserver припинив з метою самозахисту.
Час, витрачений на порівняння старих і нових обʼєктів у запитах UPDATE або PATCH
ALPHA
Histogram
code_path
kube-apiserver (/metrics)
apiserver_rerouted_request_total
Загальна кількість запитів, які були перенаправлені на рівноправний kube apiserver через те, що локальний apiserver не зміг їх обслужити, розбитих за 'group', 'version' та 'resource', що вказує на GVR запиту. Якщо всі три порожні (""), запит є запитом на відкриття.`
ALPHA
Counter
codegroupresourceversion
kube-apiserver (/metrics)
apiserver_resource_objects
Кількість збережених обʼєктів на момент останньої перевірки, розділених за видами. У разі помилки під час вилучення значення буде -1.
ALPHA
Gauge
groupresource
kube-apiserver (/metrics)
apiserver_resource_size_estimate_bytes
Орієнтовний розмір обʼєктів, що зберігаються в базі даних. Орієнтовний розмір базується на сумі останніх спостережуваних розмірів серіалізованих обʼєктів. У разі помилки під час вилучення значення буде -1.
ALPHA
Gauge
groupresource
kube-apiserver (/metrics)
apiserver_selfrequest_total
Лічильник самозвернень apiserver, розбитий для кожного дієслова, ресурсу API та субресурсу.
ALPHA
Counter
groupresourcesubresourceverb
kube-apiserver (/metrics)
apiserver_storage_consistency_checks_total
Лічильник стану перевірок узгодженості між etcd та кешем спостереження
Загальна кількість пропусків кешу при доступі до ключа дешифрування (KEK).
ALPHA
Counter
kube-apiserver (/metrics)
apiserver_storage_events_received_total
Кількість отриманих подій etcd з розбивкою за типами.
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_storage_list_evaluated_objects_total
Кількість протестованих обʼєктів під час обслуговування LIST-запиту зі сховища
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_storage_list_fetched_objects_total
Кількість обʼєктів, прочитаних зі сховища під час обслуговування LIST-запиту
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_storage_list_returned_objects_total
Кількість обʼєктів, що повертаються на запит LIST зі сховища
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_storage_list_total
Кількість запитів LIST, виконаних зі сховища
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_storage_transformation_duration_seconds
Затримки в секундах операцій перетворення значень.
ALPHA
Histogram
transformation_typetransformer_prefix
kube-apiserver (/metrics)
apiserver_storage_transformation_operations_total
Загальна кількість перетворень. Успішне перетворення матиме статус "OK", а у випадку невдалого перетворення — інший рядок статусу. Поля status, resource і transformation_type можна використовувати для сповіщень. Наприклад, ви можете відстежувати збої в шифруванні/розшифруванні за допомогою типу перетворення (наприклад, from_storage для розшифрування і to_storage для шифрування). Крім того, ці поля можна використовувати, щоб переконатися, що до кожного ресурсу застосовуються правильні перетворення.
Кількість розбіжностей між декларативною та рукописною валідацією, з розбивкою за ідентифікатором валідації.
ALPHA
Counter
validation_identifier
kube-apiserver (/metrics)
apiserver_watch_cache_consistent_read_total
Лічильник послідовних читань з кешу.
ALPHA
Counter
fallbackgroupresourcesuccess
kube-apiserver (/metrics)
apiserver_watch_cache_events_dispatched_total
Лічильник подій, відправлених у кеш watch, розбитий за типами ресурсів.
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_watch_cache_events_received_total
Лічильник подій, отриманих у кеші watch, розбитий за типом ресурсу.
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_watch_cache_initializations_total
Лічильник ініціалізацій кешу watch, розбитий за типами ресурсів.
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
apiserver_watch_cache_read_wait_seconds
Гістограма часу, витраченого на очікування оновлення кешу watch.
ALPHA
Histogram
groupresource
kube-apiserver (/metrics)
apiserver_watch_cache_resource_version
Поточна версія ресурсу кешу спостереження з розбивкою за типом ресурсу.
ALPHA
Gauge
groupresource
kube-apiserver (/metrics)
apiserver_watch_events_sizes
Перегляд розподілу розміру події в байтах
ALPHA
Histogram
groupresourceversion
kube-apiserver (/metrics)
apiserver_watch_events_total
Кількість подій, надісланих клієнтам watch
ALPHA
Counter
groupresourceversion
kube-apiserver (/metrics)
apiserver_webhooks_x509_insecure_sha1_total
Підраховує кількість запитів до серверів з незахищеними SHA1-підписами в обслуговуючому сертифікаті АБО кількість збоїв зʼєднання через незахищені SHA1-підписи (або/або, залежно від середовища виконання)
ALPHA
Counter
kube-apiserver (/metrics)
apiserver_webhooks_x509_missing_san_total
Підраховує кількість запитів до серверів, у яких відсутнє розширення SAN в обслуговуючому сертифікаті, АБО кількість збоїв зʼєднання через відсутність x509 сертифіката, у якому відсутнє розширення SAN (або/або, залежно від середовища виконання)
Затримка, у секундах, між моментом активації ефекту позначення пристрою позначкою taint і видаленням Pod за допомогою контролера DeviceTaintEvictionController.
Загальна кількість Podʼів, видалених DeviceTaintEvictionController з початку роботи.
ALPHA
Counter
kube-controller-manager (/metrics)
dra_grpc_operations_duration_seconds
Тривалість у секундах операцій DRA gRPC
ALPHA
Histogram
driver_namegrpc_status_codemethod_name
kubelet (/metrics)
dra_operations_duration_seconds
Гістограма затримки в секундах для тривалості обробки всіх ResourceClaims, на які посилається pod, коли pod запускається або зупиняється. Ідентифікується за назвою операції (PrepareResources або UnprepareResources) і відокремлюється за успішністю операції. Кількість невдалих операцій надається через загальний підрахунок гістограми.
ALPHA
Histogram
is_erroroperation_name
kubelet (/metrics)
dra_resource_claims_in_use
Кількість ResourceClaims, які наразі використовуються на вузлі, за назвою драйвера (значення мітки driver_name) та для всіх драйверів (спеціальне значення <any> для driver_name). Зверніть увагу, що сума всіх підрахунків за драйверами не є загальною кількістю використовуваних ResourceClaims, оскільки один і той самий ResourceClaim може використовувати пристрої з різних драйверів. Замість цього використовуйте підрахунок для <any> driver_name.
ALPHA
Custom
driver_name
kubelet (/metrics)
endpoint_slice_controller_changes
Кількість змін EndpointSlice
ALPHA
Counter
operation
kube-controller-manager (/metrics)
endpoint_slice_controller_desired_endpoint_slices
Кількість EndpointSlices, які могли б існувати при ідеальному розподілі точок доступу
Час (у секундах), який контролер HPA витрачає на обчислення однієї метрики. Мітка 'action' має бути або 'scale_down', або 'scale_up', або 'none'. Мітка 'error' повинна мати значення 'spec', 'internal' або 'none'. Мітка 'metric_type' відповідає HPA.spec.metrics[*].type
Кількість обчислень метрики. Мітка 'action' має бути або 'scale_down', або 'scale_up', або 'none'. Також мітка 'error' повинна мати значення 'spec', 'internal' або 'none'. Мітка 'metric_type' відповідає HPA.spec.metrics[*].type
Час (у секундах), який потрібен контролеру HPA для одноразового узгодження. Мітка 'action' має бути або 'scale_down', або 'scale_up', або 'none'. Також мітка 'error' має бути або 'spec', або 'internal', або 'none'. Зауважте, що якщо під час звірки виникають і специфічні, і внутрішні помилки, то в мітці `error` відображається перша з них.
Кількість коригувань контролера HPA. Мітка 'action' має бути або 'scale_down', або 'scale_up', або 'none'. Також мітка 'error' має бути або 'spec', або 'internal', або 'none'. Зверніть увагу, що якщо під час узгодження виникають як специфічні, так і внутрішні помилки, то в мітці `error` відображається перша з них.
ALPHA
Counter
actionerror
kube-controller-manager (/metrics)
informer_processing_latency_seconds
Час, витрачений на обробку подій після вилучення з черги.
ALPHA
Histogram
groupnameresourceversion
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
informer_queued_items
Кількість елементів, які наразі знаходяться в черзі FIFO.
ALPHA
Gauge
groupnameresourceversion
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
job_controller_job_finished_indexes_total
`Кількість готових індексів. Можливі значення для мітки статусу: "successed", "failed". Можливі значення для мітки backoffLimit: "perIndex" та "global"`.
ALPHA
Counter
backoffLimitstatus
kube-controller-manager (/metrics)
job_controller_job_pods_creation_total
`Кількість Podʼів, створених контролером Job, позначених причиною створення Podʼа. Ця метрика також розрізняє Podʼи, створені з використанням різних налаштувань PodReplacementPolicy. Можливі значення мітки "reason": "new", "recreate_terminating_or_failed", "recreate_failed", "recreate_failed". Можливі значення мітки "status": "succeeded", "failed".`
`Кількість збійних Podʼів, оброблених політикою збоїв, відносно дії політики збоїв, застосованої на основі відповідного правила. Можливі значення мітки дії відповідають можливим значенням дії правила політики відмов, а саме: "FailJob", "Ignore" та "Count".`
ALPHA
Counter
action
kube-controller-manager (/metrics)
job_controller_stale_sync_skips_total
Загальна кількість синхронізацій Job, пропущених через застарілий кеш спостереження.
`Кількість завершених Podʼів (phase=Failed|Successed), які мають завершувач batch.kubernetes.io/job-tracking, Мітка події може бути "add" або "delete".`
ALPHA
Counter
event
kube-controller-manager (/metrics)
kube_apiserver_clusterip_allocator_allocated_ips
Показник, що вимірює кількість виділених IP-адрес для Services
Показник TTL (час життя) клієнтського сертифіката Kubelet. Значення в секундах до закінчення терміну дії сертифіката (відʼємне, якщо термін дії вже закінчився). Якщо клієнтський сертифікат недійсний або невикористаний, значення буде +INF.
Гістограма кількості секунд, які проіснував попередній сертифікат перед ротацією.
ALPHA
Histogram
kubelet (/metrics)
kubelet_certificate_manager_server_ttl_seconds
Показник найкоротшого TTL (time-to-live) сертифікату обслуговування Kubelet. Значення в секундах до закінчення терміну дії сертифіката (відʼємне, якщо термін дії вже закінчився). Якщо обслуговуючий сертифікат недійсний або невикористаний, значення буде +INF.
ALPHA
Gauge
kubelet (/metrics)
kubelet_cgroup_manager_duration_seconds
Тривалість у секундах для операцій cgroup manager. Розбито за методами.
ALPHA
Histogram
operation_type
kubelet (/metrics)
kubelet_cgroup_version
версія cgroup на хостах.
ALPHA
Gauge
kubelet (/metrics)
kubelet_container_aligned_compute_resources_count
Сумарна кількість вирівняних обчислювальних ресурсів, виділених контейнерам за типом вирівнювання.
Кумулятивна кількість невдалих спроб розподілити виділені обчислювальні ресурси між контейнерами за типом виділення.
ALPHA
Counter
boundaryscope
kubelet (/metrics)
kubelet_container_log_filesystem_used_bytes
Байти, що використовуються логами контейнера у файловій системі.
ALPHA
Custom
uidnamespacepodcontainer
kubelet (/metrics)
kubelet_container_requested_resizes_total
Кількість запитів на зміну розміру, підрахована на рівні контейнера. Різні ресурси в одному контейнері підраховуються окремо. Мітка 'requirement' (вимога) відноситься до 'memory' (пам'ять) або 'limits' (обмеження); мітка 'operation' (операція) може бути 'add' (додати), 'remove' (видалити), 'increase' (збільшити) або 'decrease' (зменшити).
Тривалість у секундах запуску вузла під час реєстрації.
ALPHA
Gauge
kubelet (/metrics)
kubelet_orphan_pod_cleaned_volumes
Загальна кількість осиротілих Pod, чиї томи були очищені під час останнього періодичного обстеження.
ALPHA
Gauge
kubelet (/metrics)
kubelet_orphan_pod_cleaned_volumes_errors
Кількість осиротілих Pod, чиї томи не вдалося очистити під час останнього періодичного обстеження.
ALPHA
Gauge
kubelet (/metrics)
kubelet_orphaned_runtime_pods_total
Кількість Podʼів, які були виявлені в середовищі виконання контейнерів, які невідомі для pod worker. Це зазвичай вказує на те, що kubelet був перезапущений під час примусового видалення Pod в API або в локальній конфігурації, що є незвичним.
ALPHA
Counter
kubelet (/metrics)
kubelet_pleg_discard_events
Кількість подій відхилення в PLEG (Pod Lifecycle Event Generator).
ALPHA
Counter
kubelet (/metrics)
kubelet_pleg_last_seen_seconds
Позначка часу в секундах, коли PLEG востаннє був активний.
ALPHA
Gauge
kubelet (/metrics)
kubelet_pleg_relist_duration_seconds
Тривалість у секундах для повторного переліку Podʼів в PLEG.
ALPHA
Histogram
kubelet (/metrics)
kubelet_pleg_relist_interval_seconds
Інтервал у секундах між повторними переліками в PLEG.
ALPHA
Histogram
kubelet (/metrics)
kubelet_pod_deferred_accepted_resizes_total
Кумулятивна кількість змін розміру, які були прийняті після відстрочки.
ALPHA
Counter
retry_trigger
kubelet (/metrics)
kubelet_pod_in_progress_resizes
Кількість поточних змін розміру для podʼів.
ALPHA
Gauge
kubelet (/metrics)
kubelet_pod_infeasible_resizes_total
Кількість неможливих змін розміру для podʼів.
ALPHA
Counter
reason_detail
kubelet (/metrics)
kubelet_pod_pending_resizes
Кількість очікуючих змін розміру для podʼів.
ALPHA
Gauge
reason
kubelet (/metrics)
kubelet_pod_resize_duration_milliseconds
Тривалість у мілісекундах для активації зміни розміру podʼа
ALPHA
Histogram
success
kubelet (/metrics)
kubelet_pod_resources_endpoint_errors_get
Кількість запитів до точки доступу PodResource Get, які повернули помилку. Розбито за версіями API сервера.
Кількість запитів до точки доступу PodResource GetAllocatableResources, розбита за версіями API сервера.
ALPHA
Counter
server_api_version
kubelet (/metrics)
kubelet_pod_resources_endpoint_requests_list
Кількість запитів до точки доступу PodResource List, розбита за версіями API сервера.
ALPHA
Counter
server_api_version
kubelet (/metrics)
kubelet_pod_resources_endpoint_requests_total
Загальна кількість запитів до точки доступу PodResource, розбита за версіями API сервера.
ALPHA
Counter
server_api_version
kubelet (/metrics)
kubelet_pod_start_duration_seconds
Тривалість у секундах від першого виявлення kubelet'ом Podʼа до початку його запуску.
ALPHA
Histogram
kubelet (/metrics)
kubelet_pod_start_sli_duration_seconds
Тривалість у секундах для запуску Pod, за виключенням часу на завантаження образів та виконання init-контейнерів, виміряна з моменту позначки часу створення Pod до того, як всі його контейнери будуть відзначені як запущені та доступні для спостереження через watch.
ALPHA
Histogram
kubelet (/metrics)
kubelet_pod_start_total_duration_seconds
Тривалість у секундах для запуску Pod з моменту створення, включаючи час на завантаження образів та виконання init-контейнерів, виміряна з позначки часу створення Pod до того моменту, коли всі його контейнери будуть відзначені як запущені та доступні для спостережені через watch.
ALPHA
Histogram
kubelet (/metrics)
kubelet_pod_status_sync_duration_seconds
Тривалість у секундах синхронізації оновлення статусу Pod. Вимірює час від виявлення зміни статусу Pod до успішного оновлення API для цього Pod, навіть якщо відбулося кілька проміжних змін статусу Pod.
ALPHA
Histogram
kubelet (/metrics)
kubelet_pod_worker_duration_seconds
Тривалість у секундах синхронізації одного Pod, розбита за операціями: create, update або sync.
ALPHA
Histogram
operation_type
kubelet (/metrics)
kubelet_pod_worker_start_duration_seconds
Тривалість у секундах від моменту, коли kubelet виявляє Pod до початку запуску виконавця робочого навантаження.
ALPHA
Histogram
kubelet (/metrics)
kubelet_podcertificate_states
Вектор-показник, що повідомляє про кількість джерел спроєцьованих томів сертифікатів подів, згрупованих за signer_name та state.
ALPHA
Custom
signer_namestate
kubelet (/metrics)
kubelet_preemptions
Загальна кількість передчасних випереджень Podʼів за ресурсом випередження.
ALPHA
Counter
preemption_signal
kubelet (/metrics)
kubelet_restarted_pods_total
Кількість Podʼів, які були перезапущені через те, що вони були видалені та створені знову з тим самим UID, поки kubelet відстежував їх (звично для статичних Podʼів, надзвичайно рідко для pod API).
ALPHA
Counter
static
kubelet (/metrics)
kubelet_run_podsandbox_duration_seconds
Тривалість у секундах операцій run_podsandbox. Розбито за RuntimeClass.Handler.
ALPHA
Histogram
runtime_handler
kubelet (/metrics)
kubelet_run_podsandbox_errors_total
Загальна кількість помилок операцій run_podsandbox в розрізі RuntimeClass.Handler.
ALPHA
Counter
runtime_handler
kubelet (/metrics)
kubelet_running_containers
Кількість контейнерів, що зараз працюють.
ALPHA
Gauge
container_state
kubelet (/metrics)
kubelet_running_pods
Кількість Podʼів, які мають працюючий pod sandbox
ALPHA
Gauge
kubelet (/metrics)
kubelet_runtime_operations_duration_seconds
Тривалість у секундах операцій середовища виконання. Розбито за типом операції.
ALPHA
Histogram
operation_type
kubelet (/metrics)
kubelet_runtime_operations_errors_total
Загальна кількість помилок операцій середовища виконання за типом операції.
ALPHA
Counter
operation_type
kubelet (/metrics)
kubelet_runtime_operations_total
Загальна кількість операцій середовища виконання за типом операції.
ALPHA
Counter
operation_type
kubelet (/metrics)
kubelet_server_expiration_renew_errors
Лічильник помилок оновлення сертифікатів.
ALPHA
Counter
kubelet (/metrics)
kubelet_sleep_action_terminated_early_total
Кількість разів, коли обробник сну життєвого циклу був завершений до завершення його роботи.
ALPHA
Counter
kubelet (/metrics)
kubelet_started_containers_errors_total
Загальна кількість помилок під час запуску контейнерів.
Сукупна кількість помилок при запуску контейнерів hostprocess. Ця метрика буде збиратися тільки у Windows.
ALPHA
Counter
codecontainer_type
kubelet (/metrics)
kubelet_started_host_process_containers_total
Сукупна кількість запущених контейнерів hostprocess. Ця метрика буде збиратися лише у Windows.
ALPHA
Counter
container_type
kubelet (/metrics)
kubelet_started_pods_errors_total
Сукупна кількість помилок під час запуску Podʼів
ALPHA
Counter
kubelet (/metrics)
kubelet_started_pods_total
Сукупна кількість запущених Podʼів
ALPHA
Counter
kubelet (/metrics)
kubelet_started_user_namespaced_pods_errors_total
Кумулятивна кількість помилок під час запуску podʼів з іменами просторів користувачів. Цей показник збирається тільки в Linux.
ALPHA
Counter
kubelet (/metrics)
kubelet_started_user_namespaced_pods_total
CКумулятивна кількість запущених podʼів з іменами просторів користувачів. Цей показник збирається тільки в Linux.
ALPHA
Counter
kubelet (/metrics)
kubelet_topology_manager_admission_duration_ms
Тривалість у мілісекундах для обслуговування запиту на допуск Podʼа.
ALPHA
Histogram
kubelet (/metrics)
kubelet_topology_manager_admission_errors_total
Кількість відмов запитів допуску, коли не вдалося виділити ресурси.
ALPHA
Counter
kubelet (/metrics)
kubelet_topology_manager_admission_requests_total
Кількістьт заявок допуску, для яких потрібне вирівнювання ресурсів.
ALPHA
Counter
kubelet (/metrics)
kubelet_volume_metric_collection_duration_seconds
Тривалість у секундах для розрахунку статистики тому
ALPHA
Histogram
metric_source
kubelet (/metrics)
kubelet_volume_stats_available_bytes
Кількість доступних байт в томі
ALPHA
Custom
namespacepersistentvolumeclaim
kubelet (/metrics)
kubelet_volume_stats_capacity_bytes
Місткість тому у байтах
ALPHA
Custom
namespacepersistentvolumeclaim
kubelet (/metrics)
kubelet_volume_stats_health_status_abnormal
Статус справності аномального тому. Значення 1 або 0. 1 — означає, що том н є справним, 0 — говорить про справність тому
ALPHA
Custom
namespacepersistentvolumeclaim
kubelet (/metrics)
kubelet_volume_stats_inodes
Максимальна кількість inode в томі
ALPHA
Custom
namespacepersistentvolumeclaim
kubelet (/metrics)
kubelet_volume_stats_inodes_free
Кількість вільних inode в томі
ALPHA
Custom
namespacepersistentvolumeclaim
kubelet (/metrics)
kubelet_volume_stats_inodes_used
Кількість використаних inode у томі
ALPHA
Custom
namespacepersistentvolumeclaim
kubelet (/metrics)
kubelet_volume_stats_used_bytes
Кількість використаних байт у томі
ALPHA
Custom
namespacepersistentvolumeclaim
kubelet (/metrics)
kubelet_working_pods
Кількість Podʼів, які фактично виконує kubelet, з розбивкою за фазами життєвого циклу, чи є Pod бажаним, осиротілим або тільки для виконання (також осиротілим), а також чи є Pod статичним. Осиротілий Pod був видалений з локальної конфігурації або примусово видалений в API та споживає ресурси, які не є видимими в інших випадках.
Сукупні правила проксі в очікувані, що змінюють Service
ALPHA
Counter
kube-proxy (/metrics)
leader_election_master_status
Ознака того, чи є система звітності головною для відповідного lease, 0 вказує на резервну копію, 1 — на головну. "name" — це рядок, який використовується для ідентифікації lease. Будь ласка, згрупуйте за назвою.
ALPHA
Gauge
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
leader_election_slowpath_total
Загальна кількість повільних шляхів, використаних при поновленні leases лідера. 'name' — це рядок, який використовується для ідентифікації lease. Будь ласка, згрупуйте за іменами.
ALPHA
Counter
name
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
node_authorizer_graph_actions_duration_seconds
Гістограма тривалості дій з графом в авторизаторі вузла.
ALPHA
Histogram
operation
kube-apiserver (/metrics)
node_collector_unhealthy_nodes_in_zone
Вимірювання кількості не готових вузлів за зонами.
Лічильник, що вимірює загальну кількість розподілів CIDR.
ALPHA
Counter
clusterCIDR
kube-controller-manager (/metrics)
node_ipam_controller_cidrset_cidrs_releases_total
Лічильник, що вимірює загальну кількість оновлень CIDR.
ALPHA
Counter
clusterCIDR
kube-controller-manager (/metrics)
node_ipam_controller_cidrset_usage_cidrs
Індикатор, що вимірює відсоток виділених CIDR.
ALPHA
Gauge
clusterCIDR
kube-controller-manager (/metrics)
node_ipam_controller_cirdset_max_cidrs
Максимальна кількість CIDR, яку можна виділити.
ALPHA
Gauge
clusterCIDR
kube-controller-manager (/metrics)
node_swap_usage_bytes
Поточне використання свопу вузла у байтах. Відображається лише на системах, відмінних від Windows
ALPHA
Custom
kubelet (/metrics/resource)
plugin_manager_total_plugins
Кількість втулків у Plugin Manager
ALPHA
Custom
socket_pathstate
kubelet (/metrics/resource)
pod_gc_collector_force_delete_pod_errors_total
Кількість помилок, що виникли при примусовому видаленні Podʼів з моменту запуску Pod GC Controller.
ALPHA
Counter
namespacereason
kube-controller-manager (/metrics)
pod_gc_collector_force_delete_pods_total
Кількість Podʼів, які було примусово видалено з моменту запуску контролера Pod GC Controller.
ALPHA
Counter
namespacereason
kube-controller-manager (/metrics)
pod_security_errors_total
Кількість помилок, що перешкоджають нормальній оцінці. Нефатальні помилки можуть призвести до того, що для оцінювання буде використано останній обмежений профіль.
ALPHA
Counter
fatalrequest_operationresourcesubresource
kube-apiserver (/metrics)
pod_security_evaluations_total
Кількість оцінок політики, що відбулися, не враховуючи проігнорованих або звільнених від розгляду запитів.
Кількість звільнених запитів, не враховуючи ігнорованих або тих, що виходять за межі області застосування.
ALPHA
Counter
request_operationresourcesubresource
kube-apiserver (/metrics)
pod_swap_usage_bytes
Поточний обсяг використання підкачки у байтах. Відображається лише на системах, відмінних від Windows
ALPHA
Custom
podnamespace
kubelet (/metrics/resource)
prober_probe_duration_seconds
Тривалість у секундах для відповіді проби.
ALPHA
Histogram
containernamespacepodprobe_type
kubelet (/metrics/probes)
pv_collector_bound_pv_count
Вимірювач кількості постійного тому, який наразі привʼязаний
ALPHA
Custom
storage_class
kube-controller-manager (/metrics)
pv_collector_bound_pvc_count
Вимірювач кількості поточно привʼязаних persistent volume claim
ALPHA
Custom
namespacestorage_classvolume_attributes_class
kube-controller-manager (/metrics)
pv_collector_total_pv_count
Вимірювач загальної кількості постійних томів
ALPHA
Custom
plugin_namevolume_mode
kube-controller-manager (/metrics)
pv_collector_unbound_pv_count
Вимірювач кількості постійних томів, що зараз не привʼязані
ALPHA
Custom
storage_class
kube-controller-manager (/metrics)
pv_collector_unbound_pvc_count
Вимірювач кількості не привʼязаних persistent volume claim
ALPHA
Custom
namespacestorage_classvolume_attributes_class
kube-controller-manager (/metrics)
reconstruct_volume_operations_errors_total
Кількість томів, які не вдалося відновити з операційної системи під час запуску kubelet.
ALPHA
Counter
kubelet (/metrics/resource)
reconstruct_volume_operations_total
Кількість томів, які намагалися відновити з операційної системи під час запуску kubelet. Сюди входять як успішні, так і невдалі спроби відновлення.
ALPHA
Counter
kubelet (/metrics)
replicaset_controller_sorting_deletion_age_ratio
Відношення віку вибраних видалених Podʼів до поточного наймолодшого віку Podʼів (на даний момент). Має бути менше ніж 2. Мета цієї метрики — виміряти приблизну ефективність впливу функціоналу LogarithmicScaleDown на сортування (і видалення) Podʼів при зменшенні масштабу набору реплік. При обчисленні та створенні звітів враховуються лише готові Podʼи.
ALPHA
Histogram
kube-controller-manager (/metrics)
replicaset_controller_stale_sync_skips_total
Загальна кількість синхронізацій ReplicaSet, пропущених через застарілий кеш спостереження.
ALPHA
Counter
groupresource
kube-controller-manager (/metrics)
resourceclaim_controller_creates_total
Кількість запитів на створення ResourceClaims, класифікованих за статусом створення та доступом адміністратора
ALPHA
Counter
admin_accessstatus
kube-controller-manager (/metrics)
resourceclaim_controller_resource_claims
Кількість ResourceClaims, класифікованих за статусом виділення, доступом адміністратора та джерелом. Джерелом може бути 'resource_claim_template' (створено на основі шаблону), 'extended_resource' (розширені ресурси) або порожнє (створено користувачем вручну).
ALPHA
Custom
allocatedadmin_accesssource
kube-controller-manager (/metrics)
rest_client_dns_resolution_duration_seconds
Затримка DNS-резолвера в секундах. Розбито за хостами.
ALPHA
Histogram
host
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_exec_plugin_call_total
Кількість викликів втулка exec, розділених за типом події, що виникла (no_error, plugin_execution_error, plugin_not_found_error, client_internal_error) та необовʼязковим кодом завершення роботи. Код завершення буде встановлено у 0 тоді і тільки тоді, коли виклик втулка був успішним.
ALPHA
Counter
call_statuscode
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_exec_plugin_certificate_rotation_age
Гістограма кількості секунд, які прожив останній клієнтський сертифікат втулка auth exec до того, як його було ротовано. Якщо клієнтські сертифікати втулка auth exec не використовуються, гістограма не міститиме даних.
ALPHA
Histogram
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_exec_plugin_policy_call_total
Кількість порівнянь втулка exec з політикою втулків та списком дозволених allowlist (якщо такий є), розділених залежно від того, чи дозволяє політика використання втулка.
ALPHA
Counter
alloweddenied
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_exec_plugin_ttl_seconds
Показник найкоротшого TTL (часу життя) клієнтських сертифікатів, якими керує втулок auth exec. Значення в секундах до закінчення терміну дії сертифіката (відʼємне, якщо термін дії вже закінчився). Якщо втулки auth exec не використовуються або не керують сертифікатами TLS, значення буде +INF.
ALPHA
Gauge
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_rate_limiter_duration_seconds
Затримка обмежувача швидкості на стороні клієнта в секундах. Розбито за дієсловами та хостами.
ALPHA
Histogram
hostverb
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_request_duration_seconds
Час затримки запиту в секундах. Розбито за дієсловами та хостами.
ALPHA
Histogram
hostverb
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_request_retries_total
Кількість повторних спроб запиту, з розподілом за кодом статусу, дієсловом та хостом.
ALPHA
Counter
codehostverb
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_request_size_bytes
Розмір запиту в байтах. Розбито за дієсловом та хостом.
ALPHA
Histogram
hostverb
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_requests_total
Кількість HTTP-запитів, розділених за кодом статусу, методом та хостом.
ALPHA
Counter
codehostmethod
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_response_size_bytes
Розмір відповіді в байтах. Розбито за дієсловом та хостом.
ALPHA
Histogram
hostverb
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_transport_cache_entries
Кількість транспортних записів у внутрішньому кеші.
ALPHA
Gauge
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
rest_client_transport_create_calls_total
Кількість викликів для отримання нового транспорту, розділена за результатом операції hit: отримано з кешу, miss: створено та додано до кешу, uncacheable: створено та не кешовано
ALPHA
Counter
result
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
retroactive_storageclass_errors_total
Загальна кількість невдалих ретроактивних присвоєнь StorageClass до persistent volume claim
ALPHA
Counter
kube-controller-manager (/metrics)
retroactive_storageclass_total
Загальна кількість ретроактивних присвоєнь StorageClass для persistent volume claim
ALPHA
Counter
kube-controller-manager (/metrics)
root_ca_cert_publisher_sync_duration_seconds
Кількість синхронізацій просторів імен, що відбулися у видавця сертифікатів root ca.
ALPHA
Histogram
code
kube-controller-manager (/metrics)
root_ca_cert_publisher_sync_total
Кількість синхронізацій просторів імен, що відбулися у видавця сертифікатів root ca.
ALPHA
Counter
code
kube-controller-manager (/metrics)
route_controller_route_sync_total
Метрика, що рахує кількість разів, коли маршрути були синхронізовані з провайдером хмари.
Тривалість у секундах виконання виклику API в async-диспетчері.
ALPHA
Histogram
call_typeresult
kube-scheduler (/metrics)
scheduler_async_api_call_execution_total
Загальна кількість викликів API, виконаних async-диспетчером.
ALPHA
Counter
call_typeresult
kube-scheduler (/metrics)
scheduler_batch_attempts_total
Кількість результатів при спробі використання пакетної обробки.
ALPHA
Counter
profileresult
kube-scheduler (/metrics)
scheduler_batch_cache_flushed_total
Кількість очищень кешу за причинами.
ALPHA
Counter
profilereason
kube-scheduler (/metrics)
scheduler_cache_size
Кількість вузлів, Podʼів та передбачуваних (звʼязаних) Podʼів у кеші планувальника.
ALPHA
Gauge
type
kube-scheduler (/metrics)
scheduler_event_handling_duration_seconds
Затримка обробки подій у секундах.
ALPHA
Histogram
event
kube-scheduler (/metrics)
scheduler_get_node_hint_duration_seconds
Затримка для отримання підказки про вузол.
ALPHA
Histogram
hintedprofile
kube-scheduler (/metrics)
scheduler_goroutines
Кількість запущених підпрограм, розділених за роботою, яку вони виконують, наприклад, звʼязуванням.
ALPHA
Gauge
operation
kube-scheduler (/metrics)
scheduler_inflight_events
Кількість подій, які наразі відстежуються в черзі планування.
ALPHA
Gauge
event
kube-scheduler (/metrics)
scheduler_pending_async_api_calls
Кількість викликів API, які наразі очікують у черзі async.
ALPHA
Gauge
call_type
kube-scheduler (/metrics)
scheduler_permit_wait_duration_seconds
Тривалість очікування на отримання дозволу.
ALPHA
Histogram
result
kube-scheduler (/metrics)
scheduler_plugin_evaluation_total
Кількість спроб запланувати Podʼи для кожного втулка і точки розширення (доступно тільки в PreFilter, Filter, PreScore і Score).
ALPHA
Counter
extension_pointpluginprofile
kube-scheduler (/metrics)
scheduler_plugin_execution_duration_seconds
Тривалість запуску втулка в певній точці розширення.
ALPHA
Histogram
extension_pointpluginstatus
kube-scheduler (/metrics)
scheduler_pod_scheduled_after_flush_total
Кількість подів, які були успішно заплановані після того, як вони були видалені з unschedulablePods через тайм-аут. Ця метрика допомагає виявляти потенційні проблеми з конфігурацією черги або обробкою подій.
ALPHA
Counter
kube-scheduler (/metrics)
scheduler_podgroup_schedule_attempts_total
Кількість спроб запланувати групу подів, за результатом. 'unschedulable' означає, що групу подів не вдалося запланувати, тоді як 'error' означає внутрішню проблему планувальника.
Кількість запитів на створення ResourceClaims у планувальнику
ALPHA
Counter
status
kube-scheduler (/metrics)
scheduler_scheduling_algorithm_duration_seconds
Затримка алгоритму планування в секундах
ALPHA
Histogram
kube-scheduler (/metrics)
scheduler_store_schedule_results_duration_seconds
Затримка для отримання відмови.
ALPHA
Histogram
profile
kube-scheduler (/metrics)
scheduler_unschedulable_pods
Кількість незапланованих Podʼів, розбитих за назвою втулка. Pod збільшує показник для всіх втулків, які спричинили його незапланованість, тому ця метрика має сенс лише у розбивці за втулками.
ALPHA
Gauge
pluginprofile
kube-scheduler (/metrics)
scheduler_volume_binder_cache_requests_total
Загальна кількість запитів кешу привʼязування томів
ALPHA
Counter
operation
kube-scheduler (/metrics)
scheduler_volume_scheduling_stage_error_total
Кількість помилок на етапі планування томів
ALPHA
Counter
operation
kube-scheduler (/metrics)
scrape_error
1, якщо виникла помилка при отриманні метрик контейнера, 0 в іншому випадку
Час, необхідний для видалення завдання (job) з моменту, коли воно стало доступним для видалення
ALPHA
Histogram
kube-controller-manager (/metrics)
version_info
Надає інформацію про сумісність версії компонента. Мітка компонента — це назва компонента, зазвичай kube, але вона має значення для aggregated-apiservers.
ALPHA
Gauge
binarycomponentemulationmin_compat
cloud-controller-manager (/metrics)
kube-apiserver (/metrics)
kube-controller-manager (/metrics)
kube-proxy (/metrics)
kube-scheduler (/metrics)
kubelet (/metrics)
volume_manager_selinux_container_errors_total
Кількість помилок, коли kubelet не може обчислити контекст SELinux для контейнера. Kubelet не зможе запустити такий Pod і спробує ще раз, тому значення цієї метрики може не відповідати дійсній кількості контейнерів.
ALPHA
Gauge
access_mode
kubelet (/metrics)
volume_manager_selinux_container_warnings_total
Кількість помилок, коли kubelet не може обчислити контекст SELinux для контейнера, які ігноруються. Вони стануть справжніми помилками, коли функцію SELinuxMountReadWriteOncePod буде розширено на всі режими доступу до томів.
Кількість помилок, коли Pod визначає різні контексти SELinux для своїх контейнерів, які використовують однаковий обʼєм. Kubelet не зможе запустити такий Pod і спробує ще раз, тому значення цієї метрики може не відповідати дійсній кількості Podʼів.
Кількість помилок, коли Pod визначає різні контексти SELinux для своїх контейнерів, які використовують той самий том. Це ще не помилки, але вони стануть справжніми помилками, коли можливість SELinuxMountReadWriteOncePod буде розширено на всі режими доступу до тома.
Кількість помилок, коли Pod використовує том, який вже змонтовано з іншим контекстом SELinux, ніж потрібен Pod. Kubelet не зможе запустити такий Pod і повторити спробу, тому значення цієї метрики може не відповідати дійсній кількості Podʼів.
Кількість помилок, коли Pod використовує том, який вже змонтовано з іншим контекстом SELinux, ніж потрібен Pod. Це ще не помилки, але вони стануть справжніми помилками, коли функцію SELinuxMountReadWriteOncePod буде розширено на всі режими доступу до томів.
ALPHA
Gauge
access_modevolume_plugin
kubelet (/metrics)
volume_manager_selinux_volumes_admitted_total
Кількість томів, контекст SELinux яких був нормальним і які буде змонтовано за допомогою параметра контексту mount -o.
ALPHA
Gauge
access_modevolume_plugin
kubelet (/metrics)
volume_manager_total_volumes
Кількість томів у Volume Manager
ALPHA
Custom
plugin_namestate
kubelet (/metrics)
volume_operation_total_errors
Всього помилок в роботі з томом
ALPHA
Counter
operation_nameplugin_name
kube-controller-manager (/metrics)
volume_operation_total_seconds
Тривалість операції зберігання від початку до кінця в секундах
ALPHA
Histogram
operation_nameplugin_name
kubelet (/metrics)
watch_cache_capacity
Загальний обсяг кешу watch, розбитий за типами ресурсів.
ALPHA
Gauge
groupresource
kube-apiserver (/metrics)
watch_cache_capacity_decrease_total
Загальна кількість подій зменшення ємності кешу watch, з розбивкою за типами ресурсів.
ALPHA
Counter
groupresource
kube-apiserver (/metrics)
watch_cache_capacity_increase_total
Загальна кількість подій збільшення ємності кешу watch, з розбивкою за типами ресурсів.
7.2 - Процес розкриття інформації про безпеку в Kubernetes
Ця сторінка описує процес розкриття інформації про безпеку в Kubernetes.
Оголошення з питань безпеки
Приєднуйтесь до групи kubernetes-security-announce, щоб отримувати електронні листи щодо безпеки та основних оголошень API.
Повідомлення про вразливості
Ми дуже вдячні фахівцям з безпеки та користувачам, які повідомляють про вразливості Kubernetes Open Source Community. Всі звіти ретельно розглядаються командою волонтерів спільноти.
Ви можете зашифрувати свій лист для цього списку за допомогою GPG-ключів членів комітету з питань реагування на загрози безпеці. Шифрування за допомогою GPG НЕ є обовʼязковим для повідомлення про проблеми з безпекою.
Коли потрібно повідомляти про вразливість?
Ви вважаєте, що виявили потенційну вразливість в Kubernetes
Ви не впевнені, як вразливість впливає на Kubernetes
Ви вважаєте, що виявили вразливість в іншому проєкті, від якого залежить Kubernetes
Для проєктів з власним процесом повідомлення про вразливості та розкриттям відповідних відомостей, будь ласка, повідомте про це безпосередньо туди
Коли НЕ потрібно повідомляти про вразливість?
Вам потрібна допомога у налаштуванні компонентів Kubernetes для безпеки
Вам потрібна допомога з застосуванням оновлень, повʼязаних з безпекою
Ваша проблема не стосується безпеки
Реагування на вразливості безпеки
Кожне повідомлення отримує відповідь та аналіз від членів комітету з питань реагування на загрози безпеці протягом 3 робочих днів. Це ініціює Security Release Process.
Будь-яка інформація про вразливість, що надходить до Комітету, залишається в проєкті Kubernetes і не буде розповсюджуватися до інших проєктів, якщо це необхідно для виправлення проблеми.
В міру того, як повідомлення про проблеми безпеки переходить з етапу попереднього розгляду, визначення шляхів виправлення та планування випуску, ми будемо тримати особу, що повідомила про проблему, в курсі подій.
Терміни оприлюднення інформації
Дата публічного оприлюднення узгоджується Комітетом з реагування на проблеми безпеки Kubernetes та автором повідомлення про ваду. Ми надаємо перевагу повному розкриттю вади якомога швидше, як тільки користувачеві буде доступне рішення для її усунення. Доцільно затримати розкриття, коли помилка або виправлення ще не до кінця зрозумілі, рішення ще не добре протестоване, або для узгодження з постачальником. Часові рамки для розкриття інформації — від негайного (особливо якщо вона вже відома загалу) до декількох тижнів. Для вразливостей, які легко усунути, ми очікуємо, що від дати повідомлення до дати розкриття буде близько 7 днів. Комітет з реагування на вразливості Kubernetes має вирішальне слово при встановленні дати оприлюднення.
Проєкт Kubernetes публікує програмно доступний потік опублікованих проблем безпеки у форматах JSON feed та RSS feed. Ви можете отримати до них доступ, виконавши наступні команди:
Цей потік автоматично оновлюється з помітними, але невеликими затримками (від хвилин до годин) від моменту оголошення CVE до доступу до нього у цьому потоці.
Джерелом інформації для цього потоку є набір GitHub Issues, відфільтрованих за міткою official-cve-feed. Сирі дані зберігаються у сховищі Google Cloud, до якого мають доступ лише декілька довірених членів спільноти.
8 - Довідкова інформація про вузли
У цьому розділі містяться наступні теми про вузли:
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.30 [beta](стандартно увімкнено)
Контрольна точка контейнера — це функціонал для створення копії контейнера зі станом запущеного контейнера. Після того, як у вас є копія контейнера з його станом, ви можете перенести його на інший компʼютер для налагодження або подібних цілей.
Якщо перемістити дані такої копії контейнера на компʼютер, здатний їх відновити, відновлений контейнер продовжить працювати точно з того самого місця, де він був зупинений. Також можна переглянути збережені дані, за умови, що є відповідні інструменти для цього.
Створення копії контейнера зі станом може мати наслідки для безпеки. Зазвичай така копія містить усі сторінки памʼяті всіх процесів у контейнері. Це означає, що все, що колись було в памʼяті, тепер доступне на локальному диску. Це включає всі приватні дані та можливі ключі, які використовувались для шифрування. Реалізації CRI повинні створювати архів копії зі збереженням стану таким чином, щоб до нього міг мати доступ лише користувач root. Важливо памʼятати, що якщо архів копії зі збереженням стану передається в іншу систему, усі сторінки памʼяті будуть доступні власнику архіву копії.
Операції
post створення копії зі збереженням стану вказаного контейнера
Дайте команду kubelet створити копію зі збереженням стану конкретного контейнера з вказаного Pod.
Kubelet запитає контрольну точку у відповідного CRI. У запиті до контрольної точки kubelet вкаже імʼя архіву контрольної точки у вигляді checkpoint-<podFullName>-<containerName>-<timestamp>.tar, а також попросить зберігати архів контрольних точок у теці checkpoints в його кореневій теці (як визначено параметром --root-dir). Типово це буде /var/lib/kubelet/checkpoints.
Архів копії зі збереженням стану має формат tar і може бути переглянутий за допомогою реалізації tar. Вміст архіву залежить від реалізації CRI (інтерфейс запуску контейнерів на вузлі).
Тайм-аут у секундах для очікування завершення створення копії зі збереженням стану. Якщо вказано нуль або тайм-аут не вказано, буде використане стандартне значення тайм-ауту для CRI. Час створення копії зі збереженням стану залежить безпосередньо від використаної памʼяті контейнера. Чим більше памʼяті використовує контейнер, тим більше часу
потрібно для створення відповідної копії зі збереженням стану.
Відповідь
200: OK
401: Unauthorized
404: Not Found (якщо функціональні можливості ContainerCheckpoint відключено)
404: Not Found (якщо вказаний namespace, pod або container не може бути знайдено)
500: Internal Server Error (якщо реалізація CRI стикається з помилкою під час створення копії зі збереженням стану (див. повідомлення про помилку для деталей))
500: Internal Server Error (якщо реалізація CRI не реалізує API створення контейнера (див. повідомлення про помилку для деталей))
8.2 - Вимоги до версії ядра Linux
Примітка: Цей розділ містить посилання на проєкти сторонніх розробників, які надають функціонал, необхідний для Kubernetes. Автори проєкту Kubernetes не несуть відповідальності за ці проєкти. Проєкти вказано в алфавітному порядку. Щоб додати проєкт до цього списку, ознайомтеся з посібником з контенту перед надсиланням змін. Докладніше.
Багато функцій залежать від певних можливостей ядра і мають мінімальні вимоги до версії ядра. Однак покладатися лише на номери версій ядра може бути недостатньо для деяких операційних систем, оскільки підтримувачі дистрибутивів таких як RHEL, Ubuntu та SUSE часто зворотно переносять вибрані функції до старіших версій ядра (залишаючи старішу версію ядра).
Pod sysctls
У Linux системний виклик sysctl() налаштовує параметри ядра під час виконання. Є інструмент командного рядка з назвою sysctl, який можна використовувати для налаштування цих параметрів, і багато з них доступні через файлову систему proc.
Деякі sysctls доступні лише за наявності достатньо нової версії ядра.
Наступні sysctls мають мінімальні вимоги до версії ядра і підтримуються в безпечному наборі:
net.ipv4.ip_local_reserved_ports (з Kubernetes 1.27, потребує ядро 3.16+);
net.ipv4.tcp_keepalive_time (з Kubernetes 1.29, потребує ядро 4.5+);
net.ipv4.tcp_fin_timeout (з Kubernetes 1.29, потребує ядро 4.6+);
net.ipv4.tcp_keepalive_intvl (з Kubernetes 1.29, потребує ядро 4.5+);
net.ipv4.tcp_keepalive_probes (з Kubernetes 1.29, потребує ядро 4.5+);
net.ipv4.tcp_syncookies (з ізоляцією в просторі імен з ядра 4.6+);
net.ipv4.tcp_rmem (з Kubernetes 1.32, потребує ядро 4.15+).
net.ipv4.tcp_wmem (з Kubernetes 1.32, потребує ядро 4.15+).
net.ipv4.vs.conn_reuse_mode (використовується в режимі проксі ipvs, потребує ядро 4.1+);
Режим проксі nftables в kube-proxy
Для Kubernetes 1.36, режим nftables у kube-proxy вимагає
версії 1.0.1 або новішої версії інструменту командного рядка nft, а також ядра 5.13 або новішого.
Для тестування та розробки можна використовувати старіші ядра, аж до 5.4, якщо встановити опцію nftables.skipKernelVersionCheck у конфігурації kube-proxy. Але це не рекомендується в операційній діяльності, оскільки це може викликати проблеми з іншими користувачами nftables
у системі.
Контрольні групи версії 2
Підтримка cgroup v1 у Kubernetes перебуває в режимі супроводу, починаючи з версії Kubernetes v1.31; рекомендовано використовувати cgroup v2. У Linux 5.8, файл системного рівня cpu.stat був доданий до кореневої cgroup для зручності.
У документації runc, ядра старіші за 5.2 не рекомендуються через відсутність підтримки freezer.
Pressure Stall Information (PSI)
Pressure Stall Information підтримується в ядрі Linux версії 4.20 та новіших, але вимагає наступної конфігурації:
Ядро повинно бути скомпільоване з опцією CONFIG_PSI=y. Більшість сучасних дистрибутивів це стандартно увімкнено. Ви можете перевірити конфігурацію вашого ядра, виконавши команду zgrep CONFIG_PSI /proc/config.gz.
Деякі дистрибутиви Linux можуть скомпілювати PSI в ядро, але вимкнути його. Якщо так, вам потрібно увімкнути його під час завантаження, додайте параметр psi=1 до командного рядка ядра.
Інші вимоги до ядра
Деякі функції можуть залежати від нових можливостей ядра і мати конкретні вимоги до ядра:
Рекурсивне монтування в режимі тільки для читання: Реалізується шляхом застосування атрибута MOUNT_ATTR_RDONLY із прапором AT_RECURSIVE, використовуючи mount_setattr(2), доданий у ядрі Linux v5.12.
Підтримка простору імен користувачів в Pod вимагає мінімальної версії ядра 6.5+, згідно з KEP-127.
Для swap на рівні вузлів не підтримується tmpfs, встановлений як noswap, до версії ядра 6.3.
Довгострокова підтримка ядра Linux
Актуальні випуски ядра можна знайти на kernel.org.
Зазвичай існує кілька випусків ядра з довгостроковою підтримкою, які забезпечують зворотне перенесення виправлень для старіших версій ядра. До таких ядер застосовуються лише важливі виправлення помилок, і вони зазвичай виходять не дуже часто, особливо для старіших версій. Перегляньте список випусків на вебсайті ядра Linux в розділі Longterm.
Що далі
Перегляньте sysctls для отримання додаткової інформації.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.35 [alpha](стандартно вимкнено)
API Kubelet Pod Info gRPC дає змогу локальним компонентам вузла отримувати інформацію про поди, що працюють на цьому вузлі, безпосередньо від kubelet. Це підвищує надійність, усуваючи залежність від сервера API Kubernetes для отримання локальної інформації про вузол, а також зменшує навантаження на панель управління.
Доступ до цього API обмежено локальними адміністраторами (зазвичай root) через права доступу до файлу на UNIX-сокеті.
Точка доступу
API слухає на UNIX-сокеті за адресою: /var/lib/kubelet/pods/kubelet.sock
Примітка:
Цей API не підтримується на вузлах Windows.
Операції
API надає наступні методи gRPC:
ListPods
Повертає список усіх подів, які наразі керуються kubelet на вузлі.
WatchPods
Повертає потік оновлень подів. Коли стан пода змінюється локально, kubelet надсилає оновлену інформацію про под через потік.
GetPod
Повертає інформацію про конкретний под, ідентифікований за його UID.
Визначення API
API використовує наступне визначення protobuf:
import"google/protobuf/field_mask.proto";import"k8s.io/api/core/v1/generated.proto";servicePods{// ListPods повертає список об’єктів v1.Pod, який за бажанням можна відфільтрувати за допомогою маски полів.
rpcListPods(PodListRequest)returns(PodListResponse){}// WatchPods повертає потік оновлень Pod, який за бажанням можна відфільтрувати за допомогою маски полів.
rpcWatchPods(PodWatchRequest)returns(streamPodWatchResponse){}// GetPod повертає об’єкт v1.Pod для заданого UID пода, за бажанням можна відфільтрувати за допомогою маски полів.
rpcGetPod(PodGetRequest)returns(PodGetResponse){}}messagePodListRequest{// Опційна маска полів у метаданих gRPC, щоб вказати, які поля пода повертати.
}messagePodListResponse{repeatedv1.Podpods=1;}messagePodWatchRequest{// Опційна маска полів у метаданих gRPC, щоб вказати, які поля пода повертати.
}messagePodWatchResponse{v1.Podpod=1;}messagePodGetRequest{stringpodUID=1;// Опційна маска полів у метаданих gRPC, щоб вказати, які поля пода повертати.
}messagePodGetResponse{v1.Podpod=1;}
Вибір полів
API підтримує google.protobuf.FieldMask, щоб дозволити клієнтам запитувати лише конкретні поля, які їм потрібні (наприклад, status.phase, status.podIPs). Це забезпечує ефективну передачу даних. Якщо маска полів не надана, повертається повний об'єкт v1.Pod.
Надійність та доступність
API надає найактуальнішу інформацію, відому локально kubelet, отриману з його внутрішнього кешу та узгодження з середовищем виконання контейнерів. Він залишається доступним навіть у разі втрати вузлом звʼязку з панеллю управління Kubernetes.
Якщо kubelet нещодавно перезапустився і його внутрішній стан ще не повністю ініціалізований, API повертає помилку gRPC FAILED_PRECONDITION.
8.4 - Статті про видалення dockershim та використання сумісних з CRI середовищ виконання
Це список статей й інших сторінок, що стосуються видалення dockershim у Kubernetes та використання сумісних з CRI контейнерних середовищ виконання у звʼязку з цим видаленням.
topology.kubernetes.io/zone (якщо відомо kubelet, Kubernetes може не мати цієї інформації для встановлення мітки)
Примітка:
Значення цих міток специфічні для постачальника хмарних послуг і їх надійність не гарантуються. Наприклад, значення kubernetes.io/hostname може бути таким самим, як імʼя вузла в деяких середовищах та різним в інших середовищах.
8.6 - Локальні файли та шляхи, які використовує Kubelet
kubelet — це переважно процес без збереження стану, який працює на вузлі Kubernetes. У цьому документі описані файли, які kubelet читає та записує.
Примітка:
Цей документ має інформаційний характер і не описує жодної гарантованої поведінки або API. У ньому перелічено ресурси, що використовуються kubelet, що є деталлю реалізації та може бути змінено у будь-якій версії.
Зазвичай, kubelet використовує панель управління як джерело істини про те, що повинно запускатися на вузлі, і середовище виконання контейнерів для отримання поточного стану контейнерів. За наявності kubeconfig (конфігурації клієнта API), kubelet підключається до панелі управління; інакше вузол працює в автономному режимі.
На Linux-вузлах kubelet також читає cgroups та різні системні файли для збору метрик.
На Windows-вузлах kubelet збирає метрики іншим механізмом, що не спирається на шляхи.
Є також кілька інших файлів, які використовуються kubelet, і kubelet спілкується за допомогою локальних сокетів Unix-домену. Деякі з них — це сокети, на яких слухає kubelet, а інші — сокети, які kubelet виявляє та підключається до них як клієнт.
Примітка:
Ця сторінка наводить шляхи у форматі Linux, які відповідають шляхам Windows із додаванням кореневого диска C:\ замість / (якщо не вказано інше). Наприклад, /var/lib/kubelet/device-plugins відповідає шляху C:\var\lib\kubelet\device-plugins.
Конфігурація
Конфігураційні файли kubelet
Шлях до конфігураційного файлу kubelet можна налаштувати за допомогою командного аргументу --config. Kubelet також підтримує доповнювані конфігураційні файли для розширення налаштувань.
Сертифікати
Сертифікати та приватні ключі зазвичай розташовані в /var/lib/kubelet/pki, але цей шлях можна налаштувати за допомогою командного аргументу kubelet --cert-dir. Імена файлів сертифікатів також можна налаштувати.
Маніфести
Маніфести для статичних Podʼів зазвичай розташовані в /etc/kubernetes/manifests. Місце розташування можна налаштувати за допомогою опції конфігурації kubelet staticPodPath.
Налаштування юнітів systemd
Коли kubelet працює як юніт systemd, деякі налаштування kubelet можуть бути визначені в файлі налаштувань systemd. Зазвичай це включає:
командні аргументи для запуску kubelet
змінні середовища, що використовуються kubelet або для налаштування середовища golang
Стан
Файли контрольних точок для менеджерів ресурсів
Усі менеджери ресурсів зберігають відповідність між Podʼами та виділеними ресурсами у файлах стану. Ці файли розташовані в базовій теці kubelet, також відомій як root directory (але це не те саме, що /, коренева тека вузла). Ви можете налаштувати базову теку для kubelet за допомогою аргументу командного рядка --root-dir.
Назви файлів:
memory_manager_state для менеджера пам’яті
cpu_manager_state для менеджера процесорів
dra_manager_state для DRA
Файл контрольної точки для менеджера пристроїв
Менеджер пристроїв створює контрольні точки в тій самій теці, що й сокет-файли: /var/lib/kubelet/device-plugins/. Цей шлях задано жорстко і він не є відносним до кореневої теки kubelet. Назва файлу контрольної точки — kubelet_internal_checkpoint для менеджера пристроїв.
Контрольні точки ресурсів Pod
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.35 [stable](стандартно увімкнено)
allocated_pods_state записує ресурси, виділені для кожного контейнера, запущеного на вузлі
actuated_pods_state записує ресурси, які були прийняті виконавчим середовищем для кожного контейнера, запущеного на вузлі
Файли знаходяться у базовій теці kubelet (/var/lib/kubelet стандартно у Linux; налаштовується за допомогою --root-dir).
Середовище виконання контейнерів
Kubelet спілкується з середовищем виконання контейнерів за допомогою сокета, налаштованого через такі параметри конфігурації:
containerRuntimeEndpoint для операцій із середовищем виконання
imageServiceEndpoint для операцій з управління образами
Фактичні значення цих точок доступу залежать від середовища виконання контейнерів, яке використовується.
Втулки пристроїв
Kubelet відкриває сокет за шляхом /var/lib/kubelet/device-plugins/kubelet.sock для різних втулків пристроїв, які реєструються.
Коли втулок пристрою реєструється, він надає шлях до свого сокета, щоб kubelet міг підʼєднатися.
Сокет втулка пристрою повинен знаходитися в теці /var/lib/kubelet/device-plugins/. Цей шлях задано жорстко і він не є відносним до кореневої теки kubelet (root directory). На Linux цей шлях завжди /var/lib/kubelet/device-plugins.
API ресурсів Podʼів
Pod Resources API буде доступний за шляхом pod-resources у базовій теці kubelet (root directory). На типовому Linux-вузлі це означає /var/lib/kubelet/pod-resources.
DRA, CSI та втулки пристроїв
Kubelet шукає сокет-файли, створені втулками пристроїв, керованими через DRA, менеджер пристроїв або втулки зберігання, а потім намагається приєднатись до цих сокетів. Текою, у якій kubelet шукає, є plugins_registry у базовій теці kubelet, тобто на типовому Linux-вузлі це — /var/lib/kubelet/plugins_registry.
Зверніть увагу, що для втулків пристроїв є два альтернативні механізми реєстрації. Тільки один із них повинен використовуватися для певного втулка.
Типи втулків, які можуть розміщувати сокет-файли в цій теці:
втулки CSI
втулки DRA
втулки менеджера пристроїв
(зазвичай /var/lib/kubelet/plugins_registry).
Належне вимкнення вузлів
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.21 [beta](стандартно увімкнено)
Належне вимкнення вузлів зберігає стан локально за адресою /var/lib/kubelet/graceful_node_shutdown_state.
Записи отримання образів
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.35 [beta](стандартно увімкнено)
Kubelet зберігає записи про спроби та успішні отримання образів і використовує їх для перевірки того, що образ вже було успішно отримано з тими самими обліковими даними.
Ці записи зберігаються у вигляді файлів у теці image_registry у базовій теці kubelet. На типовому вузлі Linux це означає /var/lib/kubelet/image_manager. У image_manager є дві вкладених теки:
pulling - зберігає записи про образи, які Kubelet намагається витягнути.
pulled - зберігає записи про образи, які було успішно отримано Kubelet, разом з метаданими про облікові дані, які було використано для отримання.
Файли профілів seccomp, на які посилаються Podʼи, мають бути розміщені стандартно у /var/lib/kubelet/seccomp. Дивіться довідку Seccomp для деталей.
AppArmor
Kubelet не завантажує і не звертається до профілів AppArmor за специфічним для Kubernetes шляхом. Профілі AppArmor завантажуються через операційну систему вузла, а не посилаються за їх шляхом.
Блокування
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.2 [alpha]
Файл блокування для kubelet зазвичай знаходиться за адресою /var/run/kubelet.lock. Kubelet використовує цей файл для того, щоб два різні екземпляри kubelet не намагалися працювати у конфлікті одна одної.
Ви можете налаштувати шлях до файлу блокування, використовуючи аргумент командного рядка kubelet --lock-file.
Якщо два екземпляри kubelet на одному вузлі використовують різні значення для шляху до файлу блокування, вони не зможуть виявити конфлікт, коли обидва працюють одночасно.
Kubelet — це основний "агент вузла", який створює та відстежує Podʼи на кожному вузлі. kubelet запускає цикл синхронізації, який періодично узгоджує бажаний стан (специфікацію Podʼів) з фактичним станом запущених контейнерів.
Цикл синхронізації (Sync Loop): Цикл синхронізації ставить у чергу роботу (агреговану з багатьох джерел) для Podʼів, призначених для його вузла (де nodeName збігається з вузлом). Протягом кожного циклу субпроцеси, що називаються «pod workers», намагатимуться узгодити бажаний стан цих Podʼів з поточним станом запущених контейнерів.
Синхронізація Podʼів (Sync Pod): Більшість логіки kubelet зберігається в наборі функцій у межах інтерфейсу podSyncer, включаючи функцію SyncPod та її варіанти (наприклад, SyncTerminatingPod та SyncTerminatedPod). Під час кожного циклу синхронізації відповідна функція podSyncer буде виконана для кожного Podʼа, намагаючись привести його стан на вузлі до бажаного стану.
Container Runtime Interface (CRI): Щоб фактично запускати контейнери, kubelet використовує CRI для взаємодії з середовищем виконання контейнерів (наприклад, containerd або CRI-O). kubelet виступає як клієнт, надаючи вказівки середовищу виконання створити "пісочницю Podʼа", а потім створити/запустити окремі контейнери, визначені в специфікації Podʼа.
PLEG (Pod Lifecycle Event Generator): kubelet потрібно знати, коли контейнери запускаються, зупиняються або виходять з ладу. Він покладається на компонент з назвою PLEG, який періодично опитує середовище виконання для стандартного стану всіх контейнерів. PLEG генерує події, які пробуджують цикл синхронізації для оновлення статусу Podʼа.
Через цей механізм опитування стан, який видно в API (наприклад, за допомогою команди kubectl get pod), може дещо запізнюватися порівняно з тим, що насправді відбувається на вузлі.
8.8 - Версії API Kubelet Device Manager
Ця сторінка надає інформацію про сумісність між
API втулків пристроїв Kubernetes та різними версіями самого Kubernetes.
Матриця сумісності
v1alpha1
v1beta1
Kubernetes 1.21
-
✓
Kubernetes 1.22
-
✓
Kubernetes 1.23
-
✓
Kubernetes 1.24
-
✓
Kubernetes 1.25
-
✓
Kubernetes 1.26
-
✓
Позначення:
✓ Точно такі ж функції / обʼєкти API в обох, API втулка пристроїв та версії Kubernetes.
+ API втулка пристроїв має функції або обʼєкти API, яких може не бути в кластері Kubernetes, або через те, що API втулка пристроїв додало додаткові нові виклики API, або через те, що сервер видалив старий виклик API. Однак, все, що у них є спільного (більшість інших API), працюватиме. Зверніть увагу, що альфа-версії API можуть зникнути або значно змінитися між незначними релізами.
- Кластер Kubernetes має функції, які не може використовувати API втулка пристроїв, або через те, що сервер додав додаткові виклики API, або через те, що API втулка пристроїв видалило старий виклик API. Однак, все, що у них є спільного (більшість API), працюватиме.
8.9 - Обʼєднання конфігураційних тек Kubelet
Коли використовується прапорець kubelet --config-dir для вказівки теки для конфігурації, існує певна специфічна поведінка для обʼєднання різних типів.
Ось кілька прикладів того, як різні типи даних поводяться під час обʼєднання конфігурації:
Поля структур
У YAML структурі є два типи полів структури: одиничні (або скалярні типи) та вбудовані (структури, що містять скалярні типи). Процес обʼєднання конфігурацій обробляє заміну одиничних та вбудованих полів структур для створення кінцевої конфігурації kubelet.
Наприклад, ви можете хотіти мати базову конфігурацію kubelet для всіх вузлів, але налаштувати поля address і authorization. Це можна зробити наступним чином:
Ви можете замінити значення списків конфігурації kubelet. Однак весь список буде замінений під час процесу обʼєднання. Наприклад, ви можете замінити список clusterDNS наступним чином:
Індивідуальні поля в map, незалежно від їх типів значень (булеві, рядкові тощо), можуть бути вибірково замінені. Однак для map[string][]string весь список, повʼязаний з певним полем, буде замінений. Розглянемо це детальніше на прикладі, зокрема для таких полів, як featureGates і staticPodURLHeader:
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.32 [beta](стандартно увімкнено)
На вузлах Linux, Kubernetes 1.36 підтримує інтеграцію з systemd, щоб дозволити супервізору операційної системи відновити несправний kubelet. Стандартно цю інтеграцію не увімкнено. Її можна використовувати як альтернативу періодичним запитам до точки доступу kubelet /healthz для перевірки працездатності. Якщо протягом тайм-ауту kubelet не відповість на запит сторожового таймера, сторожовий таймер вбʼє kubelet.
Сторожовий таймер systemd працює, вимагаючи від сервісу періодично надсилати сигнал keep-alive процесу systemd. Якщо сигнал не отримано протягом визначеного тайм-ауту, служба вважається такою, що не реагує, і припиняє свою роботу. Після цього службу можна перезапустити відповідно до конфігурації.
Конфігурація
Використання сторожового таймера systemd вимагає налаштування параметра WatchdogSec у розділі [Service] файлу сервісного блоку kubelet:
[Service]
WatchdogSec=30s
Встановлення WatchdogSec=30s вказує на тайм-аут службового сторожового тайм-ауту у 30 секунд. Усередині kubelet функція d_notify() викликається з інтервалом \( WatchdogSec \div 2\), щоб відправити WATCHDOG=1 (повідомлення про те, що він живий). Якщо сторожовий таймер не буде запущено протягом тайм-ауту, kubelet буде вбито. Встановлення Restart у значення "always", "on-failure", "on-watchdog" або "on-abnormal" забезпечить автоматичний перезапуск сервісу.
Дещо про конфігурацію systemd:
Якщо ви встановите значення systemd для параметра WatchdogSec рівним 0 або не встановите його, сторожовий таймер systemd буде вимкнено для цього пристрою.
Kubelet підтримує мінімальний період роботи сторожового таймера 1.0 секунди; це необхідно для запобігання несподіваного завершення роботи kubelet. Ви можете встановити значення WatchdogSec у визначенні системного блоку на період, менший за 1 секунду, але Kubernetes не підтримує коротший інтервал. Тайм-аут не обовʼязково має бути цілим числом секунд.
Проєкт Kubernetes пропонує встановити WatchdogSec на період приблизно 15 с. Періоди довші за 10 хвилин підтримуються, але явно не рекомендуються.
Приклад конфігурації
[Unit]Description=kubelet: The Kubernetes Node AgentDocumentation=https://kubernetes.io/docs/home/Wants=network-online.targetAfter=network-online.target[Service]ExecStart=/usr/bin/kubelet# Налаштування таймауту watchdogWatchdogSec=30sRestart=on-failureStartLimitInterval=0RestartSec=10[Install]WantedBy=multi-user.target
Seccomp (secure computing mode) — це функція ядра Linux, яка існує з версії 2.6.12. Її можна використовувати для обмеження привілеїв процесу шляхом ізоляції, обмежуючи системні виклики, які він може здійснювати з простору користувача в ядро. Kubernetes дозволяє автоматично застосовувати профілі seccomp, завантажені на вузол, до ваших Podʼів і контейнерів.
Поля Seccomp
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.19 [stable]
Існує чотири способи вказати профіль seccomp для Podʼа:
apiVersion:v1kind:Podmetadata:name:podspec:securityContext:seccompProfile:type:Unconfined# ПРИМІТКА: ephemeralContainers не може бути вказаний під час створення Podʼа.# Його можна вказати лише під час оновлення Podʼа.ephemeralContainers:- name:ephemeral-containerimage:debiansecurityContext:seccompProfile:type:RuntimeDefaultinitContainers:- name:init-containerimage:debiansecurityContext:seccompProfile:type:RuntimeDefaultcontainers:- name:containerimage:docker.io/library/debian:stablesecurityContext:seccompProfile:type:LocalhostlocalhostProfile:my-profile.json
Pod у прикладі вище працює як Unconfined, тоді як ephemeral-container та init-container конкретно визначають RuntimeDefault. Якби ефемерний або init-контейнер не встановили явно поле securityContext.seccompProfile, тоді значення успадковується від Pod. Це ж стосується і контейнера, який використовує локальний профіль my-profile.json.
Загалом, поля контейнерів (включаючи ефемерні) мають вищий пріоритет, ніж значення на рівні Pod, а контейнери, які не задають поле seccomp, успадковують профіль від Pod.
Примітка:
Неможливо застосувати профіль seccomp до Podʼа або контейнера, що працює з налаштуванням privileged: true у securityContext контейнера. Привілейовані контейнери завжди працюють у режимі Unconfined.
Наступні значення можливі для поля seccompProfile.type:
Unconfined
Навантаження працює без будь-яких обмежень seccomp.
RuntimeDefault
Застосовується стандартний профіль seccomp, визначений середовищем виконання контейнерів. Стандартні профілі прагнуть забезпечити надійний набір параметрів безпеки, зберігаючи функціональність навантаження. Можливо, що стандартні профілі відрізняються між різними середовищами виконання контейнерів та їх версіями, наприклад, порівнюючи профілі CRI-O та containerd.
Localhost
Застосовується localhostProfile, який має бути доступний на диску вузла (у Linux це /var/lib/kubelet/seccomp). Доступність профілю seccomp перевіряється середовищем виконання контейнерів під час створення контейнера. Якщо профіль не існує, то створення контейнера завершиться з помилкою CreateContainerError.
Профілі Localhost
Профілі Seccomp — це JSON-файли, що відповідають схемі, визначеній специфікацією середовища виконання OCI. Профіль, як правило, визначає дії на основі відповідних системних викликів, але також дозволяє передавати конкретні значення як аргументи до системних викликів. Наприклад:
defaultAction у профілі вище визначено як SCMP_ACT_ERRNO і буде повернуто як резервне для дій, визначених у syscalls. Помилка визначена як код 38 через поле 'defaultErrnoRet'.
Наступні дії зазвичай можливі:
SCMP_ACT_ERRNO
Повернення вказаного коду помилки.
SCMP_ACT_ALLOW
Дозвіл на виконання системного виклику.
SCMP_ACT_KILL_PROCESS
Завершення процесу.
SCMP_ACT_KILL_THREAD і SCMP_ACT_KILL
Завершення тільки потоку.
SCMP_ACT_TRAP
Генерація сигналу SIGSYS.
SCMP_ACT_NOTIFY і SECCOMP_RET_USER_NOTIF
Сповіщення простору користувача.
SCMP_ACT_TRACE
Сповіщення процесу трасування з вказаним значенням.
SCMP_ACT_LOG
Дозвіл на виконання системного виклику після того, як дія була зареєстрована в syslog або auditd.
Деякі дії, такі як SCMP_ACT_NOTIFY або SECCOMP_RET_USER_NOTIF, можуть бути не підтримувані залежно від середовища виконання контейнера, середовища виконання OCI або версії ядра Linux. Можуть бути також додаткові обмеження, наприклад, що SCMP_ACT_NOTIFY не може використовуватися як defaultAction або для певних системних викликів, таких як write. Усі ці обмеження визначаються або середовищем виконання OCI (runc,
crun) або libseccomp.
Масив JSON syscalls містить список об’єктів, що посилаються на системні виклики за їхніми відповідними names. Наприклад, дія SCMP_ACT_ALLOW може бути використана для створення білого списку дозволених системних викликів, як показано у прикладі вище. Також можна визначити інший список, використовуючи дію SCMP_ACT_ERRNO, але з іншим значенням повернення (errnoRet).
Стан вузла у Kubernetes є критичним аспектом управління кластером Kubernetes. У цій статті ми розглянемо основи моніторингу та підтримки стану вузлів, щоб забезпечити справний та стабільний кластер.
Ви можете використовувати команду kubectl для перегляду стану вузла та інших деталей:
kubectl describe node <insert-node-name-here>
Кожен розділ вихідних даних описано нижче.
Адреси
Використання цих полів варіюється залежно від вашого постачальника хмарних послуг або конфігурації на голому залізі.
HostName: Імʼя хосту, яке повідомляється ядром вузла. Може бути перевизначене за допомогою параметра kubelet --hostname-override.
ExternalIP: Як правило, це IP-адреса вузла, яка доступна ззовні кластера.
InternalIP: Як правило, це IP-адреса вузла, яка доступна лише всередині кластера.
Стани
Поле conditions описує стан усіх Running вузлів. Прикладами умов є:
Стан вузлів та опис, коли кожен стан застосовується.
Умова вузла
Опис
Ready
True, якщо вузол справний та готовий приймати Podʼи, False, якщо вузол не справний і не приймає Podʼи, та Unknown, якщо контролер вузла не отримав інформацію від вузла протягом останнього node-monitor-grace-period (стандартно 50 секунд)
DiskPressure
True, якщо є тиск на розмір диска, тобто якщо місткість диска низька; інакше False
MemoryPressure
True, якщо є тиск на памʼять вузла, тобто якщо памʼять вузла низька; інакше False
PIDPressure
True, якщо є тиск на процеси, тобто якщо на вузлі занадто багато процесів; інакше False
NetworkUnavailable
True, якщо мережа для вузла неправильно налаштована, інакше False
Примітка:
Якщо ви використовуєте командний рядок для перегляду деталей вузла з вимкненим плануванням (cordoned Node), стан включає SchedulingDisabled. SchedulingDisabled не є станом в API Kubernetes; замість цього вузли з вимкненим плануванням позначені як Unschedulable в їхній специфікації.
В API Kubernetes стан вузла представлений як частина .status ресурсу Node. Наприклад, наступна структура JSON описує справний вузол:
"conditions":[{"type":"Ready","status":"True","reason":"KubeletReady","message":"kubelet is posting ready status","lastHeartbeatTime":"2019-06-05T18:38:35Z","lastTransitionTime":"2019-06-05T11:41:27Z"}]
Коли на вузлах виникають проблеми, панель управління Kubernetes автоматично створює taints, які відповідають станам, що впливають на вузол. Прикладом цього є ситуація, коли status стану Ready залишається Unknown або False довше, ніж налаштований інтервал NodeMonitorGracePeriod у kube-controller-manager, який стандартно становить 50 секунд. Це спричинить додавання на вузол taint node.kubernetes.io/unreachable для статусу Unknown або taint node.kubernetes.io/not-ready для статусу False.
Ці taints впливають на Podʼи, що перебувають в очікуванні, оскільки планувальник враховує taints вузла при призначенні Podʼів на вузол. Наявні Podʼи, заплановані на вузол, можуть бути виселені через застосування taints типу NoExecute. Podʼи також можуть мати tolerations, що дозволяє їм бути запланованими та продовжувати працювати на вузлі, навіть якщо на ньому є певний taint.
Описує ресурси, доступні на вузлі: процесор, памʼять та максимальну кількість Podʼів, які можуть бути заплановані на вузлі.
Поля у блоці місткості вказують на загальну кількість ресурсів, які має вузол. Блок доступності вказує на кількість ресурсів на вузлі, які доступні для використання звичайними подами.
Описує загальну інформацію про вузол, таку як версія ядра, версія Kubernetes (kubelet і kube-proxy), деталі контейнерного середовища та яка операційна система використовується на вузлі. Kubelet збирає цю інформацію з вузла та публікує її в API Kubernetes.
Оголошені Функції
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.36 [beta](стандартно увімкнено)
У цьому полі перелічено конкретні функції Kubernetes, які наразі ввімкнено в kubelet вузла за допомогою функціональних можливостей. Функції повідомляються kubelet у вигляді списку рядків у полі .status.declaredFeatures об’єкта Node.
Це поле призначене для нових функцій, що знаходяться в стадії активної розробки; функції, які пройшли випробування і більше не потребують функціональної можливості, вважаються базовими і не зазначаються в цьому полі. Це стосується увімкнення функцій Kubernetes, а не можливостей операційної системи або ядра вузла.
Пульс, що надсилається вузлами Kubernetes, допомагають вашому кластеру визначити доступність кожного вузла та вжити заходів у разі виявлення збоїв.
Для вузлів існує дві форми пульсу:
оновлення .status вузла
обʼєкти Lease у просторі іменkube-node-lease. Кожен вузол має повʼязаний обʼєкт Lease.
Порівняно з оновленнями .status вузла, Lease є легким ресурсом. Використання Lease для пульсу знижує вплив цих оновлень на продуктивність для великих кластерів.
Kubelet відповідає за створення та оновлення .status вузлів, а також за оновлення їх повʼязаних Lease.
Kubelet оновлює .status вузла або коли стан змінюється, або якщо не було оновлень протягом налаштованого інтервалу. Стандартний інтервал для оновлень .status вузлів становить 5 хвилин, що значно довше, ніж типових 40 секунд для вузлів, що стали недоступними.
Kubelet створює та оновлює свій обʼєкт Lease кожні 10 секунд (стандартний інтервал оновлення). Оновлення Lease відбуваються незалежно від оновлень .status вузла. Якщо оновлення Lease не вдається, Kubelet повторює спробу, використовуючи експоненціальне збільшення інтервалу з початкового 200 мілісекунд до максимально 7 секунд.
8.13 - Поведінка свопу на вузлах Linux
Щоб дозволити робочим навантаженням Kubernetes використовувати своп, на вузлі Linux необхідно вимкнути стандартну поведінку kubelet, яка полягає в тому, що kubelet зазнає невдачі при виявленні свопу, та вказати поведінку memory-swap як LimitedSwap:
Доступні варіанти поведінки свопу:
NoSwap
(стандартно) Робочі навантаження, що виконуються як Podʼи на цьому вузлі, не використовують і не можуть використовувати своп. Однак процеси поза межами Kubernetes, такі як системні демони (включаючи сам kubelet!), можуть використовувати своп. Така поведінка є корисною для захисту вузла від стрибків памʼяті на системному рівні, але вона не захищає самі робочі навантаження від таких стрибків.
LimitedSwap
Робочі навантаження Kubernetes можуть використовувати своп-памʼять. Обсяг своп, доступний для Podʼа, визначається автоматично.
Існує 3 допустимі значення для protocol порту Service:
SCTP
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.20 [stable]
При використанні втулка мережі, що підтримує SCTP-трафік, ви можете використовувати SCTP для більшості Service. Для Service типу LoadBalancer підтримка SCTP залежить від можливості постачальника хмарних послуг надавати цю функцію. (Більшість не підтримують).
SCTP не підтримується на вузлах, що працюють під управлінням Windows.
Підтримка багатодомашніх SCTP-асоціацій
Підтримка багатодомашніх SCTP-асоціацій вимагає, щоб втулок CNI міг підтримувати призначення декількох інтерфейсів та IP-адрес для Podʼів.
NAT для багатодомашніх SCTP-асоціацій вимагає спеціальної логіки у відповідних модулях ядра.
TCP
Ви можете використовувати TCP для будь-якого виду Service, і це стандартний протокол.
UDP
Ви можете використовувати UDP для більшості Service. Для Service типу LoadBalancer підтримка UDP залежить від можливості постачальника хмарних послуг надавати цю функцію.
Особливі випадки
HTTP
Якщо ваш постачальник хмарних послуг підтримує це, ви можете використовувати Service у режимі LoadBalancer для налаштування балансувальника навантаження поза межами вашого кластера Kubernetes у спеціальному режимі, де балансувальник навантаження вашого постачальника хмарних послуг реалізує зворотнє проксіювання трафіку HTTP / HTTPS, з перенаправленням трафіку на бекенд-точки доступу для цього Service.
Зазвичай, ви встановлюєте протокол для Service як TCP і додаєте анотацію (зазвичай специфічну для вашого постачальника хмарних послуг), яка налаштовує балансувальник навантаження для обробки трафіку на рівні HTTP. Ця конфігурація може також включати обслуговування HTTPS (HTTP через TLS) та зворотнє проксіювання plain HTTP до вашого навантаження.
Примітка:
Ви також можете використовувати Ingress для експонування HTTP/HTTPS Service.
Ви можете додатково вказати, що протокол застосунку зʼєднання є http або https. Використовуйте http, якщо сесія від балансувальника навантаження до вашого навантаження є HTTP без TLS, та використовуйте https, якщо сесія від балансувальника навантаження до вашого навантаження використовує TLS-шифрування.
PROXY protocol
Якщо ваш постачальник хмарних послуг підтримує це, ви можете використовувати Service із типом LoadBalancer для налаштування балансувальника навантаження поза межами самого Kubernetes, який буде перенаправляти зʼєднання, обгорнуті у
PROXY protocol.
Балансувальник навантаження тоді надсилає початкову серію октетів, що описують
вхідне зʼєднання, схоже на цей приклад (PROXY protocol v1):
PROXY TCP4 192.0.2.202 10.0.42.7 12345 7\r\n
Дані після проксі-протоколу є оригінальними даними від клієнта. Коли будь-яка сторона закриває зʼєднання, балансувальник навантаження також ініціює закриття зʼєднання та надсилає будь-які залишкові дані, якщо це можливо.
Зазвичай, ви визначаєте Service із протоколом TCP. Ви також встановлюєте анотацію, специфічну для вашого постачальника хмарних послуг, яка налаштовує балансувальник навантаження обгортати кожне вхідне зʼєднання у PROXY протокол.
TLS
Якщо ваш постачальник хмарних послуг підтримує це, ви можете використовувати Service із типом LoadBalancer як спосіб налаштування зовнішнього зворотного проксіювання, де зʼєднання від клієнта до балансувальника навантаження зашифроване за допомогою TLS, а балансувальник навантаження виступає як TLS-сервер. Зʼєднання від балансувальника навантаження до вашого навантаження також може бути TLS, або може бути plain text. Точні варіанти залежать від вашого постачальника хмарних послуг або користувацької реалізації Service.
Зазвичай, ви встановлюєте протокол як TCP та встановлюєте анотацію (зазвичай специфічну для вашого постачальника хмарних послуг), яка налаштовує балансувальник навантаження виступати як TLS-сервер. Ви б налаштовували TLS-ідентифікацію (як сервер, та можливо також як клієнт, який підключається до вашого навантаження) за допомогою механізмів, специфічних для вашого постачальника хмарних послуг.
9.2 - Порти та Протоколи
При запуску Kubernetes у середовищі зі строгими мережевими межами, такими як локальний дата-центр із фізичними мережевими фаєрволами або віртуальні мережі у публічній хмарі, корисно знати про порти та протоколи, які використовують компоненти Kubernetes.
Панель управління
Протокол
Напрямок
Діапазон портів
Призначення
Використовується
TCP
Вхідний
6443
Kubernetes API сервер
Усі
TCP
Вхідний
2379-2380
etcd server client API
kube-apiserver, etcd
TCP
Вхідний
10250
Kubelet API
Власний, Панель управління
TCP
Вхідний
10259
kube-scheduler
Власний
TCP
Вхідний
10257
kube-controller-manager
Власний
Хоча порти etcd включені до секції панелі управління, ви також можете розмістити свій власний кластер etcd зовнішньо або на користувацьких портах.
Усі типові номери портів можуть бути змінені. Коли використовуються власні порти, ці порти повинні бути відкриті замість вказаних тут типових.
Одним із поширених прикладів є порт API сервера, який іноді змінюється на 443. Альтернативно, типовий порт залишається без змін, а API сервер розміщується за балансувальником навантаження, який слухає на 443 та направляє запити до API сервера на типовий порт.
9.3 - Віртуальні IP та Проксі для Service
Кожен вузол у кластері Kubernetes запускає компонент kube-proxy
(якщо ви не розгорнули власний альтернативний компонент замість kube-proxy).
Компонент kube-proxy відповідає за реалізацію механізму віртуальних IP для Service типу відмінного від ExternalName. Кожен екземпляр kube-proxy відстежує додавання та видалення обʼєктів Service та EndpointSlice у панелі управління. Для кожного сервісу kube-proxy викликає відповідні API (залежно від режиму kube-proxy) для налаштування вузла для перехоплення трафіку на clusterIP та port сервісу, і перенаправляє цей трафік на одну з точок доступу Service (зазвичай це Pod, але можливо також будь-яка інша IP-адреса, надана користувачем). Цикл керування забезпечує, що правила на кожному вузлі надійно синхронізуються зі станом Service та EndpointSlice, вказаним API сервером.
Механізм віртуальних IP для Service, використовуючи режим iptables
Інколи виникає питання, чому Kubernetes покладається на проксіювання для пересилання вхідного трафіку до бекендів. Що щодо інших підходів? Наприклад, чи можливо налаштувати DNS-записи, які мають кілька A-значень (або AAAA для IPv6), і покладатися на розвʼязання імен по колу?
Є кілька причин для використання проксіювання для Service:
Існує довга історія реалізацій DNS, які не дотримуються TTL записів та кешують результати пошуку імен після закінчення терміну їх дії.
Деякі програми виконують пошук DNS лише один раз і кешують результати безстроково.
Навіть якщо програми та бібліотеки виконували правильне повторне розвʼязування, низькі або нульові TTL для DNS-записів можуть накладати високі навантаження на DNS, якими стає важко керувати.
Далі на цій сторінці ви можете прочитати про те, як працюють різні реалізації kube-proxy. В цілому, слід зазначити, що при запуску kube-proxy можуть бути змінені правила на рівні ядра (наприклад, можуть бути створені правила iptables), які не будуть очищені, в деяких випадках, до перезавантаження. Отже, запуск kube-proxy повинен здійснюватися тільки адміністратором, який розуміє наслідки наявності низькорівневого, привілейованого мережевого проксі-сервісу на компʼютері. Хоча виконуваний файл kube-proxy підтримує функцію cleanup, ця функція не є офіційною і тому доступна лише для використання "як є".
Деякі деталі у цьому довіднику стосуються прикладу: бекенд Pod для stateless навантаження з обробки образів, що працює з трьома репліками. Ці репліки замінні — фронтенди не турбує, який бекенд вони використовують. Хоча фактичні Podʼи, що складають бекенд-набір, можуть змінюватися, клієнти фронтенду не повинні бути обізнані про це і не повинні відстежувати набір бекендів самостійно.
Режими проксі
kube-proxy запускається в різних режимах, які визначаються його конфігурацією.
На Linux вузлах доступні режими для kube-proxy такі:
Режим, в якому kube-proxy налаштовує правила пересилання пакетів у ядрі Windows.
Режим проксі iptables
Цей режим проксі доступний лише на вузлах Linux.
У цьому режимі kube-proxy налаштовує правила пересилання пакетів за допомогою API iptables підсистеми netfilter ядра. Для кожної точки доступу він встановлює правила iptables, які типово випадково вибирають бекенд Pod.
Приклад
Як приклад, розглянемо програму обробки образів, описану раніше на сторінці. Коли створюється бекенд Service, панель управління Kubernetes призначає віртуальну IP-адресу, наприклад, 10.0.0.1. Для цього прикладу припустимо, що порт Service — 1234. Усі екземпляри kube-proxy у кластері спостерігають за створенням нового Service.
Коли kube-proxy на вузлі бачить новий Service, він встановлює серію правил iptables, які перенаправляють з віртуальної IP-адреси на додаткові правила iptables, визначені для кожного Service. Правила для кожного Service посилаються на інші правила для кожної точки доступу бекенду, а правила для кожної точки доступу перенаправляють трафік (використовуючи NAT призначення) до бекендів.
Коли клієнт підключається до віртуальної IP-адреси Service, вступає в дію правило iptables. Вибирається бекенд (або на основі спорідненості сесії, або випадково), і пакети перенаправляються до бекенду без переписування IP-адреси клієнта.
Цей самий основний потік виконується, коли трафік надходить через Service type: NodePort або через балансувальник навантаження, хоча в цих випадках IP-адреса клієнта змінюється.
Оптимізація продуктивності режиму iptables
У режимі iptables, kube-proxy створює кілька правил iptables для кожного Service та кілька правил iptables для кожної IP-адреси точки доступу. У кластерах з десятками тисяч Podʼів та Service це означає десятки тисяч правил iptables, і kube-proxy може потребувати багато часу на оновлення правил у ядрі, коли Service (або їх EndpointSlices) змінюються. Ви можете налаштувати поведінку синхронізації kube-proxy за допомогою параметрів у розділі iptables файлу конфігурації kube-proxy (який ви вказуєте через kube-proxy --config <path>):
...iptables:minSyncPeriod:1ssyncPeriod:30s
minSyncPeriod
Параметр minSyncPeriod встановлює мінімальний інтервал між спробами ресинхронізації правил iptables з ядром. Якщо він дорівнює 0s, то kube-proxy завжди негайно синхронізує правила при зміні будь-якого Service чи EndpointSlice. Це працює добре в дуже малих кластерах, але призводить до зайвої роботи, коли велика кількість змін відбувається за короткий період часу. Наприклад, якщо у вас є Service, який підтримується Deployment зі 100 Podʼів, і ви видаляєте Deployment, то з minSyncPeriod: 0s, kube-proxy буде по одному видаляти точки доступу Service з правил iptables, загалом 100 оновлень. З більшим значенням minSyncPeriod, події видалення багатьох Podʼів можуть агрегуватися разом, наприклад, kube-proxy може зробити 5 оновлень, кожне з яких видаляє по 20 точок доступу, що значно економить процесорний час і прискорює синхронізацію всіх змін.
Чим більше значення minSyncPeriod, тим більше роботи можна агрегувати, але недолік полягає в тому, що кожна окрема зміна може очікувати до повного minSyncPeriod, перш ніж буде оброблена, що означає, що правила iptables витрачають більше часу несинхронізованими з поточним станом API-сервера.
Стандартне значення 1s працює добре в більшості кластерів, але в дуже великих кластерах може бути необхідно встановити більше значення. Особливо, якщо метрика sync_proxy_rules_duration_seconds kube-proxy показує середній час значно більше 1 секунди, збільшення minSyncPeriod може зробити оновлення ефективнішими.
Оновлення конфігурації старого параметра minSyncPeriod
У попередніх версіях kube-proxy всі правила для всіх Service оновлювалися кожною синхронізацією, що призводило до проблем продуктивності (затримок оновлення) у великих кластерах, і рекомендоване рішення полягало в налаштуванні більшого значення minSyncPeriod. Починаючи з Kubernetes v1.28, режим iptables kube-proxy використовує більш мінімалістичний підхід, здійснюючи оновлення тільки там, де фактично змінилися Service або EndpointSlices.
Якщо ви раніше перевизначали параметр minSyncPeriod, вам слід спробувати видалити це перевизначення і дозволити kube-proxy використовувати стандартні значення (1s) або принаймні менше значення, ніж ви використовували до оновлення.
Якщо ви не запускаєте kube-proxy з Kubernetes 1.36, перевірте поведінку і повʼязані поради для версії, яку ви фактично використовуєте.
syncPeriod
Параметр syncPeriod контролює кілька операцій синхронізації, які не повʼязані безпосередньо зі змінами в окремих Service та EndpointSlices. Зокрема, він визначає, як швидко kube-proxy помічає, якщо зовнішній компонент втрутився в правила iptables kube-proxy. У великих кластерах kube-proxy також виконує певні операції очищення лише один раз протягом syncPeriod, щоб уникнути непотрібної роботи.
Зазвичай збільшення syncPeriod не має значного впливу на продуктивність, але раніше іноді було корисно встановлювати його дуже великим значенням (наприклад, 1h). Проте це більше не рекомендується і, ймовірно, таке налаштування спричинить більше проблем з функціональністю, ніж покращить продуктивність.
Режим проксі IPVS
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.35 [deprecated]
Цей режим проксі доступний лише на вузлах Linux.
У режимі ipvs kube-proxy використовує ядро IPVS та API iptables для створення правил для перенаправлення трафіку з IP-адрес Service на IP-адреси точок доступу.
Режим проксі IPVS базується на функції перехоплення netfilter, аналогічній режиму iptables, але використовує хеш-таблицю як основну структуру даних та працює в просторі ядра.
Примітка:
Режим проксі ipvs був експериментом з надання бекенду Linux kube-proxy з кращою продуктивністю синхронізації правил і вищою пропускною здатністю мережевого трафіку, ніж режим iptables. Хоча ці цілі були досягнуті, API IPVS ядра виявився невідповідним для API Services Kubernetes, і бекенд ipvs так і не зміг правильно реалізувати всі крайні випадки функціональності Service Kubernetes.
Режим проксі nftables (описаний нижче) є, по суті, заміною режимів iptables та ipvs, має кращу продуктивність, ніж будь-який з них, і рекомендується як заміна для ipvs. Якщо ви розгортаєте на системах Linux, які занадто старі для запуску режиму проксі nftables, вам також слід розглянути можливість використання режиму iptables замість ipvs, оскільки продуктивність режиму iptables значно покращилася з моменту першого впровадження режиму ipvs.
IPVS надає більше опцій для балансування трафіку до бекендів Pods:
rr (Round Robin): Трафік рівномірно розподіляється між серверами.
wrr (Weighted Round Robin): Трафік маршрутизується до серверів на основі їх ваг. Сервери з вищими вагами отримують нові зʼєднання і більше запитів, ніж сервери з меншими вагами.
lc (Least Connection): Більше трафіку призначається серверам з меншою кількістю активних зʼєднань.
wlc (Weighted Least Connection): Більше трафіку маршрутизується до серверів з меншою кількістю зʼєднань відносно їх ваг, тобто кількість зʼєднань, поділена на вагу.
lblc (Locality based Least Connection): Трафік для тієї ж самої IP-адреси надсилається на той же сервер, якщо він не перевантажений і доступний; в іншому випадку трафік надсилається на сервери з меншою кількістю зʼєднань з можливістю збереження для майбутнього призначення.
lblcr (Locality Based Least Connection with Replication): Трафік для тієї ж самої IP-адреси надсилається на сервер з найменшою кількістю зʼєднань. Якщо всі сервери перевантажені, вибирається один із меншою кількістю зʼєднань і додається до множини цільових серверів. Якщо множина цільових серверів не змінюється протягом визначеного часу, то найбільш навантажений сервер вилучається з множини, щоб уникнути високого рівня реплікації.
sh (Source Hashing): Трафік відправляється на сервер за допомогою статично призначеної хеш-таблиці на основі джерела IP-адрес.
dh (Destination Hashing): Трафік відправляється на сервер за допомогою статично призначеної хеш-таблиці на основі цільових адрес.
sed (Shortest Expected Delay): Трафік пересилається на сервер з найменшим очікуваним затримкою. Очікувана затримка обчислюється як (C + 1) / U, де C — кількість зʼєднань на сервері, а U — фіксована сервісна швидкість (вага) сервера.
nq (Never Queue): Трафік відправляється на сервер, що простоює, якщо є такий, замість очікування швидкішого; якщо всі сервери зайняті, алгоритм переходить до поведінки sed.
mh (Maglev Hashing): Призначає вхідні завдання на основі алгоритму хешування Maglev від Google. Цей планувальник має два прапорці: mh-fallback, який дозволяє перейти на інший сервер, якщо вибраний сервер недоступний, і mh-port, який додає номер порту джерела до обчислення хешу. Використовуючи mh, kube-proxy завжди встановлює прапорець mh-port і не вмикає прапорець mh-fallback. У режимі proxy-mode=ipvs mh працюватиме як source-hashing (sh), але з портами.
Ці алгоритми планування налаштовуються в полі
ipvs.scheduler у конфігурації kube-proxy.
Примітка:
Для запуску kube-proxy в режимі IPVS необхідно зробити IPVS доступним на вузлі перед запуском kube-proxy.
При запуску kube-proxy в режимі IPVS, він перевіряє наявність модулів IPVS ядра. Якщо модулі IPVS ядра не виявлені, то kube-proxy виходить із помилкою.
Механізм віртуальної IP-адреси для Services, використовуючи режим IPVS
Режим проксі nftables
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.33 [stable](стандартно увімкнено)
Цей режим проксі доступний лише на вузлах Linux, він потребує ядра версії 5.13 чи новіщої.
У цьому режимі kube-proxy налаштовує правила пересилання пакетів за допомогою API nftables ядра підсистеми netfilter. Для кожної точки доступу встановлюються правила nftables, які стандартно вибирають бекенд Pod випадковим чином.
API nftables є наступником API iptables і призначений для забезпечення кращої продуктивності та масштабованості порівняно з iptables. Режим проксі nftables може обробляти зміни в точках доступу сервісу швидше та ефективніше, ніж режим iptables, і також може ефективніше обробляти пакети в ядрі (хоча це стає помітним лише в кластерах з десятками тисяч сервісів).
В Kubernetes 1.36, режим nftables все ще відносно новий і може бути несумісний з усіма мережевими втулками; ознайомтесь з документацією до вашого мережевого втулка.
Міграція з iptables на nftables
Користувачі, які хочуть перейти зі стандартного режиму iptables на режим nftables, повинні знати, що деякі функції в режимі nftables працюють трохи інакше:
Інтерфейси NodePort: У режимі iptables, стандартно, сервіси NodePort доступні на всіх локальних IP-адресах. Це зазвичай не те, чого хочуть користувачі, тому режим nftables стандартно використовує параметр --nodeport-addresses primary, що означає, що Cервіси type: NodePort доступні лише на основних IPv4 та/або IPv6 адресах вузла. Ви можете змінити це, вказавши явне значення для цієї опції: наприклад, --nodeport-addresses 0.0.0.0/0, щоб слухати на всіх (локальних) IP-адресах IPv4.
Сервіси type: NodePort на 127.0.0.1: У режимі iptables, якщо діапазон --nodeport-addresses включає 127.0.0.1 (і не передано опцію --iptables-localhost-nodeports false), тоді Сервіси type: NodePort будуть доступні навіть на "localhost" (127.0.0.1). У режимі nftables (та режимі ipvs) це не працюватиме. Якщо ви не впевнені, чи залежите від цієї функціональності, ви можете перевірити метрику kube-proxy iptables_localhost_nodeports_accepted_packets_total; якщо вона не дорівнює 0, це означає, що якийсь клієнт підключився до Сервісу type: NodePort через localhost.
Взаємодія NodePort з брандмауерами: Режим iptables kube-proxy намагається бути сумісним із занадто агресивними брандмауерами; для кожного сервісу type: NodePort він додаватиме правила для прийому вхідного трафіку на цьому порту, на випадок, якщо цей трафік буде заблокований брандмауером. Цей підхід не працює з брандмауерами на основі nftables, тому режим nftables kube-proxy не робить нічого в цьому напрямку; якщо у вас є локальний брандмауер, ви повинні переконатися, що він належним чином налаштований для пропуску трафіку Kubernetes (наприклад, дозволивши вхідний трафік на весь діапазон NodePort).
Обхід помилок Conntrack: Ядра Linux версій до 6.1 мають помилку, яка може призвести до закриття довготривалих TCP-зʼєднань до IP-адрес сервісів з помилкою "Connection reset by peer". Режим iptables kube-proxy встановлює обхід для цієї помилки, але пізніше було виявлено, що цей обхід викликає інші проблеми в деяких кластерах. Режим nftables стандартно не встановлює жодного обходу, але ви можете перевірити метрику kube-proxy iptables_ct_state_invalid_dropped_packets_total, щоб зʼясувати, чи залежить ваш кластер від цього обходу, і якщо це так, ви можете запустити kube-proxy з опцією --conntrack-tcp-be-liberal, щоб оминути цю проблему в режимі nftables.
Режим проксі kernelspace
Цей режим проксі доступний лише на вузлах Windows.
kube-proxy налаштовує правила фільтрації пакетів у Windows у віртуальній платформі фільтрації (Virtual Filtering Platform, VFP), яка є розширенням віртуального комутатора Windows (vSwitch). Ці правила обробляють інкапсульовані пакети в межах віртуальних мереж на рівні вузлів і переписують пакети таким чином, щоб IP-адреса призначення (і інформація на рівні 2) була правильною для маршрутизації пакета до вірного призначення. Windows VFP аналогічний інструментам, таким як Linux nftables або iptables. Він розширює Hyper-V Switch, який спочатку був реалізований для підтримки мережевого звʼязку віртуальних машин.
Коли Pod на вузлі надсилає трафік на віртуальну IP-адресу, а kube-proxy вибирає Pod на іншому вузлі як ціль для балансування навантаження, режим проксі kernelspace переписує цей пакет так, щоб він був призначений для цільового бекенд Pod. Служба мережевого хоста Windows (HNS) забезпечує конфігурацію правил переписування пакетів таким чином, щоб зворотній трафік виглядав так, ніби він прийшов від віртуальної IP-адреси, а не конкретного бекенду Pod.
Прямий вивід сервера для режиму kernelspace
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.34 [stable](стандартно увімкнено)
Як альтернативу базовому способу роботи, вузол, на якому розміщено бекенд Pod для Service, може застосовувати пряме переписування пакетів безпосередньо, а не покладати це завдання на вузол, на якому працює клієнтський Pod. Це називається прямим виводом сервера.
Для використання цієї можливості вам необхідно запускати kube-proxy з аргументом командного рядка --enable-dsrі включити функціональних можливостейWinDSR.
Прямий вивід сервера також оптимізує випадок зворотного трафіку для Pod, навіть коли обидва Pod працюють на одному вузлі.
Сесійна спорідненість
У цих моделях проксі, трафік, що направляється на IP:Port Service, передається до відповідного бекенду без того, щоб клієнти щось знали про Kubernetes, Service або Podʼи.
Якщо ви хочете забезпечити, щоб зʼєднання від певного клієнта завжди передавалися до одного й того ж Podʼа, ви можете вибрати сесійну спорідненість на основі IP-адрес клієнта, встановивши .spec.sessionAffinity в ClientIP для Service (типово None).
Тайм-аут збереження сесії
Ви також можете встановити максимальний час збереження сесії, встановивши .spec.sessionAffinityConfig.clientIP.timeoutSeconds відповідно для Service.
(стандартне значення 10800, що відповідає 3 годинам).
Примітка:
У Windows підтримка встановлення максимального часу збереження сесії для Service не підтримується.
Призначення IP-адрес Service
На відміну від IP-адрес Podʼів, які фактично маршрутизуються до фіксованого призначення, IP-адреси Service насправді не відповідають одному окремому хосту. Замість цього, kube-proxy використовує логіку обробки пакетів (наприклад, Linux iptables), щоб визначити віртуальні IP-адреси, які потрібно перенаправляти за потреби.
Коли клієнти підключаються до VIP, їхній трафік автоматично транспортується до відповідної точки доступу. Змінні середовища та DNS для Service насправді заповнюються відносно віртуальної IP-адреси Service (і порту).
Уникнення конфліктів
Одна з основних філософій Kubernetes полягає в тому, що ви не повинні потрапляти в ситуації, які можуть призвести до провалу ваших дій не з вашої вини. Для дизайну ресурсу Service це означає, що вам не потрібно вибирати свою власну IP-адресу, якщо цей вибір може конфліктувати з вибором іншої особи. Це може призвести до порушення ізоляції.
Щоб дозволити вам вибирати IP-адреси для ваших Service, ми повинні забезпечити, що жодні два Service не зможуть конфліктувати. Kubernetes досягає цього, призначаючи кожному Service його власну IP-адресу з діапазону service-cluster-ip-range, який налаштований для API Server.
Відстеження призначення IP-адрес
Для того щоб гарантувати, що кожен Service отримує унікальну IP-адресу, внутрішній розподілювач атомарно оновлює глобальний map призначення в etcd перед створенням кожного Service. Обʼєкт map повинен існувати в реєстрі для того, щоб Service отримували призначення IP-адрес, інакше створення завершиться невдачею з повідомленням про неможливість призначити IP-адресу.
В панелі управління фоновий контролер відповідає за створення цього map (необхідно для підтримки міграції зі старих версій Kubernetes, які використовували блокування в памʼяті). Kubernetes також використовує контролери для перевірки недійсних призначень (наприклад, через втручання адміністратора) та для очищення призначених IP-адрес, які більше не використовуються жодними Services.
Відстеження призначення IP-адрес за допомогою Kubernetes API
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.33 [stable](стандартно увімкнено)
Панель управління заміняє наявний розподілювач etcd переглянутою реалізацією, яка використовує обʼєкти IPAddress та ServiceCIDR замість внутрішнього глобального map призначення. Кожен IP-адрес кластера, повʼязаний з Service, посилається на обʼєкт IPAddress.
Увімкнення функціональних можливостей також замінює фоновий контролер альтернативою, яка обробляє обʼєкти IPAddress та підтримує міграцію зі старої моделі розподілювача. Kubernetes 1.36 не підтримує міграцію з обʼєктів IPAddress до внутрішнього map призначення.
Однією з основних переваг переглянутого розподілювача є видалення обмежень розміру для діапазону IP-адрес, який може бути використаний для IP-адрес кластера Service. З увімкненою MultiCIDRServiceAllocator, для IPv4 відсутні обмеження, а для IPv6 ви можете використовувати маски підмереж, що є /64 або менше (на відміну від /108 зі старої реалізації).
Доступ до призначень IP-адрес через API означає, що ви, як адміністратор кластера, можете дозволяти користувачам переглядати призначені їх Service IP-адреси. Розширення Kubernetes, такі як Gateway API, можуть використовувати IPAddress API для розширення вбудованих мережевих можливостей Kubernetes.
Нижче наведений короткий приклад того, як користувач може запитувати IP-адреси:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 2001:db8:1:2::1 <none> 443/TCP 3d1h
kubectl get ipaddresses
NAME PARENTREF
2001:db8:1:2::1 services/default/kubernetes
2001:db8:1:2::a services/kube-system/kube-dns
Kubernetes також дозволяє користувачам динамічно визначати доступні діапазони IP для Service за допомогою обʼєктів ServiceCIDR. Під час початкового налаштування, обʼєкт ServiceCIDR зі стандартним іменем kubernetes створюється зі значенням аргументу командного рядка --service-cluster-ip-range для kube-apiserver:
kubectl get servicecidrs
NAME CIDRS AGE
kubernetes 10.96.0.0/28 17m
Користувачі можуть створювати або видаляти нові обʼєкти ServiceCIDR для управління доступними діапазонами IP для Service:
NAME CIDRS AGE
kubernetes 10.96.0.0/28 17m
newservicecidr 10.96.0.0/24 7m
Дистрибутиви або адміністратори кластерів Kubernetes можуть захотіти контролювати, щоб нові Service CIDR, додані до кластера, не перетиналися з іншими мережами в кластері, які належать лише певному діапазону IP-адрес, або просто зберегти існуючу поведінку, коли в кластері є лише один ServiceCIDR. Прикладом політики допуску з перевіркою для досягнення цієї мети є
Діапазони IP-адрес для віртуальних IP-адрес Service
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.26 [stable]
Kubernetes розділяє діапазон ClusterIP на дві групи, в залежності від розміру налаштованого service-cluster-ip-range, використовуючи таку формулу: min(max(16, cidrSize / 16), 256). Ця формула означає ніколи менше 16 або більше 256, з поступовим збільшенням між ними.
Kubernetes віддає перевагу виділенню динамічних IP-адрес для Service, вибираючи з верхньої групи. Це означає, що якщо ви хочете призначити конкретну IP-адресу для Service з типом ClusterIP, ви повинні вручну призначити IP-адресу з нижньої групи. Цей підхід зменшує ризик конфлікту при виділенні IP-адрес.
Політики трафіку
Ви можете встановити поля .spec.internalTrafficPolicy і .spec.externalTrafficPolicy, щоб контролювати, як Kubernetes маршрутизує трафік до справних ("готових") бекендів.
Політика втурішнього трафіку
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.26 [stable]
Ви можете встановити поле .spec.internalTrafficPolicy, щоб контролювати маршрутизацію трафіку від внутрішніх джерел. Допустимі значення: Cluster і Local. Встановіть поле в Cluster, щоб маршрутизувати внутрішній трафік до всіх готових точок доступу і в Local, щоб маршрутизувати тільки до готових точок доступу, що знаходяться на вузлі. Якщо політика трафіку встановлена в Local, а на вузлі відсутні локальні точки доступу, kube-proxy відкидає трафік.
Політика зовнішнього трафіку
Ви можете налаштувати поле .spec.externalTrafficPolicy для контролю напрямку трафіку зовнішніх джерел. Допустимі значення: Cluster і Local. Встановіть поле на значення Cluster, щоб направляти зовнішній трафік до всіх готових точок доступу, і Local, щоб направляти тільки до готових локальних точок доступу на вузлі. Якщо політика трафіку встановлена на Local і відсутні локальні точки доступу, kube-proxy не передає жодного трафіку для відповідного Service.
Якщо вибрано Cluster, всі вузли є потенційними цілями балансування навантаження, поки вузол не видаляється і kube-proxy працює коректно. У цьому режимі: перевірки стану балансувальника навантаження налаштовані на доступність порту та шляху готовності проксі сервісу. Для kube-proxy це оцінюється як: ${NODE_IP}:10256/healthz. kube-proxy повертає HTTP-код 200 або 503. Точка доступу перевірки стану балансувальника навантаження kube-proxy повертає 200 у випадку:
kube-proxy працює коректно, що означає: він може продовжувати програмувати мережу і не вибивається з графіку під час роботи (таймаут визначається як: 2 × iptables.syncPeriod); і
вузол не видаляється (не встановлено мітки видалення для вузла).
kube-proxy повертає 503 і позначає вузол як непридатний при видаленні, оскільки він підтримує видалення зʼєднань для вузлів, що завершують роботу. Кілька важливих речей відбуваються з точки зору керованого Kubernetes балансувальника навантаження, коли вузол видаляється / видалено.
Під час видалення:
kube-proxy почне не проходити свою перевірку готовності і фактично позначає вузол як непридатний для трафіку балансувальника навантаження. Невдача перевірки стану балансувальника навантаження призводить до того, що балансувальники навантаження, які підтримують очищення зʼєднань, дозволяють завершити існуючі зʼєднання та блокують створення нових зʼєднань.
Після видалення:
Контролер сервісу в менеджері хмарних контролерів Kubernetes видаляє вузол зі згаданого набору потенційних цілей. Видалення будь-якого екземпляра зі списку бекендів балансувальника навантаження миттєво припиняє всі зʼєднання. Це також причина того, що kube-proxy спочатку не проходить перевірку стану, коли вузол видаляється.
Для вендорів Kubernetes важливо враховувати, що якщо будь-який вендор налаштовує перевірку готовності kube-proxy як перевірку життєздатності, kube-proxy почне постійно перезапускатися при видаленні вузла до його повного видалення. kube-proxy використовує шлях /livez, який, на відміну від /healthz, не враховує стан видалення вузла, але лише прогрес програмування мережі. /livez є рекомендованим шляхом для визначення перевірки життєздатності kube-proxy.
Користувачі, які використовують kube-proxy, можуть перевірити стан готовності/життєздатності, оцінюючи метрики: proxy_livez_total/proxy_healthz_total. Обидві метрики публікують дві серії: одна з міткою 200 і одна з міткою 503.
Для Local Services: kube-proxy повертає 200, якщо
kube-proxy працює коректно/готовий, і
є локальна точка доступу на вузлі, який розглядається.
Видалення вузла не впливає на код відповіді kube-proxy щодо перевірки стану балансувальника навантаження. Причина полягає в тому, що видалення вузлів може призвести до відключення входу в мережу, якщо всі точки доступу одночасно працюють на таких вузлах.
Проєкт Kubernetes рекомендує, щоб код інтеграції провайдера хмари налаштовував перевірки стану балансувальника навантаження, які націлені на порт healthz сервісного проксі. Якщо ви використовуєте або реалізовуєте власну віртуальну реалізацію IP, яку люди можуть використовувати замість kube-proxy, вам слід налаштувати аналогічний порт перевірки стану з логікою, яка відповідає реалізації kube-proxy.
Трафік до термінальних точок доступу доступу
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.28 [stable]
Якщо в kube-proxy включений функціоналуProxyTerminatingEndpoints і політика трафіку встановлена на Local, kube-proxy на даному вузлі використовує більш складний алгоритм для вибору точок доступу доступу Service. З цим включеним функціоналом, kube-proxy перевіряє наявність локальних точок доступу доступу і те, чи всі локальні кінцеві точки позначені як термінальні. Якщо всі локальні кінцеві точки позначені як термінальні, тоді kube-proxy направлятиме трафік на ці термінальні кінцеві точки. В іншому випадку kube-proxy завжди віддає перевагу направленню трафіку на кінцеві точки, які не є термінальними.
Це поведінка направлення для терміналних точок доступу доступу існує для того, щоб NodePort і LoadBalancer сервіси могли відповідно завершувати зʼєднання при використанні externalTrafficPolicy: Local.
Під час виконання постійного (rolling) оновлення, вузли, які підтримують балансувальник навантаження, можуть переходити від N до 0 реплік цього розгортання. У деяких випадках зовнішні балансувальники навантаження можуть надсилати трафік на вузол з 0 репліками між перевірками готовності. Направлення трафіку на термінальні точки доступу забезпечує, що вузли, які зменшують кількість точок доступу, можуть відповідним чином приймати та відводити трафік на ці термінальні точки доступу. До моменту завершення видалення точки доступу, зовнішній балансувальник навантаження має побачити, що перевірка готовності вузла не вдалася і повністю видалить вузол зі списку бекендів.
Керування розподілом трафіку
Поле spec.trafficDistribution в Kubernetes Service дозволяє виразити уподобання щодо того, як треба маршрутизувати трафік до точок доступу Service.
PreferSameZone
Це надає пріоритет надсиланню трафіку до точок доступу у тій самій зоні, що й клієнт. Контролер EndpointSlice оновлює EndpointSlice за допомогою. hints, щоб повідомити про ці переваги, які kube-proxy потім використовує для прийняття рішень щодо маршрутизації. Якщо в зоні клієнта немає доступних точок доступу, трафік для нього буде маршрутизовано по всьому кластеру.
PreferSameNode
Цей параметр визначає пріоритет надсилання трафіку до точок доступу на тому ж вузлі, що і клієнт. Як і у випадку PreferSameZone, контролер EndpointSlice оновлює EndpointSlices з hints, які вказують, що зріз слід використовувати для певного вузла. Якщо на клієнтському вузлі немає доступних точок доступу, то сервісний проксі повернеться до поведінки «та сама зона», або до поведінки кластера, якщо також немає точок доступу, що належать до тієї самої зони.
PreferClose (застаріле)
Це старіший псевдонім для PreferSameZone, який є менш зрозумілим з точки зору семантики.
За відсутності будь-якого значення для trafficDistribution, стандартна стратегія полягає у рівномірному розподілі трафіку між усіма точками доступу в кластері.
Порівняння з service.kubernetes.io/topology-mode: Auto
Поле trafficDistribution зі значенням PreferSameZone старіша функція (маршрутизації в залежності від топології) використовує анотацію service.kubernetes.io/topology-mode: Auto, обидва спрямовані на пріоритет маршрутизації трафіку в межах однієї зони. Однак, є ключові відмінності у їхніх підходах:
service.kubernetes.io/topology-mode: Auto спробує розподілити трафік пропорціонально між зонами на основі ресурсів CPU, які можна виділити. Цей евристичний метод включає захисні заходи (такі як поведінка відкату для малих кількостей точок доступу), жертвуючи деякою передбачуваністю на користь потенційної можливості балансування навантаження.
trafficDistribution: PreferSameZone цей підхід спрямований бути простішим та більш передбачуваним: "Якщо є точки доступу в зоні, вони отримають весь трафік для цієї зони; якщо точок доступу у зоні немає, трафік буде розподілено на інші зони". Цей підхід пропонує більшу передбачуваність, однау це означає, що вам потрібно керувати можливим перевантаженням для уникнення перенавантаження точок доступу.
Якщо встановлено анотацію service.kubernetes.io/topology-mode зі значенням Auto, вона матиме пріоритет перед полем trafficDistribution. У майбутньому анотація може бути застарілою на користь поля trafficDistribution.
Взаємодія з політиками трафіку
Порівняно з полем trafficDistribution, поля політики трафіку (externalTrafficPolicy і internalTrafficPolicy) призначені для обовʼязкового дотримання локальних вимог до трафіку. Ось як поле trafficDistribution взаємодіє з ними:
Пріоритет політик трафіку: Для заданого Service, якщо політика трафіку (externalTrafficPolicy або internalTrafficPolicy) встановлена на Local, вона має пріоритет перед trafficDistribution для відповідного типу трафіку (зовнішнього або внутрішнього відповідно).
Вплив trafficDistribution: Для заданого Service, якщо політика трафіку (externalTrafficPolicy або internalTrafficPolicy) встановлена на Cluster (стандартне значення), або якщо поля не встановлені, тоді trafficDistribution керує поведінкою маршрутизації для відповідного типу трафіку (зовнішнього або внутрішнього відповідно). Це означає, що буде здійснена спроба направити трафік на точку доступу, яка знаходиться в тій же зоні, що й клієнт.
Міркування щодо використання управління розподілом трафіку
Service, що використовує trafficDistribution, намагатиметься спрямовувати трафік до (справних) точок доступу у відповідній топології, навіть якщо це означає, що деякі точки доступу отримують набагато більше трафіку, ніж інші. Якщо у вас немає достатньої кількості точок доступу у тій самій топології («та сама зона», «той самий вузол» тощо), що й клієнти, то точки доступу можуть бути перенавантажені. Це особливо ймовірно, якщо вхідний трафік не є пропорційно розподіленим по топології. Для помʼякшення цієї проблеми розглянемо наступні стратегії:
Обмеження розподілу топології Pod: Використовуйте обмеження розподілу топології Pod для рівномірнішого розподілу ваших Podʼів по зонам чи вузлам.
Розгортання з врахуванням зон: Якщо використовуєте розподіл трафіку "в тій самій зоні", але очікуєте різних патернів трафіку в різних зонах, ви можете створити окремий Deployment для кожної зони. Цей підхід дозволяє окремим робочим навантаженням масштабуватися незалежно. Також в екосистемі, поза проєктом Kubernetes, доступні надбудови для управління робочими навантаженнями, які можуть допомогти у цьому.
Kubeadm — це інструмент, створений для надання команд kubeadm init та kubeadm join як найкращих "швидких практичних способів" для створення кластерів Kubernetes.
kubeadm виконує необхідні дії для запуску мінімального життєздатного кластера. За своєю концепцією, він займається лише процесом розгортання кластера, створення екземплярів машин не є його функцією. Встановлення різноманітних додаткових компонентів, таких як Kubernetes Dashboard, засобів моніторингу та специфічних для хмарних середовищ надбудов, також не входить в перелік його завдань.
Натомість ми очікуємо, що на базі kubeadm будуть створені більш досконалі та індивідуалізовані інструменти, і, в ідеалі, використання kubeadm як основи для всіх розгортань спростить створення сумісних кластерів.
┌──────────────────────────────────────────────────────────┐
│ KUBEADM │
│ Easily bootstrap a secure Kubernetes cluster │
│ │
│ Please give us feedback at: │
│ https://github.com/kubernetes/kubeadm/issues │
└──────────────────────────────────────────────────────────┘
Приклад використання:
Створіть кластер з двох машин з одним вузлом панелі управління
(який керує кластером) та одним робочим вузлом
(де працюють ваші робочі навантаження, такі як Podʼи та Deployments).
┌──────────────────────────────────────────────────────────┐
│ На першій машині: │
├──────────────────────────────────────────────────────────┤
│ control-plane# kubeadm init │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ На другій машині: │
├──────────────────────────────────────────────────────────┤
│ worker# kubeadm join <arguments-returned-from-init> │
└──────────────────────────────────────────────────────────┘
Повторіть другий крок на стількох інших машинах, скільки потрібно.
-h, --help
Довідка kubeadm
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2 -
Опис
Команди, повʼязані з обробкою сертифікатів Kubernetes
kubeadm certs [command]
Параметри
-h, --help
довідка certs
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.1 -
Генерує ключів сертифікатів
Опис
Ця команда виведе захищений випадково згенерований ключ сертифіката, який можна використовувати з командою "init".
Ви також можете скористатися командою "kubeadm init --upload-certs" без зазначення ключа сертифіката, і вона згенерує і виведе його для вас.
kubeadm certs certificate-key [flags]
Параметри
-h, --help
Довідка certificate-key
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.2 -
Перевіряє термін дії сертифікатів для кластера Kubernetes
Опис
Перевіряє термін дії сертифікатів у локальному PKI, яким керує kubeadm.
kubeadm certs check-expiration [flags]
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли поле або ключ map відсутні в шаблоні. Застосовується тільки до форматів виведення golang і jsonpath.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
-o, --output string Типово: "text"
Формат виводу. Один з: text|json|yaml|kyaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.
--show-managed-fields
Якщо true, залишати managedFields при виведенні обʼєктів у форматі JSON або YAML.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.3 -
Генерує ключі та запити на підписання сертифікатів
Опис
Генерує ключі та запити на підписування сертифікатів (CSRs) для всіх сертифікатів, необхідних для роботи панелі управління. Ця команда також генерує часткові файли kubeconfig з даними приватного ключа в полі "users > user > client-key-data", і для кожного файлу kubeconfig створюється супутній файл ".csr".
Ця команда призначена для використання в Режимі Kubeadm з зовнішнім CA Kubeadm. Вона генерує CSRs, які ви можете подати на підписання до вашого зовнішнього центру сертифікації.
Закодовані в PEM підписані сертифікати повинні бути збережені поруч з файлами ключів, використовуючи ".crt" як розширення файлу, або, у випадку з файлами kubeconfig, закодований в PEM підписаний сертифікат повинен бути закодований у base64 і доданий до файлу kubeconfig в полі "users > user > client-certificate-data".
kubeadm certs generate-csr [flags]
Приклади
# Наступна команда згенерує ключі та CSRs для всіх сертифікатів панелі управління та файлів kubeconfig:kubeadm certs generate-csr --kubeconfig-dir /tmp/etc-k8s --cert-dir /tmp/etc-k8s/pki
Параметри
--cert-dir string
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
-h, --help
Довідка generate-csr
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.4 -
Опис
Поновлення сертифікатів для кластера Kubernetes
kubeadm certs renew [flags]
Параметри
-h, --help
довідка renew
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.5 -
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для використання адміністратором і для самого kubeadm.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на поточних файлах/сертифікатах, нема потреби їх поновлювати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.6 -
Поновлення всіх доступних сертифікатів
Опис
Поновлення усі відомих сертифікатів, необхідних для запуску панелі управління. Поновлення виконується безумовно, незалежно від дати закінчення терміну дії. Поновлення також можна виконувати окремо для більшого контролю.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.7 -
Опис
Поновлює сертифікат, який apiserver використовує для доступу до etcd.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх поновлювати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.8 -
Опис
Поновлює сертифікат для сервера API для підключення до kubelet.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.9 -
Синопсис
Поновлює сертифікат для обслуговування API Kubernetes.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.10 -
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для використання менеджером контролера.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.11 -
Опис
Поновлює сертифікат для проб життєздатності для перевірки стану справності etcd.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.12 -
Опис
Поновлює сертифікат для вузлів etcd, щоб вони могли взаємодіяти один з одним.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.13 -
Опис
Поновлює сертифікат для обслуговування etcd.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.14 -
Опис
Поновлення сертифіката клієнта front proxy.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.15 -
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для використання менеджером планувальника.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.2.16 -
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для суперкористувача.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.3 -
Опис
Виводить код завершення команд для вказаного командного інтерпретатора (bash або zsh). Код оболонки має бути використаний, щоб забезпечити інтерактивне завершення команд kubeadm. Це можна зробити, отримавши його з .bash_profile.
Примітка: Ця команда вимагає наявності пакету bash-completion.
Для встановлення на macOS використовуйте brew:
brew install bash-completion
Після встановлення bash-completion, вам потрібно додати наступний код у ваш файл .bash_profile:
source$(brew --prefix)/etc/bash_completion
Якщо bash-completion не встановлено у Linux, встановіть його за допомогою пакетного менеджера вашої системи.
Примітка для користувачів zsh: [1] zsh completion підтримується тількіи для версій zsh >= 5.2.
kubeadm completion SHELL [flags]
Приклади
# Встановлення bash completion на Mac за допомогою homebrewbrew install bash-completion
printf"\n# Bash completion support\nsource $(brew --prefix)/etc/bash_completion\n" >> $HOME/.bash_profile
source$HOME/.bash_profile
# Завантаження коду completion kubeadm для bash у поточну оболонкуsource <(kubeadm completion bash)# Запишіть код завершення bash у файл і викличте його з .bash_profilekubeadm completion bash > ~/.kube/kubeadm_completion.bash.inc
printf"\n# Kubeadm shell completion\nsource '$HOME/.kube/kubeadm_completion.bash.inc'\n" >> $HOME/.bash_profile
source$HOME/.bash_profile
# Завантажте код завершення kubeadm для zsh[1] у поточну оболонкуsource <(kubeadm completion zsh)
Параметри
-h, --help
Довідка completion
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4 -
Керування конфігурацією для кластера kubeadm, збереженою у ConfigMap у кластері
Опис
У просторі імен kube-system є ConfigMap з назвою "kubeadm-config", яку kubeadm використовує для зберігання внутрішньої конфігурації кластера. kubeadm CLI v1.8.0+ автоматично створює ConfigMap з конфігурацією, що використовується командою 'kubeadm init', але якщо ви ініціалізували кластер за допомогою kubeadm v1.7.x або нижчої версії, вам слід скористатися командою 'kubeadm init phase upload-config', щоб створити ConfigMap. Це необхідно для того, щоб команда 'kubeadm upgrade' могла правильно налаштувати ваш оновлений кластер.
Файл kubeconfig, який буде використовуватися при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати існуючий файл kubeconfig у стандартних місцях.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.1 -
Опис
Взаємодія з зображеннями контейнерів, які використовує kubeadm
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.2 -
Опис
Виводить список образів, які буде використовувати kubeadm. Файл конфігурації використовується у випадку налаштування будь-яких образів або сховищ образів.
kubeadm config images list [flags]
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли у шаблоні відсутнє поле або ключ мапи. Застосовується тільки до форматів виводу golang і jsonpath.
--config string
Шлях до файлу конфігурації kubeadm.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.3 -
Опис
Витягує образи які використовує kubeadm з реєстру
kubeadm config images pull [flags]
Параметри
--config string
Шлях до файлу конфігурації kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--feature-gates string
Набір пар ключ=значення, що описують ворота функцій для різних можливостей. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.4 -
Зчитує стару версію типів конфігураційного API kubeadm з файлу і виводе аналогічний обʼєкт конфігурації для нової версії
Опис
Ця команда дозволяє конвертувати обʼєкти конфігурації старих версій у найновішу підтримувану версію, локально у CLI інструменті, без жодних змін у кластері. У цій версії kubeadm підтримуються наступні версії API:
kubeadm.k8s.io/v1beta4
Крім того, kubeadm може записувати конфігурацію лише версії "kubeadm.k8s.io/v1beta4", але читати обидві версії. Отже, незалежно від того, яку версію ви передаєте параметру --old-config, API обʼєкт буде прочитано, десеріалізовано, встановлено стандартні значення, конвертовано, валідовано та повторно серіалізовано під час запису у stdout або --new-config, якщо вказано.
Іншими словами, вихід цієї команди є тим, що kubeadm фактично читав би внутрішньо, якщо ви надіслали б цей файл команді "kubeadm init".
kubeadm config migrate [flags]
Параметри
--allow-experimental-api
Дозволити міграцію на експериментальні, невипущені API
-h, --help
довідка migrate
--new-config string
Шлях до отриманого еквівалентного конфігураційного файлу kubeadm з використанням нової версії API. Необовʼязково, якщо не вказано, вивід буде надіслано у STDOUT.
--old-config string
Шлях до конфігураційного файлу kubeadm, який використовує стару версію API і який має бути конвертований. Цей прапорець є обовʼязковим.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.6 -
Вивід стандартної конфігурації ініціалізації, яка може використовуватись у kubeadm init.
Опис
Ця команда виводить обʼєкти, такі як стандартну конфігурацію ініціалізації, які можуть бути використані у kubeadm init.
Зверніть увагу, що конфіденційні значення, такі як поля Bootstrap Token, замінюються значеннями-заповнювачами, такими як abcdef.0123456789abcdef", щоб пройти перевірку, але не виконувати реальні дії для створення токена.
kubeadm config print init-defaults [flags]
Параметри
--component-configs strings
Список обʼєктів API конфігурації компонентів через кому для виводу типових значень. Доступні значення: [KubeProxyConfiguration KubeletConfiguration]. Якщо цей прапорець не встановлено, конфігурації компонентів не буде надруковано.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.7 -
Вивід стандартної конфігурації для команди kubeadm join.
Опис
Ця команда виводить обʼєкти, такі як стандартна конфігурація команди join, яка використовується для 'kubeadm join'.
Зверніть увагу, що конфіденційні значення, такі як поля Bootstrap Token, замінюються значеннями-заповнювачами, такими як abcdef.0123456789abcdef", щоб пройти перевірку, але не виконувати реальні дії для створення токена.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.8 -
Виводить стандартну конфігурацію для команди kubeadm reset.
Опис
Ця команда виводить обʼєкти, такі як стандартна конфігурація команди reset, яка використовується для 'kubeadm reset'.
Зауважте, що конфіденційні значення, такі як поля Bootstrap Token, замінюються значеннями-заповнювачами, такими як "abcdef.0123456789abcdef", щоб пройти перевірку, але не виконувати реальні дії для створення токена.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.9 -
Виводить стандартну конфігурацію для оновлення, яка може бути використана для 'kubeadm upgrade'
Опис
Ця команда виводить обʼєкти, такі як стандартна конфігурація команди upgrade, яка використовується для 'kubeadm upgrade'.
Зверніть увагу, що конфіденційні значення, такі як поля Bootstrap Token, замінюються значеннями-заповнювачами, такими як abcdef.0123456789abcdef", щоб пройти перевірку, але не виконувати реальні дії для створення токена.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.4.10 -
Зчитує файл, що містить конфігураційний API kubeadm, і повідомляє про будь-які проблеми під час валідації
Опис
Ця команда дозволяє перевірити файл конфігурації API kubeadm та повідомити про будь-які попередження та помилки. Якщо помилок немає, статус виводу буде нульовим, в іншому випадку він буде ненульовим. Будь-які проблеми з розбором, такі як невідомі поля API, спричинять помилки. Невідомі версії API та поля з недійсними значеннями також спричинять помилки. Будь-які інші помилки або попередження можуть бути повідомлені залежно від вмісту вхідного файлу.
У цій версії kubeadm підтримуються наступні версії API:
kubeadm.k8s.io/v1beta4
kubeadm config validate [flags]
Параметри
--allow-deprecated-api
Дозволяє валідацію застарілих API.
--allow-experimental-api
Дозволяє валідацію експериментальних, невипущених API.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5 -
Опис
Запустіть цю команду, щоб налаштувати панель управління Kubernetes
Команда "init" виконує наступні етапи:
preflight Виконання перевірок перед запуском
certs Генерація сертифікатів
/ca Генерація самопідписаного CA Kubernetes для забезпечення ідентифікації інших компонентів Kubernetes
/apiserver Генерація сертифіката для обслуговування Kubernetes API
/apiserver-kubelet-client Генерація сертифіката для зʼєднання API server з kubelet
/front-proxy-ca Генерація самопідписаного CA для забезпечення ідентифікації front proxy
/front-proxy-client Генерація сертифіката для клієнта front proxy
/etcd-ca Генерація самопідписаного CA для забезпечення ідентифікації etcd
/etcd-server Генерація сертифіката для обслуговування etcd
/etcd-peer Генерація сертифіката для звʼязку між вузлами etcd
/etcd-healthcheck-client Генерація сертифіката для перевірки живучості etcd
/apiserver-etcd-client Генерація сертифіката, який використовується apiserver для доступу до etcd
/sa Генерація приватного ключа для підписання токенів службових облікових записів разом з його відкритим ключем
kubeconfig Генерація всіх kubeconfig файлів, необхідних для створення панелі управління, та kubeconfig файлу адміністратора
/admin Генерація kubeconfig файлу для використання адміністратором та самим kubeadm
/super-admin Генерація kubeconfig файлу для супер-адміністратора
/kubelet Генерація kubeconfig файлу для використання kubelet *лише* для завантаження кластера
/controller-manager Генерація kubeconfig файлу для використання контролер-менеджером
/scheduler Генерація kubeconfig файлу для використання планувальником
etcd Генерація маніфесту статичного Pod для локального etcd
/local Генерація маніфесту статичного Pod для локального, одновузлового локального etcd
control-plane Генерація всіх маніфестів статичних Podʼів, необхідних для створення панелі управління
/apiserver Генерація маніфесту статичного Pod для kube-apiserver
/controller-manager Генерація маніфесту статичного Pod для kube-controller-manager
/scheduler Генерація маніфесту статичного Pod для kube-scheduler
kubelet-start Запис налаштувань kubelet та (перезавантаження) kubelet
upload-config Завантаження конфігурації kubeadm та kubelet до ConfigMap
upload-config Завантаження конфігурації kubeadm та kubelet у ConfigMap
/kubeadm Завантаження конфігурації кластера kubeadm у ConfigMap
/kubelet Завантаження конфігурації компоненту kubelet у ConfigMap
upload-certs Завантаження сертифікатів у kubeadm-certs
mark-control-plane Маркування вузла як вузла панелі управління
bootstrap-token Генерація bootstrap токенів, які використовуються для приєднання вузла до кластера
kubelet-finalize Оновлення налаштувань, що стосуються kubelet, після TLS завантаження
/enable-client-cert-rotation Ввімкнути ротацію сертифікатів клієнтів kubelet
addon Встановлення необхідних надбудов для проходження тестів відповідності
/coredns Встановлення надбудови CoreDNS у Kubernetes кластер
/kube-proxy Встановлення надбудови kube-proxy у Kubernetes кластер
show-join-command Показати команду приєднання для вузлів керування та робочих вузлів
kubeadm init [прапорці]
Параметри
--apiserver-advertise-address string
IP адреса, за якою API Server буде оголошувати, що він слухає. Якщо не встановлено, буде використаний стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого буде привʼязаний API Server.
--apiserver-cert-extra-sans strings
Додаткові опціональні альтернативні імена субʼєкта (SANs) для використання в сертифікаті обслуговування API Server. Можуть бути як IP-адреси, так і DNS імена.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях для збереження та зберігання сертифікатів.
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до файлу конфігурації kubeadm.
--control-plane-endpoint string
Вкажіть стабільну IP адресу або DNS імʼя для панелі управління.
--cri-socket string
Шлях до сокета CRI для підключення. Якщо не заповнено, kubeadm спробує автоматично визначити це значення; використовуйте цю опцію тільки якщо у вас встановлено більше одного CRI або якщо у вас нестандартний сокет CRI.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Опції: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
-h, --help
довідка init
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки всіх перевірок.
Виберіть реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Виберіть конкретну версію Kubernetes для панелі управління.
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--pod-network-cidr string
Вкажіть діапазон IP-адрес для мережі Podʼів. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для VIP сервісів.
Токен для встановлення двосторонньої довіри між вузлами та вузлами панелі управління. Формат [a-z0-9]{6}.[a-z0-9]{16} — наприклад, abcdef.0123456789abcdef
--token-ttl duration Типово: 24h0m0s
Час перед автоматичним видаленням токена (наприклад, 1s, 2m, 3h). Якщо встановлено '0', токен ніколи не закінчиться
--upload-certs
Завантажити сертифікати панелі управління у Secret kubeadm-certs.
Параметри успадковані від батьківських команд
--rootfs string
[ЕКСПЕРИМЕНТАЛЬНО] Шлях до 'реальної' кореневої файлової системи хоста.
10.1.1.5.1 -
Опис
Використовуйте цю команду для виклику однієї фази робочого процесу "init".
kubeadm init phase [flags]
Параметри
-h, --help
Довідка phase
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.2 -
Опис
Встановлює необхідні надбудови для проходження тестів на відповідність
kubeadm init phase addon [flags]
Параметри
-h, --help
Довідка addon
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.3 -
Опис
Вставляє всі надбудови.
kubeadm init phase addon all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Опції: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибір конкретної версії Kubernetes для панелі управління.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Використовуйте альтернативний домен для сервісів, наприклад, "myorg.internal".
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.4 -
Встановлює надбудову CoreDNS в кластер Kubernetes
Опис
Встановлює компоненти надбудови CoreDNS через сервер API. Зверніть увагу, що хоча DNS-сервер розгорнуто, його не буде заплановано, доки не буде встановлено CNI.
kubeadm init phase addon coredns [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Опції: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибір конкретної версії Kubernetes для панелі управління.
--print-manifest
Вивести маніфести надбудов в STDOUT замість їх встановлення
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--print-manifest
Вивести маніфести надбудов в STDOUT замість їх встановлення
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.6 -
Генерує токени bootstrap, які використовуються для приєднання вузла до кластера
Опис
Токени bootstrap використовуються для встановлення двосторонньої довіри між вузлом, що приєднується до кластера, і вузлом панелі управління.
Ця команда виконує всі налаштування, необхідні для роботи токенів bootstrap, а потім створює початковий токен.
kubeadm init phase bootstrap-token [flags]
Приклади
# Налаштувати всі конфігурації токенів Bootstrap та створити # початковий токен, функціонально еквівалентний до того, що # генерується командою kubeadm init.kubeadm init phase bootstrap-token
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.7 -
Генерує сертифікати
Опис
Генерує сертифікати
kubeadm init phase certs [flags]
Параметри
-h, --help
Довідка certs
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.8 -
Опис
Генерує всі сертифікати.
kubeadm init phase certs all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-cert-extra-sans strings
Додаткові опціональні альтернативні імена субʼєкта (SANs) для використання в сертифікаті обслуговування API Server. Можуть бути як IP-адреси, так і DNS імена.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка apiserver-kubelet-client
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.11 -
Опис
Генерує сертифікати для обслуговування API Kubernetes та зберігає їх у файли apiserver.crt та apiserver.key.
Якщо обидва файли вже існують, kubeadm оминає крок створення і використовує наявні файли.
kubeadm init phase certs apiserver [flags]
Операції
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-cert-extra-sans strings
Додаткові опціональні альтернативні імена субʼєкта (SANs) для використання в сертифікаті обслуговування API Server. Можуть бути як IP-адреси, так і DNS імена.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка apiserver
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Використовуйте альтернативний домен для сервісів, наприклад, "myorg.internal".
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.12 -
Опис
Генерує самопідписаний центр сертифікації Kubernetes, щоб надати ідентифікатори для інших компонентів Kubernetes та зберігає їх у файлах ca.crt та ca.key.
Якщо обидва файли вже існують, kubeadm оминає крок створення і використовує наявні файли.
kubeadm init phase certs ca [flags]
Операції
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка ca
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.13 -
Генерує самопідписаний центр сертифікації для надання ідентифікаторів для etcd
Опис
Ця команда генерує самопідписаний центр сертифікації (CA) для надання ідентифікаторів для etcd, та зберігає їх у файлах etcd/ca.crt та etcd/ca.key.
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
kubeadm init phase certs etcd-ca [flags]
Операції
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка etcd-ca
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.14 -
Опис
Генерує сертифікат для проб життєздатності для перевірки справності etcd, та зберігає його у файлах etcd/healthcheck-client.crt та etcd/healthcheck-client.key.
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка front-proxy-client
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.19 -
Генерує приватний ключ для підпису токенів службових облікових записів, що дозволяє їм мати власні публічні ключі
Опис
Генерує приватний ключ для підпису токенів службових облікових записів, що дозволяє їм мати власні публічні ключі, та записує їх у файли sa.key та sa.pub.
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
kubeadm init phase certs sa [flags]
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--kubeconfig string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка sa
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.20 -
Опис
Генерує всі маніфести статичних Podʼів потрібні для створення панелі управління
kubeadm init phase control-plane [flags]
Параметри
-h, --help
Довідка control-plane
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.21 -
Опис
Генерує всі файли маніфестів статичних Podʼів.
kubeadm init phase control-plane all [flags]
Приклади
# Генерує всі файли маніфестів статичних Podʼів для компонентів панелі управління,# функціонально еквівалентні до тих, що генеруються командою kubeadm init.kubeadm init phase control-plane all
# Генерує всі файли маніфестів статичних Podʼів з використанням опцій, отриманих з конфігураційного файлу.kubeadm init phase control-plane all --config config.yaml
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.22 -
Опис
Генерує маніфест статичного Podʼа для kube-apiserver
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.23 -
Опис
Генерує маніфест статичного Podʼа для kube-controller-manager
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.24 -
Опис
Генерує маніфест статичного Podʼа для kube-scheduler
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.25 -
Опис
Генерує файл маніфесту статичного Podʼа для екземпляра local etcd
kubeadm init phase etcd [flags]
Параметри
-h, --help
Довідка etcd
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.26 -
Опис
Генерує файл маніфесту статичного Podʼа для екземпляра local, одновузлового local etcd
kubeadm init phase etcd local[flags]
Приклади
# Генерує файл маніфесту статичного Podʼа для etcd, функціонально# еквівалентного до того, що генерується командою kubeadm init.kubeadm init phase etcd local# Генерує файл маніфесту статичного Podʼа для etcd з використанням опцій# отриманих з файлу конфігурації.kubeadm init phase etcd local --config config.yaml
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Вибрати реєстр контейнерів для завантаження образів панелі управління
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.27 -
Опис
Генерує всі файли kubeconfig, необхідні для встановлення панелі управління та файл kubeconfig адміністратора
kubeadm init phase kubeconfig [flags]
Параметри
-h, --help
Довідка kubeconfig
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.28 -
Генерує файл kubeconfig для використання адміністратором та для самого kubeadm
Опис
Ця команда генерує файл kubeconfig для використання адміністратором та для самого kubeadm й зберігає його у файл admin.conf.
kubeadm init phase kubeconfig admin [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка admin
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.29 -
Опис
Генерує всі файли kubeconfig.
kubeadm init phase kubeconfig all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--node-name string
Вкажіть імʼя вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.30 -
Генерує файл kubeconfig для використання менеджером контролерів
Опис
Генерує файл kubeconfig для використання менеджером контролерів та зберігає його у файл controller-manager.conf.
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка controller-manager
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.31 -
Генерує файл kubeconfig, для kubelet для використання лише для потреб початкового завантаження
Опис
Генерує файл kubeconfig, для kubelet для використання лише для потреб початкового завантаження та зберігає його у файлі kubelet.conf.
Зауважте, що цей файл має використовуватись лише для потреб початкового завантаження кластера. Після розгортання панелі управління, ви маєте запросити облікові дані для kubelet через CSR API.
kubeadm init phase kubeconfig kubelet [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка kubelet
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--node-name string
Вкажіть імʼя вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.32 -
Генерує файл kubeconfig для використання планувальником
Опис
Генерує файл kubeconfig для використання планувальником та зберігає його у файл scheduler.conf.
kubeadm init phase kubeconfig scheduler [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка scheduler
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.33 -
Опис
Генерує файл kubeconfig для суперкористувача та зберігає його у файл super-admin.conf.
kubeadm init phase kubeconfig super-admin [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка super-admin
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.34 -
Опис
Оновлює налаштування, що стосуються kubelet, після початкового завантаження TLS
kubeadm init phase kubelet-finalize [flags]
Приклади
# Оновлення налаштувань, що стосуються kubelet, після початкового завантаження TLSkubeadm init phase kubelet-finalize all --config
Параметри
-h, --help
Довідка kubelet-finalize
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.35 -
Опис
Запускає всі фази kubelet-finalize.
kubeadm init phase kubelet-finalize all [flags]
Приклади
# Оновлення налаштувань, що стосуються kubelet, після початкового завантаження TLSkubeadm init phase kubelet-finalize all --config
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Тека, в якій знаходяться TLS-сертифікати. Якщо вказано --tls-cert-file та --tls-private-key-file, цей прапорець буде проігноровано.
--config string
Шлях до файлу конфігурації.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка enable-client-cert-rotation
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.37 -
Записує налаштування kubelet та (пере)запускаємо kubelet
Опис
Записує файл з KubeletConfiguration та файл оточення з налаштуваннями kubelet для конкретного вузла, а потім (пере)запустимо kubelet.
kubeadm init phase kubelet-start [flags]
Приклади
# Записує файл динамічного оточення з прапорами kubelet з файлу InitConfiguration.kubeadm init phase kubelet-start --config config.yaml
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Вибрати реєстр контейнерів для завантаження образів панелі управління
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.38 -
Опис
Позначає вузол як вузол панелі управління.
kubeadm init phase mark-control-plane [flags]
Приклади
# Застосовує мітку та taint панелі управління до поточного вузла, функціонально еквівалентно до того, що виконується командою kubeadm init.kubeadm init phase mark-control-plane --config config.yaml
# Застосовує мітку та taint панелі управління до конкретного вузлаkubeadm init phase mark-control-plane --node-name myNode
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка mark-control-plane
--node-name string
Вкажіть імʼя вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.39 -
Опис
Виконує передпольотні перевірки для kubeadm init.
kubeadm init phase preflight [flags]
Приклади
# Виконує передпольотні перевірки для kubeadm init з конфігураційним файлом config.yamlkubeadm init phase preflight --config config.yaml
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка preflight
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки всіх перевірок.
Вибрати реєстр контейнерів для завантаження образів панелі управління
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.40 -
Опис
Показує команду join для панелі управління та робочого вузла.
kubeadm init phase show-join-command [flags]
Параметри
-h, --help
Довідка show-join-command
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.41 -
Завантажує сертифікати до kubeadm-certs
Опис
Завантажує сертифікати панелі управління в Secret kubeadm-certs
kubeadm init phase upload-certs [flags]
Параметри
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--skip-certificate-key-print
Не виводити ключ, який використовується для шифрування сертифікатів панелі управління.
--upload-certs
Завантажити сертифікати панелі управління у Secret kubeadm-certs.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.42 -
Опис
Завантажує конфігурації kubeadm та kubelet у ConfigMap
kubeadm init phase upload-config [flags]
Параметри
-h, --help
Довідка upload-config
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.43 -
Опис
Завантажує всю конфігурацію в ConfigMap.
kubeadm init phase upload-config all [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.44 -
Опис
Завантажує конфігурацію кластера kubeadm ClusterConfig до ConfigMap з назвою kubeadm-config у просторі імен kube-system. Це дозволить правильно конфігурувати компоненти системи та спростить роботу користувачів під час оновлення.
Альтернативно, ви можете використовувати kubeadm config.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.45 -
Завантажує налаштування компонентів kubelet у ConfigMap
Опис
Завантажуємо конфігурацію kubelet, видобуту з обʼєкта kubeadm InitConfiguration, до ConfigMap kubelet-config у кластері
kubeadm init phase upload-config kubelet [flags]
Приклади
# Завантаження конфігурації kubelet з файла конфігурації kubeadm у ConfigMap в кластеріkubeadm init phase upload-config kubelet --config kubeadm.yaml
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.5.46 -
Опис
Очікує, поки панель управління запуститься.
kubeadm init phase wait-control-plane [flags]
Параметри
-h, --help
Довідка wait-control-plane
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6 -
Запустіть цю команду на будь-якому компʼютері, який ви хочете приєднати до існуючого кластера
Опис
Під час приєднання до ініціалізованого кластера за допомогою kubeadm, необхідно встановити двосторонню довіру. Цей процес розділяється на два етапи: виявлення (щоб Node довіряв Панелі Управління Kubernetes) та TLS завантаження (щоб Панель управління Kubernetes довіряла Node).
Існує дві основні схеми для виявлення. Перша — використовувати спільний токен разом з IP-адресою сервера API. Друга — надати файл, який є підмножиною стандартного файлу kubeconfig. Файл discovery/kubeconfig підтримує токен, втулки автентифікації client-go ("exec"), "tokenFile" та "authProvider". Цей файл може бути локальним або завантаженим через URL HTTPS. Форми приєднання є:
Можна використовувати лише одну форму. Якщо інформація для виявлення завантажується з URL, обовʼязково використовувати HTTPS. У цьому випадку для перевірки зʼєднання використовується встановлений на хості набір сертифікатів CA.
Якщо ви використовуєте спільний токен для виявлення, слід також передати прапорець --discovery-token-ca-cert-hash для перевірки публічного ключа кореневого центру сертифікації (CA), який представлений Панеллю Управління Kubernetes. Значення цього прапорця визначається як "<тип-хешу>:<шестнадцяткове-кодоване-значення>", де підтримуваний тип хешу — "sha256". Хеш обчислюється по байтах обʼєкта Subject Public Key Info (SPKI) (як в RFC7469). Це значення доступне у вихідних даних "kubeadm init" або може бути обчислене за допомогою стандартних інструментів. Прапорець --discovery-token-ca-cert-hash може бути повторений кілька разів, щоб дозволити використання більше одного публічного ключа.
Якщо ви не можете знати хеш публічного ключа CA заздалегідь, ви можете передати прапорець --discovery-token-unsafe-skip-ca-verification для вимкнення цієї перевірки. Це послаблює модель безпеки kubeadm, оскільки інші вузли можуть потенційно видавати себе за Панель Управління Kubernetes.
Механізм TLS завантаження також керується через спільний токен. Це використовується для тимчасової автентифікації в Панелі Управління Kubernetes для подання запиту на підписання сертифіката (CSR) для локально створеної пари ключів. Типово, kubeadm налаштує Панель Управління Kubernetes автоматично схвалювати ці запити на підписання. Цей токен передається за допомогою прапорця --tls-bootstrap-token abcdef.1234567890abcdef.
Часто той самий токен використовується для обох частин. У цьому випадку прапорець --token можна використовувати замість окремого зазначення кожного токена.
Команда "join [api-server-endpoint]" виконує наступні фази:
preflight Виконати передстартові перевірки для приєднання
control-plane-prepare Підготувати машину для обслуговування панелі управління
/download-certs Завантажити сертифікати, спільні для вузлів панелі управління, з Secret kubeadm-certs
/certs Створити сертифікати для нових компонентів панелі управління
/kubeconfig Створити kubeconfig для нових компонентів панелі управління
/control-plane Створити маніфести для нових компонентів панелі управління
kubelet-start Записати налаштування kubelet, сертифікати та (перезавантажити) kubelet
etcd-join Приєднання etcd до вузлів панелі управління
kubelet-wait-bootstrap Чекати, поки kubelet завантажиться
control-plane-join Приєднати машину як екземпляр панелі управління
/mark-control-plane Позначити вузол як панель управління
wait-control-plane Чекати запуску панелі управління
kubeadm join [api-server-endpoint][flags]
Параметри
--apiserver-advertise-address string
Якщо вузол має хостити новий екземпляр панелі управління, IP-адреса, яку сервер API буде оголошувати як ту, на якій він слухає. Якщо не встановлено, буде використовуватися стандартний інтерфейс.
--apiserver-bind-port int32 Стандартно: 6443
Якщо вузол має хостити новий екземпляр панелі управління, порт, до якого буде привʼязаний сервер API.
--certificate-key string
Використовуйте цей ключ для розшифрування секретів сертифікатів, завантажених за допомогою init. Ключ сертифіката — це шестнадцятковий закодований рядок, який є AES ключем розміром 32 байти.
--config string
Шлях до файлу конфігурації kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--cri-socket string
Шлях до CRI сокета для підключення. Якщо не встановлено, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр, лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка join
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки від усіх перевірок.
--node-name string
Вказати імʼя вузла.
--patches string
Шлях до теки, що містить файли з назвами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json" і відповідають форматам патчів, підтримуваних kubectl. Типовий "patchtype" — "strategic". "extension" має бути або "json", або "yaml". "suffix" — це необовʼязковий рядок, який можна використовувати для визначення, які патчі застосовуються першими в алфавітно-числовому порядку.
--skip-phases strings
Список фаз, які потрібно пропустити
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.1 -
Опис
Використовуйте цю команду для виклику однієї фази робочого процесу "join"
kubeadm join phase [flags]
Параметри
-h, --help
Довідка phase
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.2 -
Опис
Приєднує машину до екземпляра панелі управління.
kubeadm join phase control-plane-join [flags]
Приклади
# Приєднує машину до екземпляра панелі управлінняkubeadm join phase control-plane-join all
Параметри
-h, --help
Довідка control-plane-join
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.3 -
Опис
Приєднує машину до екземпляру панелі управління.
kubeadm join phase control-plane-join all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Створити новий екземпляр панелі управління на цьому вузлі
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка mark-control-plane
--node-name string
Вкажіть імʼя вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.5 -
Опис
Готує машину до обслуговування панелі управління.
kubeadm join phase control-plane-prepare [flags]
Приклади
# Готує машину до обслуговування панелі управлінняkubeadm join phase control-plane-prepare all
Параметри
-h, --help
Довідка control-plane-prepare
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.6 -
Опис
Готує машину для роботи як панелі управління.
kubeadm join phase control-plane-prepare all [api-server-endpoint][flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.7 -
Опис
Генерує сертифікати для нових компонентів панелі управління.
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка control-plane
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.9 -
Опис
Завантажує сертифікати, спільні для вузлів панелі управління, з архіву kubeadm-certs Secret
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка download-certs
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.10 -
Опис
Генерує kubeconfig для нових компонентів панелі управління, які будуть додані до кластера.
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка kubeconfig
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.11 -
Опис
Приєднати etcd до вузлів панелі управління
kubeadm join phase etcd-join [flags]
Приклади
# Приєднати etcd до екземпляра панелі управлінняkubeadm join phase control-plane-join-etcd all
Параметри
--apiserver-advertise-address string
Якщо вузол має хостити новий екземпляр панелі управління, IP-адреса, яку сервер API буде оголошувати як ту, на якій він слухає. Якщо не встановлено, буде використовуватися стандартний інтерфейс.
--config string
Шлях до файлу конфігурації kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
довідка для etcd-join
--node-name string
Вказати імʼя вузла.
--patches string
Шлях до теки, що містить файли з назвами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json" і відповідають форматам патчів, підтримуваних kubectl. Типовий "patchtype" — "strategic". "extension" має бути або "json", або "yaml". "suffix" — це необовʼязковий рядок, який можна використовувати для визначення, які патчі застосовуються першими в алфавітно-числовому порядку.
Options inherited from parent commands
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.12 -
Записує налаштування kubelet, сертифікати та (пере)запускає kubelet
Опис
Записує файл з KubeletConfiguration та файл оточення з налаштуваннями kubelet для конкретного вузла, а потім (пере)запускає kubelet.
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
tr>
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка kubelet-start
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.13 -
Опис
Чекати, поки kubelet завантажиться
kubeadm join phase kubelet-wait-bootstrap [flags]
Параметри
--config string
Шлях до файлу конфігурації kubeadm.
--cri-socket string
Шлях до CRI сокета для підключення. Якщо не встановлено, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр, лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
довідка для kubelet-wait-bootstrap
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
# Виконує передполітні перевірки для kubeadm joinkubeadm join phase preflight --config kubeadm-config.yaml
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка preflight
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки від усіх перевірок.
--node-name string
Вкажіть імʼя вузла.
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.6.15 -
Опис
Очікує запуску панелі управління
kubeadm join phase wait-control-plane [flags]
Параметри
-h, --help
Довідка wait-control-plane
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.7 -
Опис
Файлові утиліти Kubeconfig.
Параметри
-h, --help
Довідка kubeconfig
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.7.1 -
Опис
Виводить файл kubeconfig для додаткового користувача.
kubeadm kubeconfig user [flags]
Приклади
# Виводить файл kubeconfig для додаткового користувача з іменем fookubeadm kubeconfig user --client-name=foo
# Виводить файл kubeconfig для додаткового користувача з іменем foo, використовуючи конфігураційний файл kubeadm barkubeadm kubeconfig user --client-name=foo --config=bar
Параметри
--client-name string
Імʼя користувача. Буде використовуватися як CN у разі створення клієнтських сертифікатів
--config string
Шлях до конфігураційного файлу kubeadm.
-h, --help
Довідка user
--org strings
Організації сертифіката клієнта. Буде використовуватися як O, якщо будуть створені клієнтські сертифікати
--token string
TТокен, який слід використовувати як механізм автентифікації для цього kubeconfig замість клієнтських сертифікатів
--validity-period duration Типово: 8760h0m0s
Термін дії клієнтського сертифіката. Відраховується від поточного часу.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.8 -
Опис
Виконує максимально можливий відкат змін для хоста, зроблених командами kubeadm init або kubeadm join.
Шлях до теки, де зберігаються сертифікати. Якщо вказано, очистити цю теку.
--cleanup-tmp-dir
Очистити теку "/etc/kubernetes/tmp"
--config string
Шлях до файлу конфігурації kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не вносити жодних змін; лише вивести, що буде зроблено.
-f, --force
Виконати reset вузла без запиту на підтвердження.
-h, --help
довідка reset
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки від усіх перевірок.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--skip-phases strings
Список фаз, які слід пропустити
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.8.1 -
Опис
Використовуйте цю команду для виклику однієї фази процесу "reset"
kubeadm reset phase [flags]
Параметри
-h, --help
Довідка phase
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.8.2 -
Опис
Запускає очищення вузла.
kubeadm reset phase cleanup-node [flags]
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--cleanup-tmp-dir
Очистити теку "/etc/kubernetes/tmp"
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка cleanup-node
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.8.3 -
Виконує передполітні перевірки для kubeadm reset
Опис
Виконує передполітні перевірки для kubeadm reset.
kubeadm reset phase preflight [flags]
Параметри
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-f, --force
Виконати reset вузла без запиту на підтвердження.
-h, --help
Довідка preflight
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки від усіх перевірок.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.8.4 -
Опмс
Видаляє члена local etcd для вузла панелі управління.
kubeadm reset phase remove-etcd-member [flags]
Параметри
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.9 -
Керує токенами bootstrap
Опис
Ця команда управляє bootstrap токенами. Вона є опціональною та необхідна лише для розширених випадків використання.
Коротко кажучи, bootstrap токени використовуються для встановлення двосторонньої довіри між клієнтом і сервером. Bootstrap токен може бути використаний, коли клієнт (наприклад, вузол, який збирається приєднатися до кластера) має довіряти серверу, з яким він взаємодіє. У цьому випадку можна використовувати bootstrap токен з дозволом на "підписування" ("signing"). Bootstrap токени також можуть функціонувати як спосіб дозволити короткострокову автентифікацію на API сервері (токен слугує способом, щоб API сервер довіряв клієнту), наприклад, для виконання TLS Bootstrap.
Що таке bootstrap токен більш конкретно?
Це Secret у просторі імен kube-system типу "bootstrap.kubernetes.io/token".
Bootstrap токен повинен мати форму "[a-z0-9]{6}.[a-z0-9]{16}". Перша частина є публічним ідентифікатором токена, а друга — секретом токена, який повинен бути збережений у таємниці за будь-яких обставин!
Назва Secret повинна бути "bootstrap-token-(token-id)".
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.9.1 -
Створює токени запуску на сервері.
Опис
Ця команда створює токен запуску для вас. Ви можете вказати способи використання цього токену, "час життя" і необовʼязковий опис, зрозумілий людині.
[token] — це власне токен, який потрібно записати. Це має бути безпечно згенерований випадковий токен виду "[a-z0-9]{6}.[a-z0-9]{16}". Якщо [token] не вказано, kubeadm згенерує випадковий токен замість нього.
kubeadm token create [token]
Параметри
--certificate-key string
Якщо використовується разом із '--print-join-command', виводить повний прапорець 'kubeadm join', необхідний для приєднання до кластера як панелі управління. Щоб створити новий ключ сертифіката, потрібно використовувати 'kubeadm init phase upload-certs --upload-certs'.
--config string
Шлях до файлу конфігурації kubeadm.
--description string
Опис, зрозумілий для людини, як використовується цей токен.
Додаткові групи, які будуть автентифікуватися за допомогою цього токена при використанні для автентифікації. Повинно відповідати "\Asystem:bootstrappers:[a-z0-9:-]{0,255}[a-z0-9]\z"
-h, --help
довідка create
--print-join-command
Замість того, щоб виводити тільки токен, вивести повний прапорець 'kubeadm join', необхідний для приєднання до кластера за допомогою токена.
--ttl duration Типово: 24h0m0s
Тривалість перед автоматичним видаленням токена (наприклад, 1s, 2m, 3h). Якщо встановлено '0', токен ніколи не закінчиться.
--usages strings Типово: "signing,authentication"
Описує способи, в яких цей токен може використовуватися. Ви можете передавати --usages кілька разів або надати список параметрів через кому. Дійсні параметри: [signing,authentication]
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.9.2 -
Видаляє токени запуску на сервері.
Опис
Ця команда видаляє токени запуску для вас.
Значення [token-value] — це повний токен у вигляді "[a-z0-9]{6}.[a-z0-9]{16}" або Token ID виду "[a-z0-9]{6}", який потрібно видалити.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.9.3 -
Генерує та виводить токен запуску, але не створює його на сервері
Опис
Ця команда виведе випадково згенерований токен запуску, який можна використовувати з командами "init" та "join".
Ви не зобовʼязані використовувати цю команду для створення токена. Ви можете зробити це самостійно, якщо він має формат "[a-z0-9]{6}.[a-z0-9]{16}". Ця команда надається для зручності створення токенів у зазначеному форматі.
Ви також можете використовувати "kubeadm init" без вказання токена, і він буде згенерований та виведений для вас.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.9.4 -
Виводить перелік токенів запуску на сервері
Опис
Ця команда виведе перелік всіх токенів запуску на сервері.
kubeadm token list [flags]
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігноруйте будь-які помилки в шаблонах, коли поле або ключ map відсутні в шаблоні. Застосовується лише до форматів виводу golang і jsonpath.
-h, --help
довідка list
-o, --output string Типово: "text"
Формат виводу. Один із: text|json|yaml|kyaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.
--show-managed-fields
Якщо true, залиште managedFields під час вводу обʼєктів у форматі JSON або YAML.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10 -
Опис
Оновлення кластера до новішої версії відбувається плавно за допомогою цієї команди
kubeadm upgrade [flags]
Параметри
-h, --help
Довідка upgrade
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.1 -
Опис
Оновлює кластер Kubernetes до вказаної версії.
Команда "apply [version]" виконує наступні етапи:
preflight Виконання перевірок перед запуском
control-plane Оновлення панелі управління
upload-config Завантаження конфігурації kubeadm та kubelet у ConfigMapі
/kubeadm Завантаження конфігурації кластера kubeadm у ConfigMap
/kubelet Завантаження конфігурації компоненту kubelet у ConfigMap
kubelet-config Оновлення конфігурації kubelet для цього вузла
bootstrap-token Налаштування токену bootstrap та правил cluster-info RBAC
addon Оновлення типових надбудов kubeadm
/coredns Оновлення надбудови CoreDNS
/kube-proxy Оновлення надбудови kube-proxy
post-upgrade Запуск завдань після оновлення
kubeadm upgrade apply [version]
Параметри
--allow-experimental-upgrades
Показує нестабільні версії Kubernetes як альтернативу для оновлення і дозволяє оновлювати до альфа/бета/версій кандидатів Kubernetes.
--allow-release-candidate-upgrades
Показує версії кандидатів на випуск Kubernetes як альтернативу для оновлення і дозволяє оновлювати до версій кандидатів на випуск Kubernetes.
--certificate-renewal Типово: true
Виконує оновлення сертифікатів, які використовуються компонентами під час оновлення.
--config string
Шлях до файлу конфігурації kubeadm.
--dry-run
Не змінює жодного стану, просто показує дії, які будуть виконані.
--etcd-upgrade Типово: true
Виконує оновлення etcd.
-f, --force
Примусове оновлення, навіть якщо деякі вимоги можуть бути не виконані. Це також передбачає неітерактивний режим.
-h, --help
довідка apply
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним із "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним із "strategic", "merge" або "json", і вони відповідають форматам патчів, які підтримуються kubectl. Стандартно "patchtype" - "strategic". "extension" повинен бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який може використовуватися для визначення порядку застосування патчів за алфавітом.
--print-config
Вказує, чи потрібно надрукувати файл конфігурації, який буде використаний під час оновлення.
--skip-phases strings
Список етапів, які потрібно оминути
-y, --yes
Виконати оновлення і не запитувати підтвердження (режим без взаємодії).
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.2 -
Опис
Використовуйте цю команду для виклику однієї фази робочого процесу "apply"
kubeadm upgrade apply phase [flags]
-h, --help
Довідка phase
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.3 -
Опис
Оновлює стандартні надбудови kubeadm
kubeadm upgrade apply phase addon [flags]
Параметри
-h, --help
Довідка addon
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.4 -
Synopsis
Оновлює всі надбудови
kubeadm upgrade apply phase addon all [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.5 -
Synopsis
Оновлення надбудови CoreDNS
kubeadm upgrade apply phase addon coredns [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.7 -
Опис
Налаштовує токен bootstrap та правила cluster-info RBAC
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.8 -
Опис
Оновлення панелі управління
kubeadm upgrade apply phase control-plane [flags]
Параметри
--certificate-renewal Типово: true
Виконує оновлення сертифікатів, які використовуються компонентами під час оновлення.
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.9 -
Опис
Оновлення конфігурації kubelet для цього вузла, завантаживши її з файлу kubelet-config ConfigMap, що зберігається у кластері
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.10 -
Опис
Запуск завдань після оновлення
kubeadm upgrade apply phase post-upgrade [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.11 -
Опис
Запуск передпольотних перевірок перед оновленням
kubeadm upgrade apply phase preflight [flags]
Параметри
--allow-experimental-upgrades
Показує нестабільні версії Kubernetes як альтернативу для оновлення і дозволяє оновлювати до альфа/бета/версій кандидатів Kubernetes.
--allow-release-candidate-upgrades
Показує версії кандидатів на випуск Kubernetes як альтернативу для оновлення і дозволяє оновлювати до версій кандидатів на випуск Kubernetes.
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-f, --force
Примусове оновлення, навіть якщо деякі вимоги можуть бути не виконані. Це також передбачає неітерактивний режим.
-h, --help
Довідка preflight
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки всіх перевірок.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
-y, --yes
Виконати оновлення і не запитувати підтвердження (режим без взаємодії).
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.12 -
Опис
Завантаження конфігурацій kubeadm та kubelet до ConfigMaps
kubeadm upgrade apply phase upload-config [flags]
-h, --help
Довідка for upload-config
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.13 -
Опис
Завантаження всіх конфігурацій до ConfigMaps
kubeadm upgrade apply phase upload-config all [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.14 -
Опис
Завантаження конфігурації кластера kubeadm ClusterConfiguration до ConfigMap
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.16 -
Опис
Показує які відмінності можуть бути застосовані до наявних маніфестів статичних Pod. Дивіться також: kubeadm upgrade apply --dry-run
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.17 -
Опис
Команда upgrade для вузлів в кластері.
Команда "node" виконує наступні фази:
preflight Виконання попереднії перевірок оновлення вузла
control-plane Оновлення екземпляру панелі управління, розгорнутий на цьому вузлі, якщо такий є
kubelet-config Оновлення конфігурацію kubelet для цього вузла
addon Оновлення стандартних надбудов kubeadm
/coredns Оновлення надбудови CoreDNS
/kube-proxy Оновлення надбудови kube-proxy
post-upgrade Запуск завдань після оновлення
kubeadm upgrade node [flags]
Параметри
--certificate-renewal Типово: true
Виконати оновлення сертифікатів, використовуваних компонентами, які змінюються під час оновлення.
--config string
Шлях до файлу конфігурації kubeadm.
--dry-run
Не змінює жодного стану, просто показує дії, які будуть виконані.
--etcd-upgrade Типово: true
Виконати оновлення etcd.
-h, --help
довідка node
--ignore-preflight-errors strings
Список перевірок, помилки в яких будуть відображені як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним із "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним із "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" - "strategic". "extension" повинен бути або "json", або "yaml". "suffix" - це необовʼязковий рядок, який може використовуватися для визначення порядку застосування патчів за алфавітном.
--skip-phases strings
Список фаз, які слід пропустити.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.18 -
Опис
Використовуйте цю команду для виклику однієї фази робочого процесу "node"
kubeadm upgrade node phase [flags]
Параметри
-h, --help
Довідка phase
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.19 -
Опис
Оновлення стандартних надбудов kubeadm
kubeadm upgrade node phase addon [flags]
Параметри
-h, --help
Довідка addon
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.20 -
Опис
Оновлення всіх надбудов
kubeadm upgrade node phase addon all [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.21 -
Опис
Оновлення надбудови CoreDNS
kubeadm upgrade node phase addon coredns [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.23 -
Опис
Оновлює екземпляр панелі управління, розгорнутої на цьому вузлі, якщо така є.
kubeadm upgrade node phase control-plane [flags]
Параметри
--certificate-renewal Типово: true
Виконує оновлення сертифікатів, які використовуються компонентами під час оновлення.
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.24 -
Опис
Оновлення конфігурації kubelet для цього вузла, завантаживши її з файлу kubelet-config ConfigMap, що зберігається у кластері
kubeadm upgrade node phase kubelet-config [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.25 -
Опис
Запуск завдань після оновлення
kubeadm upgrade node phase post-upgrade [flags]
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.26 -
Опис
Ця команда виконує попередні перевірки для kubeadm upgrade node.
kubeadm upgrade node phase preflight [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
-h, --help
Довідка preflight
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки всіх перевірок.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.10.27 -
Опис
Перевіряє, до яких версій можна оновитися, і перевіряє, чи можна оновити ваш поточний кластер. Ця команда може бути виконана лише на вузлах панелі управління, де існує файл kubeconfig "admin.conf". Щоб пропустити перевірку Інтернету, вкажіть необовʼязковий параметр [version].
kubeadm upgrade plan [version][flags]
Параметри
--allow-experimental-upgrades
Показати нестабільні версії Kubernetes як альтернативу для оновлення і дозволити оновлення до альфа/бета/кандидатів на випуск версій Kubernetes.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли поле або ключ map відсутній у шаблоні. Застосовується лише до форматів виведення golang та jsonpath.
--allow-release-candidate-upgrades
Показати версії кандидатів на випуск Kubernetes як альтернативу для оновлення і дозволити оновлення до версій кандидатів на випуск Kubernetes.
--config string
Шлях до файлу конфігурації kubeadm.
--etcd-upgrade Типово: true
Виконує оновлення etcd.
-h, --help
довідка plan
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартнх місцях.
-o, --output string Типово: "text"
Формат виводу. Один із: text|json|yaml|kyaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.
--print-config
Вказує, чи потрібно надрукувати файл конфігурації, який буде використаний під час оновлення.
--show-managed-fields
Якщо true, зберігати managedFields під час виводу обʼєктів у форматі JSON або YAML.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.1.11 -
Опис
Ця команда виводить версію kubeadm.
kubeadm version [flags]
Параметри
-h, --help
довідка version
-o, --output string
Формат виводу; доступні варіанти: 'yaml', 'json' та 'short'
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.2 - kubeadm init
Ця команда ініціалізує вузол панелі управління Kubernetes.
Опис
Запустіть цю команду, щоб налаштувати панель управління Kubernetes
Команда "init" виконує наступні етапи:
preflight Виконання перевірок перед запуском
certs Генерація сертифікатів
/ca Генерація самопідписаного CA Kubernetes для забезпечення ідентифікації інших компонентів Kubernetes
/apiserver Генерація сертифіката для обслуговування Kubernetes API
/apiserver-kubelet-client Генерація сертифіката для зʼєднання API server з kubelet
/front-proxy-ca Генерація самопідписаного CA для забезпечення ідентифікації front proxy
/front-proxy-client Генерація сертифіката для клієнта front proxy
/etcd-ca Генерація самопідписаного CA для забезпечення ідентифікації etcd
/etcd-server Генерація сертифіката для обслуговування etcd
/etcd-peer Генерація сертифіката для звʼязку між вузлами etcd
/etcd-healthcheck-client Генерація сертифіката для перевірки живучості etcd
/apiserver-etcd-client Генерація сертифіката, який використовується apiserver для доступу до etcd
/sa Генерація приватного ключа для підписання токенів службових облікових записів разом з його відкритим ключем
kubeconfig Генерація всіх kubeconfig файлів, необхідних для створення панелі управління, та kubeconfig файлу адміністратора
/admin Генерація kubeconfig файлу для використання адміністратором та самим kubeadm
/super-admin Генерація kubeconfig файлу для супер-адміністратора
/kubelet Генерація kubeconfig файлу для використання kubelet *лише* для завантаження кластера
/controller-manager Генерація kubeconfig файлу для використання контролер-менеджером
/scheduler Генерація kubeconfig файлу для використання планувальником
etcd Генерація маніфесту статичного Pod для локального etcd
/local Генерація маніфесту статичного Pod для локального, одновузлового локального etcd
control-plane Генерація всіх маніфестів статичних Podʼів, необхідних для створення панелі управління
/apiserver Генерація маніфесту статичного Pod для kube-apiserver
/controller-manager Генерація маніфесту статичного Pod для kube-controller-manager
/scheduler Генерація маніфесту статичного Pod для kube-scheduler
kubelet-start Запис налаштувань kubelet та (перезавантаження) kubelet
upload-config Завантаження конфігурації kubeadm та kubelet до ConfigMap
upload-config Завантаження конфігурації kubeadm та kubelet у ConfigMap
/kubeadm Завантаження конфігурації кластера kubeadm у ConfigMap
/kubelet Завантаження конфігурації компоненту kubelet у ConfigMap
upload-certs Завантаження сертифікатів у kubeadm-certs
mark-control-plane Маркування вузла як вузла панелі управління
bootstrap-token Генерація bootstrap токенів, які використовуються для приєднання вузла до кластера
kubelet-finalize Оновлення налаштувань, що стосуються kubelet, після TLS завантаження
/enable-client-cert-rotation Ввімкнути ротацію сертифікатів клієнтів kubelet
addon Встановлення необхідних надбудов для проходження тестів відповідності
/coredns Встановлення надбудови CoreDNS у Kubernetes кластер
/kube-proxy Встановлення надбудови kube-proxy у Kubernetes кластер
show-join-command Показати команду приєднання для вузлів керування та робочих вузлів
kubeadm init [прапорці]
Параметри
--apiserver-advertise-address string
IP адреса, за якою API Server буде оголошувати, що він слухає. Якщо не встановлено, буде використаний стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого буде привʼязаний API Server.
--apiserver-cert-extra-sans strings
Додаткові опціональні альтернативні імена субʼєкта (SANs) для використання в сертифікаті обслуговування API Server. Можуть бути як IP-адреси, так і DNS імена.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях для збереження та зберігання сертифікатів.
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до файлу конфігурації kubeadm.
--control-plane-endpoint string
Вкажіть стабільну IP адресу або DNS імʼя для панелі управління.
--cri-socket string
Шлях до сокета CRI для підключення. Якщо не заповнено, kubeadm спробує автоматично визначити це значення; використовуйте цю опцію тільки якщо у вас встановлено більше одного CRI або якщо у вас нестандартний сокет CRI.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Опції: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
-h, --help
довідка init
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки всіх перевірок.
Виберіть реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Виберіть конкретну версію Kubernetes для панелі управління.
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--pod-network-cidr string
Вкажіть діапазон IP-адрес для мережі Podʼів. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для VIP сервісів.
Токен для встановлення двосторонньої довіри між вузлами та вузлами панелі управління. Формат [a-z0-9]{6}.[a-z0-9]{16} — наприклад, abcdef.0123456789abcdef
--token-ttl duration Типово: 24h0m0s
Час перед автоматичним видаленням токена (наприклад, 1s, 2m, 3h). Якщо встановлено '0', токен ніколи не закінчиться
--upload-certs
Завантажити сертифікати панелі управління у Secret kubeadm-certs.
Параметри успадковані від батьківських команд
--rootfs string
[ЕКСПЕРИМЕНТАЛЬНО] Шлях до 'реальної' кореневої файлової системи хоста.
Процес Init
kubeadm init розгортає вузол панелі управління Kubernetes, виконуючи
наступні кроки:
Виконує серію перевірок перед запуском, щоб перевірити стан системи
перед внесенням змін. Деякі перевірки лише видають попередження, інші вважаються
помилками, і kubeadm припиняє роботу, доки проблема не буде виправлена або
користувач не вкаже --ignore-preflight-errors=<list-of-errors>.
Генерує самопідписний CA для налаштування ідентифікаторів для кожного компонента в кластері. Користувач може надати свої власні сертифікат та/або ключ CA, помістивши їх у теку сертифікатів, налаштовану через --cert-dir (типово /etc/kubernetes/pki). Сертифікати API Server матимуть додаткові записи SAN для будь-яких аргументів --apiserver-cert-extra-sans, з приведенням до нижнього регістру за потреби.
Записує файли kubeconfig у /etc/kubernetes/ для kubelet, controller-manager та scheduler для підключення до API server, кожен зі своїм ідентифікатором. Також створюються додаткові файли kubeconfig, для kubeadm як адміністративної сутності (admin.conf) та для супер адміністратора, що може обходити RBAC (super-admin.conf).
Генерує манифести статичних Pod для API server, controller-manager та scheduler. Якщо зовнішній etcd не надано, створюється додатковий маніфест статичного Pod для etcd.
Статичні манифести Pod записуються у /etc/kubernetes/manifests; kubelet спостерігає за цією текою для створення Podʼів при запуску.
Як тільки Podʼи панелі управління будуть запущені та працюватимуть, процес kubeadm init може продовжитися.
Додає мітки та taint на вузол панелі управління, щоб жодні додаткові робочі навантаження не запускалися там.
Генерує токен, який додаткові вузли можуть використовувати для реєстрації у майбутньому на вузлі панелі управління. За бажанням, користувач може надати токен через --token, як описано в документації kubeadm token.
Виконує всі необхідні налаштування для дозволу приєднання вузлів за допомогою механізмів Bootstrap Tokens та TLS Bootstrap:
Записує ConfigMap для надання всієї необхідної інформації для приєднання, та налаштовує відповідні правила доступу RBAC.
Дозволяє Bootstrap Tokens доступ до API підписання CSR.
Налаштовує автоматичне схвалення нових запитів CSR.
Встановлює DNS сервер (CoreDNS) та компоненти надбудови kube-proxy через API server. У версії Kubernetes 1.11 і пізніших CoreDNS є типовим сервером DNS. Зверніть увагу, що хоча DNS сервер розгорнутий, він не буде запланований до встановлення CNI.
Попередження:
Використання kube-dns у kubeadm визнано застарілим з v1.18 і видалене у v1.21.
Використання фаз ініціалізації з kubeadm
Kubeadm дозволяє створювати вузол панелі управління поетапно, використовуючи команду kubeadm init phase.
Щоб переглянути впорядкований список фаз та підфаз, можна викликати kubeadm init --help. Список буде розташований на початку екрана довідки, і кожна фаза матиме опис поруч із нею. Зверніть увагу, що при виклику kubeadm init всі фази та підфази будуть виконані в точно такому порядку.
Деякі фази мають унікальні прапорці, тому, якщо ви хочете переглянути список доступних опцій, додайте --help, наприклад:
Ви також можете використовувати --help, щоб побачити список підфаз для певної батьківської фази:
sudo kubeadm init phase control-plane --help
kubeadm init також має прапорець --skip-phases, який можна використовувати для пропуску певних фаз. Прапорець приймає список назв фаз, які можна взяти з вищезгаданого впорядкованого списку.
Приклад:
sudo kubeadm init phase control-plane all --config=configfile.yaml
sudo kubeadm init phase etcd local --config=configfile.yaml
# тепер ви можете змінити файли маніфестів панелі управління та etcdsudo kubeadm init --skip-phases=control-plane,etcd --config=configfile.yaml
Цей приклад записує файли маніфесту для панелі управління та etcd у /etc/kubernetes/manifests на основі конфігурації в configfile.yaml. Це дозволяє вам змінювати файли, а потім пропускати ці фази, використовуючи --skip-phases. Викликом останньої команди ви створите вузол панелі управління з власними файлами маніфестів.
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.22 [beta]
Альтернативно, ви можете використовувати поле skipPhases у InitConfiguration.
Використання kubeadm init з конфігураційним файлом
Увага:
Конфігураційний файл все ще вважається бета-версією і може змінюватися в майбутніх версіях.
Можна налаштувати kubeadm init за допомогою конфігураційного файлу замість прапорців командного рядка, а деякі більш розширені функції можуть бути доступні лише як опції конфігураційного файлу. Цей файл передається за допомогою прапорця --config, і він повинен містити структуру ClusterConfiguration і, за бажанням, інші структури, розділені ---\n. Змішування --config з іншими прапорцями може не бути дозволеним у деяких випадках.
Ви можете вивести стандартну конфігурацію за допомогою команди kubeadm config print.
Якщо ваша конфігурація не використовує останню версію, рекомендується перейти на нову версію за допомогою команди kubeadm config migrate.
Для отримання додаткової інформації про поля та використання конфігурації ви можете перейти на нашу сторінку API-довідки.
Використання kubeadm init з функціональними можливостями
Kubeadm підтримує набір функціональних можливостей (feature gate), які унікальні для kubeadm і можуть бути застосовані лише під час створення кластера за допомогою kubeadm init. Ці функціональні можливості можуть контролювати поведінку кластера. Функціональні можливості видаляються після того, як функція переходить до стадії GA (General Availability).
Щоб передати функціональні можливості, можна використовувати прапорець --feature-gates для kubeadm init, або можна додати елементи до поля featureGates, коли передаєте конфігураційний файл за допомогою --config.
Після того, як функціональна можливість переходить до стадії GA, її стандартне значення стає true.
Опис функціональних можливостей:
NodeLocalCRISocket
З увімкненим функціоналом, kubeadm читатиме/записуватиме CRI-сокет для кожного вузла з/до файлу /var/lib/kubelet/instance-config.yaml замість того, щоб читати/записувати його з/до анотації kubeadm.alpha.kubernetes.io/cri-socket в обʼєкті Node. Новий файл застосовується як патч конфігурації екземпляра перед застосуванням будь-яких інших патчів, керованих користувачем, коли використовується прапорець --patches. Він містить єдине поле containerRuntimeEndpoint з формат файлу KubeletConfiguration. Якщо під час оновлення функцію увімкнено, але файл /var/lib/kubelet/instance-config.yaml ще не існує, kubeadm спробує прочитати значення сокета CRI з файлу /var/lib/kubelet/kubeadm-flags.env.
Список застарілих функціональних можливостей:
Застарілі функціональні можливості kubeadm
Функція
Стандартно
Alpha
Beta
GA
Deprecated
PublicKeysECDSA
false
1.19
-
-
1.31
RootlessControlPlane
false
1.22
-
-
1.31
Опис застарілих функціональних можливостей:
PublicKeysECDSA
Можна використовувати для створення кластера, який використовує сертифікати ECDSA замість стандартного алгоритму RSA. Поновлення існуючих сертифікатів ECDSA також підтримується за допомогою kubeadm certs renew, але ви не можете перемикатися між алгоритмами RSA і ECDSA на льоту або під час оновлень. У версіях Kubernetes до v1.31 була помилка, коли ключі у згенерованих файлах kubeconfig встановлювалися з використанням RSA, навіть якщо ви увімкнули PublicKeysECDSA. Ця функціональна можливість застаріла на користь функціональності encryptionAlgorithm, доступної у kubeadm v1beta4.
RootlessControlPlane
Встановлення цього прапорця налаштовує розгорнуті компоненти панелі управління kubeadm у статичних Podʼах для kube-apiserver, kube-controller-manager, kube-scheduler та etcd для запуску від імені користувачів без прав суперкористувача. Якщо прапорець не встановлений, ці компоненти запускаються з правами root. Ви можете змінити значення цього прапорця функції перед оновленням до нової версії Kubernetes.
Список видалених функціональних можливостей:
Видалені функціональні можливості kubeadm
Елемент
Alpha
Beta
GA
Видалено
ControlPlaneKubeletLocalMode
1.31
1.33
1.35
1.36
EtcdLearnerMode
1.27
1.29
1.32
1.33
IPv6DualStack
1.16
1.21
1.23
1.24
UnversionedKubeletConfigMap
1.22
1.23
1.25
1.26
UpgradeAddonsBeforeControlPlane
1.28
-
-
1.31
WaitForAllControlPlaneComponents
1.30
1.33
1.34
1.35
Опис видалених функціональних можливостей:
ControlPlaneKubeletLocalMode
З цією функціональною можливістю, при приєднанні нового вузла панелі управління, kubeadm налаштовуватиме kubelet для підключення до локального kube-apiserver. Це забезпечує дотримання політики щодо версійних розбіжностей під час постійних оновлень (rolling upgrades).
EtcdLearnerMode
При приєднанні до нового вузла панелі управління, новий член etcd буде створений як учень і підвищений до члена з правом голосу тільки після того, як дані etcd будуть повністю вирівняні.
IPv6DualStack
Цей прапорець допомагає налаштувати компоненти подвійного стека, коли функція знаходиться в процесі розробки. Для отримання більш детальної інформації про підтримку подвійного стека в Kubernetes дивіться Підтримка подвійного стека за допомогою kubeadm.
UnversionedKubeletConfigMap
Цей прапорець контролює назву ConfigMap, в якому kubeadm зберігає дані конфігурації kubelet. Якщо цей прапорець не вказаний або встановлений у true, ConfigMap називається kubelet-config. Якщо ви встановите цей прапорець у false, назва ConfigMap включатиме основну та додаткову версію для Kubernetes (наприклад: kubelet-config-1.36). Kubeadm забезпечує, що правила RBAC для читання та запису цього ConfigMap є відповідними до значення, яке ви встановили. Коли kubeadm записує цей ConfigMap (під час kubeadm init або kubeadm upgrade apply), kubeadm дотримується значення UnversionedKubeletConfigMap. При читанні цього ConfigMap (під час kubeadm join, kubeadm reset, kubeadm upgrade ...), kubeadm спочатку намагається використовувати назву ConfigMap без версії; якщо це не вдається, kubeadm переходить до використання застарілої (версійної) назви для цього ConfigMap.
UpgradeAddonsBeforeControlPlane
Цю функціональну можливість було видалено. Вона була визнана у версії v1.28 як застаріла функція і потім видалена у версії v1.31. Для документації щодо старіших версій, будь ласка, перейдіть на відповідну версію вебсайту.
WaitForAllControlPlaneComponents
З увімкненою функціональною можливістю, kubeadm чекатиме, доки всі компоненти панелі управління (kube-apiserver, kube-controller-manager, kube-scheduler) на вузлі панелі управління не повідомлять про стан 200 на своїх точках доступу /livez або /healthz. Ці перевірки виконуються на https://ADDRESS:PORT/ENDPOINT.
PORT береться з --secure-port компонента.
ADDRESS — це --advertise-address для kube-apiserver та --bind-address для kube-controller-manager та kube-scheduler.
ENDPOINT — це лише /healthz для kube-controller-manager, доки не буде підтримано /livez.
Якщо ви вкажете власні ADDRESS або PORT у конфігурації kubeadm, вони будуть враховані. Без увімкненої функціональної можливості, kubeadm лише чекатиме на готовність kube-apiserver на вузлі панелі управління. Процес очікування починається одразу після запуску kubelet на хості за допомогою kubeadm. Рекомендується увімкнути цю функцію, якщо ви бажаєте спостерігати стан готовності всіх компонентів панелі управління під час виконання команд kubeadm init або kubeadm join.
Додавання параметрів kube-proxy
Для отримання інформації про параметри kube-proxy у конфігурації kubeadm дивіться:
Для запуску kubeadm без підключення до Інтернету необхідно попередньо завантажити необхідні образи панелі управління.
Ви можете отримати перелік та завантажити образи за допомогою команди kubeadm config images:
kubeadm config images list
kubeadm config images pull
Ви можете використати --config з вищенаведеними командами з файлом конфігурації kubeadm для контролю полів kubernetesVersion та imageRepository.
Усі стандартні образи registry.k8s.io, необхідні kubeadm, підтримують кілька архітектур.
Використання власних образів
Стандартно, kubeadm завантажує образи з registry.k8s.io. Якщо запитана версія Kubernetes є CI міткою (наприклад, ci/latest), використовується gcr.io/k8s-staging-ci-images.
Вказати kubernetesVersion, що впливає на версію образів.
Вказати альтернативний imageRepository, який буде використовуватися замість registry.k8s.io.
Вказати конкретний imageRepository та imageTag для etcd або CoreDNS.
Шляхи образів між стандартним registry.k8s.io та власним репозиторієм, зазначеним за допомогою imageRepository, можуть відрізнятися з причин зворотної сумісності. Наприклад, один образ може мати підшлях у registry.k8s.io/subpath/image, але стандартно бути my.customrepository.io/image при використанні власного репозиторію користувача.
Щоб переконатися, що ви завантажуєте образи до вашого власного репозиторію у шляхи, які може використовувати kubeadm, вам потрібно:
Завантажити образи зі стандартних шляхів з registry.k8s.io за допомогою kubeadm config images {list|pull}.
Завантажити образи до шляхів з kubeadm config images list --config=config.yaml, де config.yaml містить власне значення imageRepository та/або imageTag для etcd та CoreDNS.
Передати той самий config.yaml до kubeadm init.
Власні образи sandbox (pause)
Щоб встановити власний образ для цих контейнерів, потрібно налаштувати ваше середовище виконання контейнерів для використання цього образу. Зверніться до документації вашого середовища виконання контейнерів, щоб дізнатися, як змінити це налаштування; для певних середовищ виконання контейнерів ви також можете знайти поради у розділі Середовища виконання контейнерів.
Завантаження сертифікатів панелі управління до кластера
Додавши прапорець --upload-certs до kubeadm init, ви можете тимчасово завантажити сертифікати панелі управління до Secret у кластері. Зверніть увагу, що дія цього Secret автоматично спливає через 2 години. Сертифікати шифруються за допомогою 32-байтного ключа, який можна задати за допомогою --certificate-key. Той самий ключ можна використовувати для завантаження сертифікатів при приєднанні додаткових вузлів панелі управління, передавши --control-plane та --certificate-key до kubeadm join.
Для повторного завантаження сертифікатів після закінчення їхнього терміну дії можна використовувати таку команду фази:
Попередньо визначений certificateKey можна вказати в InitConfiguration при передачі файлу конфігурації за допомогою --config.
Якщо попередньо визначений ключ сертифіката не передано до kubeadm init і
kubeadm init phase upload-certs, новий ключ буде згенеровано автоматично.
Для генерації нового ключа за запитом можна використовувати наступну команду:
kubeadm certs certificate-key
Управління сертифікатами за допомогою kubeadm
Для отримання докладної інформації про управління сертифікатами за допомогою kubeadm перегляньте Управління сертифікатами за допомогою kubeadm. Документ містить інформацію про використання зовнішнього центру сертификації (CA), власні сертифікати
та оновлення сертифікатів.
Керування drop-in файлом для kubelet у kubeadm
Пакет kubeadm постачається з файлом конфігурації для запуску kubelet через systemd. Зауважте, що CLI kubeadm ніколи не торкається цього drop-in файлу. Цей drop-in файл є частиною пакунка kubeadm DEB/RPM.
Стандартно kubeadm намагається зʼясувати яке у вас середовище виконання контейнерів. Для детальнішої інформації щодо цього, дивіться посібник з установки CRI для kubeadm.
Налаштування імені вузла
Типово kubeadm присвоює імʼя вузла на основі мережевої адреси машини. Ви можете змінити це налаштування за допомогою прапорця --node-name. Цей прапорець передає відповідне значення --hostname-override до kubelet.
Зверніть увагу, що заміна імені хосту може вплинути на роботу хмарних провайдерів,
деталі за посиланням.
Автоматизація kubeadm
Замість копіювання токену, який ви отримали з kubeadm init на кожний вузол, як у базовому посібнику з kubeadm, ви можете паралельно розподіляти токен для полегшення автоматизації. Щоб реалізувати цю автоматизацію, вам потрібно знати IP-адресу, яку матиме вузол панелі управління після запуску, або використовувати DNS-імʼя чи адресу балансувальника навантаження.
Згенеруйте токен. Цей токен повинен мати форму <6 символьний рядок>.<16 символьний рядок>. Формально він повинен відповідати регулярному виразу: [a-z0-9]{6}\.[a-z0-9]{16}.
kubeadm може згенерувати токен для вас:
kubeadm token generate
Запустіть одночасно вузол панелі управління та робочі вузли з цим токеном. Під час їх запуску вони мають знайти один одного та сформувати кластер. Той самий аргумент --token можна використовувати як у kubeadm init, так і у kubeadm join.
Аналогічно можна поступити з --certificate-key при приєднанні додаткових вузлів панелі управління. Ключ можна згенерувати за допомогою:
kubeadm certs certificate-key
Як тільки кластер буде запущений, ви зможете використовувати файл /etc/kubernetes/admin.conf з вузла панелі управління для спілкування з кластером з адміністративними правами чи Генерація файлів kubeconfig для додаткових користувачів.
Зауважте, що цей спосіб ініціалізації має деякі спрощені гарантії безпеки, оскільки не дозволяє перевіряти кореневий хеш сертифіката з --discovery-token-ca-cert-hash (оскільки він не генерується при проведенні вузлів). Докладні відомості дивіться в kubeadm join.
Що далі
kubeadm init phase для отримання більш детальної інформації про фази kubeadm init.
kubeadm join для налаштування робочого вузла Kubernetes та його приєднання до кластера.
kubeadm upgrade для оновлення кластера Kubernetes до новішої версії.
kubeadm reset для скидання будь-яких змін, внесених до цього хосту за допомогою kubeadm init або kubeadm join.
10.1.3 - kubeadm join
Ця команда ініціалізує новий вузол Kubernetes і приєднує його до наявного кластера.
Запустіть цю команду на будь-якому компʼютері, який ви хочете приєднати до існуючого кластера
Опис
Під час приєднання до ініціалізованого кластера за допомогою kubeadm, необхідно встановити двосторонню довіру. Цей процес розділяється на два етапи: виявлення (щоб Node довіряв Панелі Управління Kubernetes) та TLS завантаження (щоб Панель управління Kubernetes довіряла Node).
Існує дві основні схеми для виявлення. Перша — використовувати спільний токен разом з IP-адресою сервера API. Друга — надати файл, який є підмножиною стандартного файлу kubeconfig. Файл discovery/kubeconfig підтримує токен, втулки автентифікації client-go ("exec"), "tokenFile" та "authProvider". Цей файл може бути локальним або завантаженим через URL HTTPS. Форми приєднання є:
Можна використовувати лише одну форму. Якщо інформація для виявлення завантажується з URL, обовʼязково використовувати HTTPS. У цьому випадку для перевірки зʼєднання використовується встановлений на хості набір сертифікатів CA.
Якщо ви використовуєте спільний токен для виявлення, слід також передати прапорець --discovery-token-ca-cert-hash для перевірки публічного ключа кореневого центру сертифікації (CA), який представлений Панеллю Управління Kubernetes. Значення цього прапорця визначається як "<тип-хешу>:<шестнадцяткове-кодоване-значення>", де підтримуваний тип хешу — "sha256". Хеш обчислюється по байтах обʼєкта Subject Public Key Info (SPKI) (як в RFC7469). Це значення доступне у вихідних даних "kubeadm init" або може бути обчислене за допомогою стандартних інструментів. Прапорець --discovery-token-ca-cert-hash може бути повторений кілька разів, щоб дозволити використання більше одного публічного ключа.
Якщо ви не можете знати хеш публічного ключа CA заздалегідь, ви можете передати прапорець --discovery-token-unsafe-skip-ca-verification для вимкнення цієї перевірки. Це послаблює модель безпеки kubeadm, оскільки інші вузли можуть потенційно видавати себе за Панель Управління Kubernetes.
Механізм TLS завантаження також керується через спільний токен. Це використовується для тимчасової автентифікації в Панелі Управління Kubernetes для подання запиту на підписання сертифіката (CSR) для локально створеної пари ключів. Типово, kubeadm налаштує Панель Управління Kubernetes автоматично схвалювати ці запити на підписання. Цей токен передається за допомогою прапорця --tls-bootstrap-token abcdef.1234567890abcdef.
Часто той самий токен використовується для обох частин. У цьому випадку прапорець --token можна використовувати замість окремого зазначення кожного токена.
Команда "join [api-server-endpoint]" виконує наступні фази:
preflight Виконати передстартові перевірки для приєднання
control-plane-prepare Підготувати машину для обслуговування панелі управління
/download-certs Завантажити сертифікати, спільні для вузлів панелі управління, з Secret kubeadm-certs
/certs Створити сертифікати для нових компонентів панелі управління
/kubeconfig Створити kubeconfig для нових компонентів панелі управління
/control-plane Створити маніфести для нових компонентів панелі управління
kubelet-start Записати налаштування kubelet, сертифікати та (перезавантажити) kubelet
etcd-join Приєднання etcd до вузлів панелі управління
kubelet-wait-bootstrap Чекати, поки kubelet завантажиться
control-plane-join Приєднати машину як екземпляр панелі управління
/mark-control-plane Позначити вузол як панель управління
wait-control-plane Чекати запуску панелі управління
kubeadm join [api-server-endpoint][flags]
Параметри
--apiserver-advertise-address string
Якщо вузол має хостити новий екземпляр панелі управління, IP-адреса, яку сервер API буде оголошувати як ту, на якій він слухає. Якщо не встановлено, буде використовуватися стандартний інтерфейс.
--apiserver-bind-port int32 Стандартно: 6443
Якщо вузол має хостити новий екземпляр панелі управління, порт, до якого буде привʼязаний сервер API.
--certificate-key string
Використовуйте цей ключ для розшифрування секретів сертифікатів, завантажених за допомогою init. Ключ сертифіката — це шестнадцятковий закодований рядок, який є AES ключем розміром 32 байти.
--config string
Шлях до файлу конфігурації kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--cri-socket string
Шлях до CRI сокета для підключення. Якщо не встановлено, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр, лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка join
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки від усіх перевірок.
--node-name string
Вказати імʼя вузла.
--patches string
Шлях до теки, що містить файли з назвами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json" і відповідають форматам патчів, підтримуваних kubectl. Типовий "patchtype" — "strategic". "extension" має бути або "json", або "yaml". "suffix" — це необовʼязковий рядок, який можна використовувати для визначення, які патчі застосовуються першими в алфавітно-числовому порядку.
--skip-phases strings
Список фаз, які потрібно пропустити
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Процес приєднання
kubeadm join ініціалізує робочий вузол Kubernetes або вузол панелі управління та додає його до кластера. Ця дія складається з наступних кроків для робочих вузлів:
kubeadm завантажує необхідну інформацію про кластер з сервера API. Стандартно використовується токен початкового завантаження та хеш ключа CA для перевірки достовірності цих даних. Кореневий CA також може бути виявлений безпосередньо через файл або URL.
Як тільки інформація про кластер відома, kubelet може почати процес TLS початкового завантаження.
Завантажувач TLS використовує спільний токен для тимчасової автентифікації з сервером API Kubernetes для надсилання запиту на підписання сертифіката (CSR); стандартно панель управління підписує цей CSR-запит автоматично.
Нарешті, kubeadm налаштовує локальний kubelet для підключення до сервера API з остаточною ідентичністю, призначеною вузлу.
Для вузлів панелі управління виконуються додаткові кроки:
Завантаження сертифікатів, спільних для вузлів панелі управління з кластера (якщо це явно запитано користувачем).
Генерація маніфестів компонентів панелі управління, сертифікатів та kubeconfig.
Додавання нового локального члена etcd.
Використання фаз приєднання з kubeadm
Kubeadm дозволяє приєднати вузол до кластера поетапно, використовуючи kubeadm join phase.
Щоб переглянути впорядкований список фаз та підфаз, можна викликати kubeadm join --help. Список буде розташований у верхній частині екрана допомоги, і кожна фаза буде мати опис поруч із нею. Зверніть увагу, що при виклику kubeadm join усі фази та підфази будуть виконані саме в цьому порядку.
Деякі фази мають унікальні прапорці, тому якщо ви хочете переглянути список доступних опцій, додайте --help, наприклад:
kubeadm join phase kubelet-start --help
Подібно до команди kubeadm init phase, команда kubeadm join phase дозволяє пропустити список фаз, використовуючи прапорець --skip-phases.
Крім того, ви можете використовувати поле skipPhases в JoinConfiguration.
Визначення, якому CA кластера довіряти
Процес виявлення kubeadm має кілька варіантів, кожен з яких має свої компроміси щодо безпеки. Правильний метод для вашого середовища залежить від того, як ви впроваджуєте вузли та які вимоги до безпеки у вас є щодо вашої мережі та життєвого циклу вузлів.
Виявлення на основі токена з закріпленням CA
Це типовий режим у kubeadm. У цьому режимі kubeadm завантажує конфігурацію кластера (включаючи кореневий CA) та перевіряє її за допомогою токена, а також перевіряє, що відкритий ключ кореневого CA відповідає наданому хешу і що сертифікат сервера API дійсний в кореневому CA.
Хеш ключа CA має формат sha256:<hex_encoded_hash>. Стандартне значення хешу друкується в кінці команди kubeadm init або у виведенні команди kubeadm token create --print-join-command. Воно знаходиться в стандартному форматі (див. RFC7469) і може бути також обчислено сторонніми інструментами або системами забезпечення. Наприклад, використовуючи OpenSSL CLI:
Ви також можете викликати join для вузла панелі управління з прапорцем --certificate-key для копіювання сертифікатів на цей вузол, якщо команда kubeadm init була викликана з прапорцем --upload-certs.
Переваги:
Дозволяє вузлам початкового завантаження безпечно виявляти корінь довіри для вузла панелі управління, навіть якщо інші робочі вузли або мережа скомпрометовані.
Зручно виконувати вручну, оскільки вся необхідна інформація вміщується в одну команду kubeadm join.
Недоліки:
Хеш CA зазвичай не відомий до тих пір, поки вузол панелі управління не буде впроваджений, що може ускладнити створення автоматизованих інструментів впровадження, які використовують kubeadm. Генеруючи свій CA заздалегідь, ви можете обійти це обмеження.
Виявлення на основі токена без закріплення CA
Цей режим покладається лише на симетричний токен для підпису (HMAC-SHA256) інформації про виявлення, що встановлює корінь довіри для панелі управління. Щоб використовувати цей режим, вузли, що приєднуються, повинні пропустити перевірку хешу публічного ключа CA, використовуючи --discovery-token-unsafe-skip-ca-verification. Якщо можливо, слід розглянути використання одного з інших режимів.
Токен можна створити заздалегідь і поділитися з вузлом панелі управління та робочими вузлами, які потім можуть початково завантажуватися паралельно без координації. Це дозволяє використовувати його в багатьох сценаріях розгортання.
Недоліки:
Якщо зловмисник зможе вкрасти токен початкового завантаження через якусь уразливість, вони можуть використовувати цей токен (разом з доступом на рівні мережі) для видавання себе за вузол панелі управління для інших вузлів початкового завантаження. Це може бути або не бути відповідним компромісом у вашому середовищі.
Виявлення на основі файлів або HTTPS
Це забезпечує автономний спосіб встановлення кореня довіри між вузлом панелі управління та вузлами початкового завантаження. Розгляньте використання цього режиму, якщо ви створюєте автоматизоване впровадження за допомогою kubeadm. Формат файлу для виявлення — це звичайний файл Kubernetes kubeconfig.
У разі, якщо файл для виявлення не містить облікових даних, буде використовуватися токен TLS.
Дозволяє вузлам початкового завантаження безпечно виявляти корінь довіри для вузла панелі управління, навіть якщо мережа або інші робочі вузли скомпрометовані.
Недоліки:
Вимагає, щоб у вас був спосіб перенести інформацію про виявлення від вузла панелі управління до вузлів початкового завантаження. Якщо файл для виявлення містить облікові дані, ви повинні тримати його в секреті та передавати через безпечний канал. Це може бути можливо з вашим постачальником хмарних послуг або інструментом забезпечення розгортання.
Використання власних облікових даних kubelet з kubeadm join
Щоб дозволити kubeadm join використовувати заздалегідь визначені облікові дані kubelet і пропустити клієнтське початкове завантаження TLS та затвердження CSR для нового вузла:
На робочому вузлі панелі управління в кластері, який має /etc/kubernetes/pki/ca.key, виконайте kubeadm kubeconfig user --org system:nodes --client-name system:node:$NODE > kubelet.conf. $NODE має бути встановлено на імʼя нового вузла.
Відредагуйте отриманий kubelet.conf вручну, щоб налаштувати імʼя кластера та точку доступу сервера, або запустіть kubeadm kubeconfig user --config (приймає InitConfiguration).
Стандартно увімкнено автоматичне затвердження запитів на клієнтські сертифікати CSR, коли використовується токен Bootstrap під час автентифікації. Якщо ви не бажаєте, щоб кластер автоматично затверджував клієнтські сертифікати kubelet, ви можете вимкнути цю функцію виконавши наступну команду:
Після цього команда kubeadm join буде блокуватися до тих пір, поки адміністратор не затвердить CSR вручну:
За допомогою kubectl get csr ви можете переглянути, що оригінальний CSR знаходиться в стані Pending.
kubectl get csr
Результат буде подібним до такого:
NAME AGE REQUESTOR CONDITION
node-csr-c69HXe7aYcqkS1bKmH4faEnHAWxn6i2bHZ2mD04jZyQ 18s system:bootstrap:878f07 Pending
kubectl certificate approve дозволяє адміністратору затвердити CSR. Ця дія наказує контролеру підпису сертифікатів видати сертифікат запитувачеві з властивостями, зазначеними у CSR.
NAME AGE REQUESTOR CONDITION
node-csr-c69HXe7aYcqkS1bKmH4faEnHAWxn6i2bHZ2mD04jZyQ 1m system:bootstrap:878f07 Approved,Issued
Це змушує процес kubeadm join працювати тільки у випадку, коли була виконана команда kubectl certificate approve.
Вимкнення загального доступу до ConfigMap cluster-info
Для того, щоб досягти потоку приєднання, використовуючи токен як єдину частину інформації про перевірку, необхідно викласти у відкритий доступ ConfigMap з деякими даними, необхідними для перевірки ідентичності вузла панелі управління, стандартно публікується у відкритому доступі. Хоча в цьому ConfigMap немає приватних даних, деякі користувачі можуть бажати вимкнути цю можливість. Це дія призведе до відключення можливості використання прапорця --discovery-token в потоці kubeadm join. Ось кроки для вимкнення цієї функції:
Отримайте файл cluster-info з API сервера:
kubectl -n kube-public get cm cluster-info -o jsonpath='{.data.kubeconfig}'| tee cluster-info.yaml
Ці команди слід виконати після kubeadm init, але перед kubeadm join.
Використання kubeadm join з конфігураційним файлом
Увага:
Конфігураційний файл все ще вважається бета-версією і може змінюватися у майбутніх версіях.
Можливо сконфігурувати kubeadm join, використовуючи конфігураційний файл замість прапорців командного рядка, і деякі більш розширені функції можуть бути доступні лише як опції конфігураційного файлу. Цей файл передається за допомогою прапорця --config і повинен містити структуру JoinConfiguration. У деяких випадках змішування --config з іншими прапорцями може бути недозволеним.
Стандартна конфігурація може бути виведена за допомогою команди kubeadm config print.
Якщо ваша конфігурація не використовує останню версію, рекомендується перейти на неї за допомогою команди kubeadm config migrate.
Для отримання додаткової інформації щодо полів та використання конфігурації ви можете перейти до нашого довідника API.
Що далі
kubeadm init для ініціалізації вузла панелі управління Kubernetes.
kubeadm token для управління токенами для kubeadm join.
kubeadm reset для скасування будь-яких змін, внесених до цього хосту за допомогою kubeadm init або kubeadm join.
10.1.4 - kubeadm upgrade
kubeadm upgrade — це зручна команда, яка обгортає складну логіку оновлення однією командою, з підтримкою як планування оновлення, так і його фактичного виконання.
Інструкція kubeadm upgrade
Кроки для виконання оновлення за допомогою kubeadm викладені в цьому документі. Для старіших версій kubeadm, будь ласка, зверніться до старих наборів документації на сайті Kubernetes.
Ви можете використовувати kubeadm upgrade diff для перегляду змін, які будуть застосовані до маніфестів статичних Pod.
У Kubernetes версії v1.15.0 і пізніше, kubeadm upgrade apply та kubeadm upgrade node також автоматично оновлять сертифікати, керовані kubeadm на цьому вузлі, включаючи ті, що зберігаються у файлах kubeconfig. Щоб відмовитися від цього, можна передати прапорець --certificate-renewal=false. Для отримання додаткової інформації про оновлення сертифікатів дивіться документацію з управління сертифікатами.
Примітка:
Команди kubeadm upgrade apply та kubeadm upgrade plan мають застарілий прапорець --config, який дозволяє переналаштувати кластер під час планування або оновлення конкретного вузла панелі управління. Будь ласка, зверніть увагу, що робочий процес оновлення не був розроблений для цього сценарію, і можуть бути повідомлення про несподівані результати.
kubeadm upgrade plan
Опис
Перевіряє, до яких версій можна оновитися, і перевіряє, чи можна оновити ваш поточний кластер. Ця команда може бути виконана лише на вузлах панелі управління, де існує файл kubeconfig "admin.conf". Щоб пропустити перевірку Інтернету, вкажіть необовʼязковий параметр [version].
kubeadm upgrade plan [version][flags]
Параметри
--allow-experimental-upgrades
Показати нестабільні версії Kubernetes як альтернативу для оновлення і дозволити оновлення до альфа/бета/кандидатів на випуск версій Kubernetes.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли поле або ключ map відсутній у шаблоні. Застосовується лише до форматів виведення golang та jsonpath.
--allow-release-candidate-upgrades
Показати версії кандидатів на випуск Kubernetes як альтернативу для оновлення і дозволити оновлення до версій кандидатів на випуск Kubernetes.
--config string
Шлях до файлу конфігурації kubeadm.
--etcd-upgrade Типово: true
Виконує оновлення etcd.
-h, --help
довідка plan
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартнх місцях.
-o, --output string Типово: "text"
Формат виводу. Один із: text|json|yaml|kyaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.
--print-config
Вказує, чи потрібно надрукувати файл конфігурації, який буде використаний під час оновлення.
--show-managed-fields
Якщо true, зберігати managedFields під час виводу обʼєктів у форматі JSON або YAML.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm upgrade apply
Опис
Оновлює кластер Kubernetes до вказаної версії.
Команда "apply [version]" виконує наступні етапи:
preflight Виконання перевірок перед запуском
control-plane Оновлення панелі управління
upload-config Завантаження конфігурації kubeadm та kubelet у ConfigMapі
/kubeadm Завантаження конфігурації кластера kubeadm у ConfigMap
/kubelet Завантаження конфігурації компоненту kubelet у ConfigMap
kubelet-config Оновлення конфігурації kubelet для цього вузла
bootstrap-token Налаштування токену bootstrap та правил cluster-info RBAC
addon Оновлення типових надбудов kubeadm
/coredns Оновлення надбудови CoreDNS
/kube-proxy Оновлення надбудови kube-proxy
post-upgrade Запуск завдань після оновлення
kubeadm upgrade apply [version]
Параметри
--allow-experimental-upgrades
Показує нестабільні версії Kubernetes як альтернативу для оновлення і дозволяє оновлювати до альфа/бета/версій кандидатів Kubernetes.
--allow-release-candidate-upgrades
Показує версії кандидатів на випуск Kubernetes як альтернативу для оновлення і дозволяє оновлювати до версій кандидатів на випуск Kubernetes.
--certificate-renewal Типово: true
Виконує оновлення сертифікатів, які використовуються компонентами під час оновлення.
--config string
Шлях до файлу конфігурації kubeadm.
--dry-run
Не змінює жодного стану, просто показує дії, які будуть виконані.
--etcd-upgrade Типово: true
Виконує оновлення etcd.
-f, --force
Примусове оновлення, навіть якщо деякі вимоги можуть бути не виконані. Це також передбачає неітерактивний режим.
-h, --help
довідка apply
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним із "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним із "strategic", "merge" або "json", і вони відповідають форматам патчів, які підтримуються kubectl. Стандартно "patchtype" - "strategic". "extension" повинен бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який може використовуватися для визначення порядку застосування патчів за алфавітом.
--print-config
Вказує, чи потрібно надрукувати файл конфігурації, який буде використаний під час оновлення.
--skip-phases strings
Список етапів, які потрібно оминути
-y, --yes
Виконати оновлення і не запитувати підтвердження (режим без взаємодії).
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm upgrade diff
Опис
Показує які відмінності можуть бути застосовані до наявних маніфестів статичних Pod. Дивіться також: kubeadm upgrade apply --dry-run
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm upgrade node
Опис
Команда upgrade для вузлів в кластері.
Команда "node" виконує наступні фази:
preflight Виконання попереднії перевірок оновлення вузла
control-plane Оновлення екземпляру панелі управління, розгорнутий на цьому вузлі, якщо такий є
kubelet-config Оновлення конфігурацію kubelet для цього вузла
addon Оновлення стандартних надбудов kubeadm
/coredns Оновлення надбудови CoreDNS
/kube-proxy Оновлення надбудови kube-proxy
post-upgrade Запуск завдань після оновлення
kubeadm upgrade node [flags]
Параметри
--certificate-renewal Типово: true
Виконати оновлення сертифікатів, використовуваних компонентами, які змінюються під час оновлення.
--config string
Шлях до файлу конфігурації kubeadm.
--dry-run
Не змінює жодного стану, просто показує дії, які будуть виконані.
--etcd-upgrade Типово: true
Виконати оновлення etcd.
-h, --help
довідка node
--ignore-preflight-errors strings
Список перевірок, помилки в яких будуть відображені як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
Файл kubeconfig, який буде використовуватися при зверненні до кластера. Якщо прапорець не заданий, буде проведено пошук файлу kubeconfig в стандартних місцях.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним із "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним із "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" - "strategic". "extension" повинен бути або "json", або "yaml". "suffix" - це необовʼязковий рядок, який може використовуватися для визначення порядку застосування патчів за алфавітном.
--skip-phases strings
Список фаз, які слід пропустити.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Що далі
kubeadm config якщо ви ініціалізували свій кластер за допомогою kubeadm версії 1.7.x або нижче, щоб налаштувати ваш кластер для оновлення за допомогою kubeadm upgrade.
10.1.5 - kubeadm upgrade phase
kubeadm upgrade apply phase
За допомогою фаз kubeadm upgrade apply ви можете вибрати виконання окремих кроків початкового оновлення вузла панелі управління.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
-y, --yes
Виконати оновлення і не запитувати підтвердження (режим без взаємодії).
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Оновлення панелі управління
kubeadm upgrade apply phase control-plane [flags]
Параметри
--certificate-renewal Типово: true
Виконує оновлення сертифікатів, які використовуються компонентами під час оновлення.
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Завантаження конфігурацій kubeadm та kubelet до ConfigMaps
kubeadm upgrade apply phase upload-config [flags]
-h, --help
Довідка for upload-config
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Оновлення конфігурації kubelet для цього вузла, завантаживши її з файлу kubelet-config ConfigMap, що зберігається у кластері
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Налаштовує токен bootstrap та правила cluster-info RBAC
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Оновлює стандартні надбудови kubeadm
kubeadm upgrade apply phase addon [flags]
Параметри
-h, --help
Довідка addon
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Запуск завдань після оновлення
kubeadm upgrade apply phase post-upgrade [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm upgrade node phase
За допомогою фаз kubeadm upgrade node ви можете вибрати окремі кроки оновлення вторинної панелі управління або робочих вузлів.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Оновлення конфігурації kubelet для цього вузла, завантаживши її з файлу kubelet-config ConfigMap, що зберігається у кластері
kubeadm upgrade node phase kubelet-config [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Оновлення стандартних надбудов kubeadm
kubeadm upgrade node phase addon [flags]
Параметри
-h, --help
Довідка addon
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Запуск завдань після оновлення
kubeadm upgrade node phase post-upgrade [flags]
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Що далі
kubeadm init для завантаження вузла керування Kubernetes
kubeadm alpha для випробування експериментальних функцій
10.1.6 - kubeadm config
Під час виконання kubeadm init, kubeadm надсилає обʼєкт ClusterConfiguration у ваш кластер у ConfigMap з назвою kubeadm-config у просторі імен kube-system. Ця конфігурація зчитується під час виконання kubeadm join, kubeadm reset та kubeadm upgrade.
Ви можете використовувати kubeadm config print для виведення стандартної статичної конфігурації, яку використовує kubeadm для kubeadm init і kubeadm join.
Примітка:
Вивід цієї команди використовується як приклад. Ви повинні вручну редагувати вивід цієї команди, щоб адаптувати його до ваших налаштувань. Видаліть поля, щодо яких ви не впевнені, і kubeadm спробує заповнити їх стандартними значеннями під час виконання, аналізуючи хост.
Ви можете використовувати kubeadm config migrate для перетворення старих конфігураційних файлів, що містять застарілу версію API, на новішу підтримувану версію API.
kubeadm config validate можна використовувати для перевірки конфігураційного файлу.
kubeadm config images list та kubeadm config images pull можна використовувати для виведення списку та завантаження зображень, необхідних kubeadm.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm config print init-defaults
Вивід стандартної конфігурації ініціалізації, яка може використовуватись у kubeadm init.
Опис
Ця команда виводить обʼєкти, такі як стандартну конфігурацію ініціалізації, які можуть бути використані у kubeadm init.
Зверніть увагу, що конфіденційні значення, такі як поля Bootstrap Token, замінюються значеннями-заповнювачами, такими як abcdef.0123456789abcdef", щоб пройти перевірку, але не виконувати реальні дії для створення токена.
kubeadm config print init-defaults [flags]
Параметри
--component-configs strings
Список обʼєктів API конфігурації компонентів через кому для виводу типових значень. Доступні значення: [KubeProxyConfiguration KubeletConfiguration]. Якщо цей прапорець не встановлено, конфігурації компонентів не буде надруковано.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm config print join-defaults
Вивід стандартної конфігурації для команди kubeadm join.
Опис
Ця команда виводить обʼєкти, такі як стандартна конфігурація команди join, яка використовується для 'kubeadm join'.
Зверніть увагу, що конфіденційні значення, такі як поля Bootstrap Token, замінюються значеннями-заповнювачами, такими як abcdef.0123456789abcdef", щоб пройти перевірку, але не виконувати реальні дії для створення токена.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm config migrate
Зчитує стару версію типів конфігураційного API kubeadm з файлу і виводе аналогічний обʼєкт конфігурації для нової версії
Опис
Ця команда дозволяє конвертувати обʼєкти конфігурації старих версій у найновішу підтримувану версію, локально у CLI інструменті, без жодних змін у кластері. У цій версії kubeadm підтримуються наступні версії API:
kubeadm.k8s.io/v1beta4
Крім того, kubeadm може записувати конфігурацію лише версії "kubeadm.k8s.io/v1beta4", але читати обидві версії. Отже, незалежно від того, яку версію ви передаєте параметру --old-config, API обʼєкт буде прочитано, десеріалізовано, встановлено стандартні значення, конвертовано, валідовано та повторно серіалізовано під час запису у stdout або --new-config, якщо вказано.
Іншими словами, вихід цієї команди є тим, що kubeadm фактично читав би внутрішньо, якщо ви надіслали б цей файл команді "kubeadm init".
kubeadm config migrate [flags]
Параметри
--allow-experimental-api
Дозволити міграцію на експериментальні, невипущені API
-h, --help
довідка migrate
--new-config string
Шлях до отриманого еквівалентного конфігураційного файлу kubeadm з використанням нової версії API. Необовʼязково, якщо не вказано, вивід буде надіслано у STDOUT.
--old-config string
Шлях до конфігураційного файлу kubeadm, який використовує стару версію API і який має бути конвертований. Цей прапорець є обовʼязковим.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm config validate
Зчитує файл, що містить конфігураційний API kubeadm, і повідомляє про будь-які проблеми під час валідації
Опис
Ця команда дозволяє перевірити файл конфігурації API kubeadm та повідомити про будь-які попередження та помилки. Якщо помилок немає, статус виводу буде нульовим, в іншому випадку він буде ненульовим. Будь-які проблеми з розбором, такі як невідомі поля API, спричинять помилки. Невідомі версії API та поля з недійсними значеннями також спричинять помилки. Будь-які інші помилки або попередження можуть бути повідомлені залежно від вмісту вхідного файлу.
У цій версії kubeadm підтримуються наступні версії API:
kubeadm.k8s.io/v1beta4
kubeadm config validate [flags]
Параметри
--allow-deprecated-api
Дозволяє валідацію застарілих API.
--allow-experimental-api
Дозволяє валідацію експериментальних, невипущених API.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm config images list
Опис
Виводить список образів, які буде використовувати kubeadm. Файл конфігурації використовується у випадку налаштування будь-яких образів або сховищ образів.
kubeadm config images list [flags]
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли у шаблоні відсутнє поле або ключ мапи. Застосовується тільки до форматів виводу golang і jsonpath.
--config string
Шлях до файлу конфігурації kubeadm.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm config images pull
Опис
Витягує образи які використовує kubeadm з реєстру
kubeadm config images pull [flags]
Параметри
--config string
Шлях до файлу конфігурації kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--feature-gates string
Набір пар ключ=значення, що описують ворота функцій для різних можливостей. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, набір стандартних розташувань може бути перевірений на наявність поточного файлу kubeconfig.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Що далі
kubeadm upgrade для оновлення кластера Kubernetes до новішої версії
10.1.7 - kubeadm reset
Виконує максимально можливий відкат змін, зроблених командами kubeadm init або kubeadm join.
Опис
Виконує максимально можливий відкат змін для хоста, зроблених командами kubeadm init або kubeadm join.
Шлях до теки, де зберігаються сертифікати. Якщо вказано, очистити цю теку.
--cleanup-tmp-dir
Очистити теку "/etc/kubernetes/tmp"
--config string
Шлях до файлу конфігурації kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не вносити жодних змін; лише вивести, що буде зроблено.
-f, --force
Виконати reset вузла без запиту на підтвердження.
-h, --help
довідка reset
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки від усіх перевірок.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--skip-phases strings
Список фаз, які слід пропустити
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Робочий процес
kubeadm reset відповідає за очищення файлової системи вузла від файлів, створених за допомогою команд kubeadm init або kubeadm join. Для вузлів панелі управління reset також видаляє локального учасника стека etcd цього вузла з кластера etcd.
kubeadm reset phase можна використовувати для виконання окремих фаз наведеного вище робочого процесу. Щоб пропустити список фаз, ви можете використовувати прапорець --skip-phases, який працює аналогічно до роботи з фазами kubeadm join та kubeadm init.
kubeadm reset також підтримує прапорець --config для передачі структури ResetConfiguration.
Очищення зовнішніх членів etcd
kubeadm reset не видалить жодних даних etcd, якщо використовується зовнішній etcd. Це означає, що якщо ви знову виконаєте kubeadm init з використанням тих самих точок доступу etcd, ви побачите стан від попередніх кластерів.
Щоб видалити дані etcd, рекомендується використовувати клієнт, такий як etcdctl, наприклад:
Втулки CNI використовують теку /etc/cni/net.d для зберігання своїх конфігурацій. Команда kubeadm reset не очищує цю теку. Залишення конфігурації втулка CNI на хості може бути проблематичним, якщо той самий хост пізніше буде використано як новий вузол Kubernetes, а у цьому кластері буде розгорнуто інший втулок CNI. Це може призвести до конфлікту конфігурації між втулками CNI.
Щоб очистити теку, створіть резервну копію її вмісту, якщо потрібно, а потім виконайте наступну команду:
sudo rm -rf /etc/cni/net.d
Очищення правил мережевого трафіку
Команда kubeadm reset не очищує правила iptables, nftables або IPVS, застосовані до вузла kube-proxy. Цикл контролю в kube-proxy гарантує, що правила на кожному вузлі будуть синхронізовані. Додаткові відомості наведено у статті Віртуальні IP-адреси та службові проксі-сервери.
Якщо залишити правила без очищення, не повинно виникнути жодних проблем, якщо хост пізніше буде повторно використано як вузол Kubernetes або якщо він слугуватиме для інших цілей.
Якщо ви бажаєте виконати таке очищення, ви можете використати той самий контейнер kube-proxy, який використовувався у вашому кластері, і прапорець --cleanup у бінарному файлі kube-proxy:
docker run --privileged --network=host -v /lib/modules:/lib/modules:ro --rm registry.k8s.io/kube-proxy:v1.36.0 sh -c "kube-proxy --cleanup && echo DONE"
У результаті виконання наведеної вище команди має бути виведено DONE. Замість Docker для запуску контейнера ви можете скористатися вашим улюбленим середовищем виконання контейнерів.
Очищення $HOME/.kube
Тека $HOME/.kube зазвичай містить конфігураційні файли та кеш kubectl. Хоча не очищення вмісту $HOME/.kube/cache не є проблемою, у цій теці є один важливий файл. Це $HOME/.kube/config і він використовується kubectl для автентифікації на сервері Kubernetes API. Після завершення kubeadm init користувачеві буде запропоновано скопіювати файл /etc/kubernetes/admin.conf до теки $HOME/.kube/config і надати доступ до нього поточному користувачеві.
Команда kubeadm reset не очищує вміст теки $HOME/.kube. Залишення файлу $HOME/.kube/config без видалення може бути проблематичним, залежно від того, хто матиме доступ до цього хосту після виклику kubeadm reset. Якщо той самий кластер продовжує існувати, наполегливо рекомендуємо видалити цей файл, оскільки облікові дані адміністратора, що зберігаються в ньому, залишатимуться дійсними.
Щоб очистити теку, перегляньте її вміст, виконайте резервне копіювання, якщо потрібно, і виконайте наступну команду:
rm -rf $HOME/.kube
Відповідне завершення роботи kube-apiserver
Якщо ваш kube-apiserver налаштований з прапорцем --shutdown-delay-duration, ви можете виконати наступні команди, щоб спробувати завершити роботу відповідним чином для запущеного Pod API сервера, перед тим як виконати kubeadm reset:
yq eval -i '.spec.containers[0].command = []' /etc/kubernetes/manifests/kube-apiserver.yaml
timeout 60 sh -c 'while pgrep kube-apiserver >/dev/null; do sleep 1; done'||true
Що далі
kubeadm init для створення вузла панелі управління Kubernetes
kubeadm join для приєднання робочого вузла Kubernetes до кластера
10.1.8 - kubeadm token
Токени запуску (Bootstrap token) використовуються для встановлення двосторонньої довіри між вузлом, який приєднується до кластера, та вузлом панелі управління, як описано в розділі автентифікація за допомогою токенів запуску.
kubeadm init створює початковий токен з часом життя 24 години. Наступні команди дозволяють вам керувати таким токеном, а також створювати та керувати новими.
kubeadm token create
Створює токени запуску на сервері.
Опис
Ця команда створює токен запуску для вас. Ви можете вказати способи використання цього токену, "час життя" і необовʼязковий опис, зрозумілий людині.
[token] — це власне токен, який потрібно записати. Це має бути безпечно згенерований випадковий токен виду "[a-z0-9]{6}.[a-z0-9]{16}". Якщо [token] не вказано, kubeadm згенерує випадковий токен замість нього.
kubeadm token create [token]
Параметри
--certificate-key string
Якщо використовується разом із '--print-join-command', виводить повний прапорець 'kubeadm join', необхідний для приєднання до кластера як панелі управління. Щоб створити новий ключ сертифіката, потрібно використовувати 'kubeadm init phase upload-certs --upload-certs'.
--config string
Шлях до файлу конфігурації kubeadm.
--description string
Опис, зрозумілий для людини, як використовується цей токен.
Додаткові групи, які будуть автентифікуватися за допомогою цього токена при використанні для автентифікації. Повинно відповідати "\Asystem:bootstrappers:[a-z0-9:-]{0,255}[a-z0-9]\z"
-h, --help
довідка create
--print-join-command
Замість того, щоб виводити тільки токен, вивести повний прапорець 'kubeadm join', необхідний для приєднання до кластера за допомогою токена.
--ttl duration Типово: 24h0m0s
Тривалість перед автоматичним видаленням токена (наприклад, 1s, 2m, 3h). Якщо встановлено '0', токен ніколи не закінчиться.
--usages strings Типово: "signing,authentication"
Описує способи, в яких цей токен може використовуватися. Ви можете передавати --usages кілька разів або надати список параметрів через кому. Дійсні параметри: [signing,authentication]
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm token delete
Видаляє токени запуску на сервері.
Опис
Ця команда видаляє токени запуску для вас.
Значення [token-value] — це повний токен у вигляді "[a-z0-9]{6}.[a-z0-9]{16}" або Token ID виду "[a-z0-9]{6}", який потрібно видалити.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm token generate
Генерує та виводить токен запуску, але не створює його на сервері
Опис
Ця команда виведе випадково згенерований токен запуску, який можна використовувати з командами "init" та "join".
Ви не зобовʼязані використовувати цю команду для створення токена. Ви можете зробити це самостійно, якщо він має формат "[a-z0-9]{6}.[a-z0-9]{16}". Ця команда надається для зручності створення токенів у зазначеному форматі.
Ви також можете використовувати "kubeadm init" без вказання токена, і він буде згенерований та виведений для вас.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm token list
Виводить перелік токенів запуску на сервері
Опис
Ця команда виведе перелік всіх токенів запуску на сервері.
kubeadm token list [flags]
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігноруйте будь-які помилки в шаблонах, коли поле або ключ map відсутні в шаблоні. Застосовується лише до форматів виводу golang і jsonpath.
-h, --help
довідка list
-o, --output string Типово: "text"
Формат виводу. Один із: text|json|yaml|kyaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.
--show-managed-fields
Якщо true, залиште managedFields під час вводу обʼєктів у форматі JSON або YAML.
Файл kubeconfig для використання при спілкуванні з кластером. Якщо прапорець не встановлено, можна шукати наявний файл kubeconfig у наборі стандартних місць.
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Що далі
kubeadm join — для початкового запуску робочого вузла Kubernetes nf приєднання його до кластера
10.1.9 - kubeadm version
Опис
Ця команда виводить версію kubeadm.
kubeadm version [flags]
Параметри
-h, --help
довідка version
-o, --output string
Формат виводу; доступні варіанти: 'yaml', 'json' та 'short'
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.10 - kubeadm alpha
Увага:
kubeadm alpha надає попередній перегляд набору функцій, які стануть доступними для збору відгуків від спільноти. Будь ласка, спробуйте його та надайте нам відгук!
Наразі в kubeadm alpha немає експериментальних команд.
Що далі
kubeadm init для створення вузла панелі управління Kubernetes
Команди, повʼязані з обробкою сертифікатів Kubernetes
kubeadm certs [command]
Параметри
-h, --help
довідка certs
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm certs renew
Ви можете поновити всі сертифікати Kubernetes, використовуючи підкоманду all, або поновити їх вибірково. Для отримання детальної інформації дивіться Ручне поновлення сертифікатів.
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Поновлення всіх доступних сертифікатів
Опис
Поновлення усі відомих сертифікатів, необхідних для запуску панелі управління. Поновлення виконується безумовно, незалежно від дати закінчення терміну дії. Поновлення також можна виконувати окремо для більшого контролю.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для використання адміністратором і для самого kubeadm.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на поточних файлах/сертифікатах, нема потреби їх поновлювати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат, який apiserver використовує для доступу до etcd.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх поновлювати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат для сервера API для підключення до kubelet.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Синопсис
Поновлює сертифікат для обслуговування API Kubernetes.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для використання менеджером контролера.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат для проб життєздатності для перевірки стану справності etcd.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат для вузлів etcd, щоб вони могли взаємодіяти один з одним.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат для обслуговування etcd.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлення сертифіката клієнта front proxy.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для використання менеджером планувальника.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Поновлює сертифікат, вбудований у файл kubeconfig для суперкористувача.
Поновлення виконується безумовно, незалежно від дати закінчення терміну дії сертифіката; додаткові атрибути, такі як SAN, будуть базуватися на наявних файлах/сертифікатах, нема потреби їх перезавантажувати.
Типово поновлення намагається використовувати центр сертифікації в локальному PKI, керованому kubeadm; як альтернативу можна використовувати API сертифікатів K8s для поновлення сертифікатів, або, як останній варіант, згенерувати CSR-запит.
Після оновлення, щоб зміни набули чинності, необхідно перезапустити компоненти панелі управління та, зрештою, повторно розповсюдити оновлений сертифікат у випадку, якщо файл використовується деінде.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm certs certificate-key
Ця команда може бути використана для створення нового ключа сертифіката для панелі управління. Ключ може бути переданий як --certificate-key до kubeadm init та kubeadm join для забезпечення автоматичного копіювання сертифікатів при підключенні додаткових вузлів панелі управління.
Ця команда виведе захищений випадково згенерований ключ сертифіката, який можна використовувати з командою "init".
Ви також можете скористатися командою "kubeadm init --upload-certs" без зазначення ключа сертифіката, і вона згенерує і виведе його для вас.
kubeadm certs certificate-key [flags]
Параметри
-h, --help
Довідка certificate-key
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm certs check-expiration
Ця команда перевіряє термін дії сертифікатів у локальному PKI, керованому kubeadm. Для отримання детальної інформації дивіться Перевірка терміну дії сертифікатів.
Перевіряє термін дії сертифікатів для кластера Kubernetes
Опис
Перевіряє термін дії сертифікатів у локальному PKI, яким керує kubeadm.
kubeadm certs check-expiration [flags]
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли поле або ключ map відсутні в шаблоні. Застосовується тільки до форматів виведення golang і jsonpath.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
-o, --output string Типово: "text"
Формат виводу. Один з: text|json|yaml|kyaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file.
--show-managed-fields
Якщо true, залишати managedFields при виведенні обʼєктів у форматі JSON або YAML.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm certs generate-csr
Ця команда може бути використана для створення ключів і CSRs для всіх сертифікатів панелі управління та файлів kubeconfig. Користувач може потім підписати CSRs з CA на свій вибір. Для отримання додаткової інформації про використання команди дивіться Підписання запитів на підписання сертифікатів (CSR), створених за допомогою kubeadm.
Генерує ключі та запити на підписання сертифікатів
Опис
Генерує ключі та запити на підписування сертифікатів (CSRs) для всіх сертифікатів, необхідних для роботи панелі управління. Ця команда також генерує часткові файли kubeconfig з даними приватного ключа в полі "users > user > client-key-data", і для кожного файлу kubeconfig створюється супутній файл ".csr".
Ця команда призначена для використання в Режимі Kubeadm з зовнішнім CA Kubeadm. Вона генерує CSRs, які ви можете подати на підписання до вашого зовнішнього центру сертифікації.
Закодовані в PEM підписані сертифікати повинні бути збережені поруч з файлами ключів, використовуючи ".crt" як розширення файлу, або, у випадку з файлами kubeconfig, закодований в PEM підписаний сертифікат повинен бути закодований у base64 і доданий до файлу kubeconfig в полі "users > user > client-certificate-data".
kubeadm certs generate-csr [flags]
Приклади
# Наступна команда згенерує ключі та CSRs для всіх сертифікатів панелі управління та файлів kubeconfig:kubeadm certs generate-csr --kubeconfig-dir /tmp/etc-k8s --cert-dir /tmp/etc-k8s/pki
Параметри
--cert-dir string
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
-h, --help
Довідка generate-csr
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Що далі
kubeadm init для запуску вузла панелі управління Kubernetes
kubeadm reset для скасування будь-яких змін, внесених за допомогою kubeadm init або kubeadm join
10.1.12 - kubeadm init phase
kubeadm init phase дозволяє вам викликати атомарні кроки процесу початкового завантаження. Таким чином, ви можете дозволити kubeadm виконати частину роботи, а ви можете заповнити прогалини якщо ви бажаєте застосувати кастомізацію.
kubeadm init phase узгоджується з kubeadm init workflow, і за лаштунками обидва використовують той самий код.
kubeadm init phase preflight
Використовуючи цю команду, ви можете виконати попередні перевірки на вузлі панелі управління.
# Виконує передпольотні перевірки для kubeadm init з конфігураційним файлом config.yamlkubeadm init phase preflight --config config.yaml
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка preflight
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки всіх перевірок.
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує всі сертифікати.
kubeadm init phase certs all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-cert-extra-sans strings
Додаткові опціональні альтернативні імена субʼєкта (SANs) для використання в сертифікаті обслуговування API Server. Можуть бути як IP-адреси, так і DNS імена.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Використовуйте альтернативний домен для сервісів, наприклад, "myorg.internal".
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує самопідписаний центр сертифікації Kubernetes, щоб надати ідентифікатори для інших компонентів Kubernetes та зберігає їх у файлах ca.crt та ca.key.
Якщо обидва файли вже існують, kubeadm оминає крок створення і використовує наявні файли.
kubeadm init phase certs ca [flags]
Операції
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка ca
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує сертифікати для обслуговування API Kubernetes та зберігає їх у файли apiserver.crt та apiserver.key.
Якщо обидва файли вже існують, kubeadm оминає крок створення і використовує наявні файли.
kubeadm init phase certs apiserver [flags]
Операції
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-cert-extra-sans strings
Додаткові опціональні альтернативні імена субʼєкта (SANs) для використання в сертифікаті обслуговування API Server. Можуть бути як IP-адреси, так і DNS імена.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка apiserver
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка front-proxy-client
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Генерує самопідписаний центр сертифікації для надання ідентифікаторів для etcd
Опис
Ця команда генерує самопідписаний центр сертифікації (CA) для надання ідентифікаторів для etcd, та зберігає їх у файлах etcd/ca.crt та etcd/ca.key.
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
kubeadm init phase certs etcd-ca [flags]
Операції
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка etcd-ca
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує сертифікати для обслуговування etcd, та зберігає їх у файлах etcd/server.crt та etcd/server.key.
Типові SANs: localhost, 127.0.0.1, 127.0.0.1, ::1
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
kubeadm init phase certs etcd-server [flags]
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка etcd-server
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує сертифікати для вузлів etcd для звʼязку між собою, та зберігає їх у файлах etcd/peer.crt та etcd/peer.key.
Типові SANs: localhost, 127.0.0.1, 127.0.0.1, ::1
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
kubeadm init phase certs etcd-peer [flags]
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка etcd-peer
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує сертифікат для проб життєздатності для перевірки справності etcd, та зберігає його у файлах etcd/healthcheck-client.crt та etcd/healthcheck-client.key.
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка apiserver-etcd-client
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Генерує приватний ключ для підпису токенів службових облікових записів, що дозволяє їм мати власні публічні ключі
Опис
Генерує приватний ключ для підпису токенів службових облікових записів, що дозволяє їм мати власні публічні ключі, та записує їх у файли sa.key та sa.pub.
Якщо обидва файли вже існують, kubeadm пропускає крок генерації та використовує наявні файли.
kubeadm init phase certs sa [flags]
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--kubeconfig string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка sa
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase kubeconfig
Ви можете створити всі необхідні файли kubeconfig за допомогою підкоманди all або викликати їх окремо.
Генерує всі файли kubeconfig, необхідні для встановлення панелі управління та файл kubeconfig адміністратора
kubeadm init phase kubeconfig [flags]
Параметри
-h, --help
Довідка kubeconfig
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує всі файли kubeconfig.
kubeadm init phase kubeconfig all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--node-name string
Вкажіть імʼя вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Генерує файл kubeconfig для використання адміністратором та для самого kubeadm
Опис
Ця команда генерує файл kubeconfig для використання адміністратором та для самого kubeadm й зберігає його у файл admin.conf.
kubeadm init phase kubeconfig admin [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка admin
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Генерує файл kubeconfig, для kubelet для використання лише для потреб початкового завантаження
Опис
Генерує файл kubeconfig, для kubelet для використання лише для потреб початкового завантаження та зберігає його у файлі kubelet.conf.
Зауважте, що цей файл має використовуватись лише для потреб початкового завантаження кластера. Після розгортання панелі управління, ви маєте запросити облікові дані для kubelet через CSR API.
kubeadm init phase kubeconfig kubelet [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка kubelet
--kubeconfig-dir string Типово: "/etc/kubernetes"
Шлях, де буде збережено файл kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--node-name string
Вкажіть імʼя вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Генерує файл kubeconfig для використання менеджером контролерів
Опис
Генерує файл kubeconfig для використання менеджером контролерів та зберігає його у файл controller-manager.conf.
Генерує файл маніфесту статичного Podʼа для екземпляра local etcd
kubeadm init phase etcd [flags]
Параметри
-h, --help
Довідка etcd
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує файл маніфесту статичного Podʼа для екземпляра local, одновузлового local etcd
kubeadm init phase etcd local[flags]
Приклади
# Генерує файл маніфесту статичного Podʼа для etcd, функціонально# еквівалентного до того, що генерується командою kubeadm init.kubeadm init phase etcd local# Генерує файл маніфесту статичного Podʼа для etcd з використанням опцій# отриманих з файлу конфігурації.kubeadm init phase etcd local --config config.yaml
Параметри
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Вибрати реєстр контейнерів для завантаження образів панелі управління
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase control-plane
Використовуючи цю фазу, ви можете створити всі необхідні файли статичних Podʼів для компонентів панелі управління.
Генерує всі маніфести статичних Podʼів потрібні для створення панелі управління
kubeadm init phase control-plane [flags]
Параметри
-h, --help
Довідка control-plane
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує всі файли маніфестів статичних Podʼів.
kubeadm init phase control-plane all [flags]
Приклади
# Генерує всі файли маніфестів статичних Podʼів для компонентів панелі управління,# функціонально еквівалентні до тих, що генеруються командою kubeadm init.kubeadm init phase control-plane all
# Генерує всі файли маніфестів статичних Podʼів з використанням опцій, отриманих з конфігураційного файлу.kubeadm init phase control-plane all --config config.yaml
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує маніфест статичного Podʼа для kube-apiserver
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--cert-dir string Типово: "/etc/kubernetes/pki"
Шлях, де будуть збережені сертифікати
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Варіанти: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує маніфест статичного Podʼа для kube-controller-manager
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує маніфест статичного Podʼа для kube-scheduler
Вибрати реєстр контейнерів для завантаження образів панелі управління
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase kubelet-start
Ця фаза створить файл конфігурації kubelet та файл оточення та запустить kubelet.
Записує налаштування kubelet та (пере)запускаємо kubelet
Опис
Записує файл з KubeletConfiguration та файл оточення з налаштуваннями kubelet для конкретного вузла, а потім (пере)запустимо kubelet.
kubeadm init phase kubelet-start [flags]
Приклади
# Записує файл динамічного оточення з прапорами kubelet з файлу InitConfiguration.kubeadm init phase kubelet-start --config config.yaml
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Вибрати реєстр контейнерів для завантаження образів панелі управління
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase wait-control-plane
В цій фазі kubeadm чекатиме, поки компоненти панелі управління не запустяться.
Завантажує конфігурації kubeadm та kubelet у ConfigMap
kubeadm init phase upload-config [flags]
Параметри
-h, --help
Довідка upload-config
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Завантажує всю конфігурацію в ConfigMap.
kubeadm init phase upload-config all [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Завантажує конфігурацію кластера kubeadm ClusterConfig до ConfigMap з назвою kubeadm-config у просторі імен kube-system. Це дозволить правильно конфігурувати компоненти системи та спростить роботу користувачів під час оновлення.
Альтернативно, ви можете використовувати kubeadm config.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Завантажує налаштування компонентів kubelet у ConfigMap
Опис
Завантажуємо конфігурацію kubelet, видобуту з обʼєкта kubeadm InitConfiguration, до ConfigMap kubelet-config у кластері
kubeadm init phase upload-config kubelet [flags]
Приклади
# Завантаження конфігурації kubelet з файла конфігурації kubeadm у ConfigMap в кластеріkubeadm init phase upload-config kubelet --config kubeadm.yaml
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase upload-certs
Використовуйте наступну фазу, щоб завантажити сертифікати панелі управління в кластер. Стандартно термін дії сертифікатів і ключа шифрування закінчується через дві години.
Завантажує сертифікати панелі управління в Secret kubeadm-certs
kubeadm init phase upload-certs [flags]
Параметри
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--skip-certificate-key-print
Не виводити ключ, який використовується для шифрування сертифікатів панелі управління.
--upload-certs
Завантажити сертифікати панелі управління у Secret kubeadm-certs.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase mark-control-plane
Використовуйте наступну фазу для позначення вузла як вузла панелі управління.
# Застосовує мітку та taint панелі управління до поточного вузла, функціонально еквівалентно до того, що виконується командою kubeadm init.kubeadm init phase mark-control-plane --config config.yaml
# Застосовує мітку та taint панелі управління до конкретного вузлаkubeadm init phase mark-control-plane --node-name myNode
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка mark-control-plane
--node-name string
Вкажіть імʼя вузла.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase bootstrap-token
Використовуйте наступну фазу для створення або керування bootstrap токенів.
Генерує токени bootstrap, які використовуються для приєднання вузла до кластера
Опис
Токени bootstrap використовуються для встановлення двосторонньої довіри між вузлом, що приєднується до кластера, і вузлом панелі управління.
Ця команда виконує всі налаштування, необхідні для роботи токенів bootstrap, а потім створює початковий токен.
kubeadm init phase bootstrap-token [flags]
Приклади
# Налаштувати всі конфігурації токенів Bootstrap та створити # початковий токен, функціонально еквівалентний до того, що # генерується командою kubeadm init.kubeadm init phase bootstrap-token
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase kubelet-finalize
Використовуйте наступну фазу для оновлення налаштувань, що стосуються kubelet після TLS bootstrap. Ви можете використовувати субкоманду all, щоб запустити всі фази `kubelet-finalize.
Встановлює необхідні надбудови для проходження тестів на відповідність
kubeadm init phase addon [flags]
Параметри
-h, --help
Довідка addon
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Вставляє всі надбудови.
kubeadm init phase addon all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane-endpoint string
Вказує стабільну IP-адресу або DNS-імʼя для панелі управління.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Опції: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибір конкретної версії Kubernetes для панелі управління.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Використовуйте альтернативний домен для сервісів, наприклад, "myorg.internal".
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Встановлює надбудову CoreDNS в кластер Kubernetes
Опис
Встановлює компоненти надбудови CoreDNS через сервер API. Зверніть увагу, що хоча DNS-сервер розгорнуто, його не буде заплановано, доки не буде встановлено CNI.
kubeadm init phase addon coredns [flags]
Параметри
--config string
Шлях до конфігураційного файлу kubeadm.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
--feature-gates string
Набір пар ключ=значення, що описують функціональні можливості для різних функцій. Опції: NodeLocalCRISocket=true|false (default=true) PublicKeysECDSA=true|false (DEPRECATED - default=false) RootlessControlPlane=true|false (ALPHA - default=false)
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибір конкретної версії Kubernetes для панелі управління.
--print-manifest
Вивести маніфести надбудов в STDOUT замість їх встановлення
--service-cidr string Типово: "10.96.0.0/12"
Використовуйте альтернативний діапазон IP-адрес для сервісів VIP.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
--kubernetes-version string Типово: "stable-1"
Вибрати конкретну версію Kubernetes для панелі управління.
--pod-network-cidr string
Вказує діапазон IP-адрес для мережі Pod. Якщо встановлено, панель управління автоматично виділить CIDR для кожного вузла.
--print-manifest
Вивести маніфести надбудов в STDOUT замість їх встановлення
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm init phase show-join-command
Показує команду, яку можна використовувати з kubeadm join.
kubeadm reset для скасування будь-яких змін, зроблених за допомогою kubeadm init або kubeadm join
kubeadm alpha для випробування експериментальних функцій
10.1.13 - kubeadm join phase
kubeadm join phase дозволяє викликати атомарні кроки процесу приєднання. Таким чином, ви можете дозволити kubeadm виконати частину роботи, а ви заповните прогалини, якщо захочете застосувати налаштування.
kubeadm join phase узгоджується з workflow приєднання kubeadm, і за лаштунками обидва використовують той самий код.
# Виконує передполітні перевірки для kubeadm joinkubeadm join phase preflight --config kubeadm-config.yaml
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--cri-socket string
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка preflight
--ignore-preflight-errors strings
Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки від усіх перевірок.
--node-name string
Вкажіть імʼя вузла.
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm join phase control-plane-prepare
Використовуючи цю фазу, ви можете підготувати вузол до обслуговування панелі управління.
# Готує машину до обслуговування панелі управлінняkubeadm join phase control-plane-prepare all
Параметри
-h, --help
Довідка control-plane-prepare
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Готує машину для роботи як панелі управління.
kubeadm join phase control-plane-prepare all [api-server-endpoint][flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--certificate-key string
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Завантажує сертифікати, спільні для вузлів панелі управління, з архіву kubeadm-certs Secret
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка download-certs
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує сертифікати для нових компонентів панелі управління.
Ключ, що використовується для шифрування сертифікатів панелі управління у Secret kubeadm-certs. Ключ сертифіката — це шістнадцятковий рядок, який є ключем AES розміром 32 байти
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка kubeconfig
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Генерує маніфести для нових компонентів панелі управління.
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--apiserver-bind-port int32 Типово: 6443
Порт, до якого API-сервер буде привʼязуватися.
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка control-plane
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm join phase kubelet-start
На цьому етапі ви можете записати налаштування kubelet, сертифікати та (пере)запустити kubelet.
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--discovery-file string
Для виявлення на основі файлу, файл або URL, з якого буде завантажена інформація про кластер.
--discovery-token string
Для виявлення на основі токена, токен, який використовується для перевірки інформації про кластер, отриманої з сервера API.
--discovery-token-ca-cert-hash strings
Для виявлення на основі токена, перевірити, що публічний ключ кореневого центру сертифікації відповідає цьому хешу (формат: "<тип>:<значення>").
tr>
--discovery-token-unsafe-skip-ca-verification
Для виявлення на основі токена, дозволити приєднання без закріплення --discovery-token-ca-cert-hash.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка kubelet-start
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
--tls-bootstrap-token string
Вкажіть токен, який використовується для тимчасової автентифікації з Панеллю Управління Kubernetes під час приєднання вузла.
--token string
Використовуйте цей токен для discovery-token та tls-bootstrap-token, коли ці значення не вказані окремо.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
# Приєднати etcd до екземпляра панелі управлінняkubeadm join phase control-plane-join-etcd all
Параметри
--apiserver-advertise-address string
Якщо вузол має хостити новий екземпляр панелі управління, IP-адреса, яку сервер API буде оголошувати як ту, на якій він слухає. Якщо не встановлено, буде використовуватися стандартний інтерфейс.
--config string
Шлях до файлу конфігурації kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
довідка для etcd-join
--node-name string
Вказати імʼя вузла.
--patches string
Шлях до теки, що містить файли з назвами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json" і відповідають форматам патчів, підтримуваних kubectl. Типовий "patchtype" — "strategic". "extension" має бути або "json", або "yaml". "suffix" — це необовʼязковий рядок, який можна використовувати для визначення, які патчі застосовуються першими в алфавітно-числовому порядку.
Options inherited from parent commands
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm join phase control-plane-join
Використовуючи цю фазу, ви можете приєднати вузол як екземпляр панелі управління.
# Приєднує машину до екземпляра панелі управлінняkubeadm join phase control-plane-join all
Параметри
-h, --help
Довідка control-plane-join
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Опис
Приєднує машину до екземпляру панелі управління.
kubeadm join phase control-plane-join all [flags]
Параметри
--apiserver-advertise-address string
IP-адреса, на якому API-сервер буде оголошувати що віе прослуховує звернення. Якщо не вказано, використовується стандартний мережевий інтерфейс.
--config string
Шлях до конфігураційного файлу kubeadm.
--control-plane
Створити новий екземпляр панелі управління на цьому вузлі
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка all
--node-name string
Вкажіть імʼя вузла.
--patches string
Шлях до теки, що містить файли з іменами "target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json", і вони відповідають форматам патчів, що підтримуються kubectl. Стандартно "patchtype" є "strategic". "extension" повинно бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення, які патчі застосовуються першими за алфавітно-цифровим порядком.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Виводить файл kubeconfig для додаткового користувача.
kubeadm kubeconfig user [flags]
Приклади
# Виводить файл kubeconfig для додаткового користувача з іменем fookubeadm kubeconfig user --client-name=foo
# Виводить файл kubeconfig для додаткового користувача з іменем foo, використовуючи конфігураційний файл kubeadm barkubeadm kubeconfig user --client-name=foo --config=bar
Параметри
--client-name string
Імʼя користувача. Буде використовуватися як CN у разі створення клієнтських сертифікатів
--config string
Шлях до конфігураційного файлу kubeadm.
-h, --help
Довідка user
--org strings
Організації сертифіката клієнта. Буде використовуватися як O, якщо будуть створені клієнтські сертифікати
--token string
TТокен, який слід використовувати як механізм автентифікації для цього kubeconfig замість клієнтських сертифікатів
--validity-period duration Типово: 8760h0m0s
Термін дії клієнтського сертифіката. Відраховується від поточного часу.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
10.1.15 - kubeadm reset phase
kubeadm reset phase дозволяє вам викликати атомарні кроки процесу reset. Таким чином, ви можете дозволити kubeadm виконати частину роботи, а ви можете заповнити прогалини
якщо ви бажаєте застосувати кастомізацію.
kubeadm reset phase узгоджується з kubeadm reset workflow, і за лаштунками обидва використовують той самий код.
Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може буити переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
kubeadm reset phase cleanup-node
За допомогою цієї фази ви можете виконати очищення на цьому вузлі.
Шлях до CRI сокету для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний CRI сокет.
--dry-run
Не застосовувати жодних змін; просто вивести, що буде зроблено.
-h, --help
Довідка cleanup-node
Параметри успадковані від батьківських команд
--rootfs string
Шлях до реальної кореневої файлової системи хоста. Це призведе до зміни корення (chroot) kubeadm на вказаних шлях
Що далі
kubeadm init для завантаження вузла керування Kubernetes
kubeadm reset для скасування будь-яких змін, зроблених за допомогою kubeadm init або kubeadm join
kubeadm alpha для випробування експериментальних функцій
10.1.16 - Деталі реалізації
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.10 [stable]
kubeadm init та kubeadm join разом забезпечують гарну послідовність дій користувача для створення базового кластера Kubernetes з нуля, відповідно до найкращих практик. Однак може бути не очевидно, як kubeadm це робить.
Цей документ надає додаткову інформацію про те, що відбувається за лаштунками, з метою поширення знань про найкращі практики для кластера Kubernetes.
Основні принципи дизайну
Кластер, який налаштовується за допомогою kubeadm init та kubeadm join, має бути:
Захищеним: Він повинен дотримуватися останніх найкращих практик, таких як:
забезпечення RBAC
використання Node Authorizer
використання захищеного зв’язку між компонентами панелі управління
використання захищеного зв’язку між API-сервером і kubelet-ами
обмеження доступу до API kubelet-а
обмеження доступу до API для системних компонентів, таких як kube-proxy та CoreDNS
обмеження доступу до того, що може отримати Bootstrap Token
Зручним для користувачів: Користувачеві не повинно знадобитися виконувати більше, ніж кілька команд:
kubeadm init
export KUBECONFIG=/etc/kubernetes/admin.conf
kubectl apply -f <network-plugin-of-choice.yaml>
kubeadm join --token <token> <endpoint>:<port>
Розширюваним:
Він не повинен віддавати перевагу жодному конкретному мережевому провайдеру. Налаштування мережі кластерів не входить до сфери компетенції
Він повинен надавати можливість використовувати конфігураційний файл для налаштування різних параметрів
Константи та добре відомі значення та шляхи
Щоб зменшити складність і спростити розробку вищого рівня інструментів, що будуються на основі kubeadm, він використовує обмежений набір констант для добре відомих шляхів та імен файлів.
Тека Kubernetes /etc/kubernetes є константою в застосунку, оскільки вона є очевидним шляхом у більшості випадків і найінтуїтивнішим розташуванням; інші константні шляхи та імена файлів є такими:
/etc/kubernetes/manifests як шлях, де kubelet повинен шукати маніфести статичних Podʼів.
Імена маніфестів статичних Podʼів:
etcd.yaml
kube-apiserver.yaml
kube-controller-manager.yaml
kube-scheduler.yaml
/etc/kubernetes/ як шлях, де зберігаються файли kubeconfig з ідентифікаторами для компонентів панелі управління. Імена файлів kubeconfig:
kubelet.conf (bootstrap-kubelet.conf під час TLS bootstrap)
controller-manager.conf
scheduler.conf
admin.conf для адміністратора кластера і kubeadm
super-admin.conf для супер-адміністратора кластера, який може обходити RBAC
Імена сертифікатів і ключових файлів:
ca.crt, ca.key для центру авторизації Kubernetes
apiserver.crt, apiserver.key для сертифіката API-сервера
apiserver-kubelet-client.crt, apiserver-kubelet-client.key для клієнтського сертифіката, що використовується API-сервером для безпечного підключення до kubelet-ів
sa.pub, sa.key для ключа, який використовується менеджером контролерів при підписанні ServiceAccount
front-proxy-ca.crt, front-proxy-ca.key для центру авторизації front-проксі
front-proxy-client.crt, front-proxy-client.key для клієнта front-проксі
Формат конфігураційного файлу kubeadm
Більшість команд kubeadm підтримують прапорець --config, який дозволяє передавати конфігураційний файл з диска. Формат конфігураційного файлу відповідає загальній схемі API Kubernetes apiVersion / kind, але вважається форматом конфігурації компонентів. Деякі компоненти Kubernetes, такі як kubelet, також підтримують конфігурацію на основі файлів.
Різні підкоманди kubeadm вимагають різних kind файлів конфігурації. Наприклад, InitConfiguration для kubeadm init, JoinConfiguration для kubeadm join, UpgradeConfiguration для kubeadm upgrade і ResetConfiguration для kubeadm reset.
Командою kubeadm config migrate можна перенести файл конфігурації старого формату до нового (поточного) формату конфігурації. Інструмент kubeadm підтримує міграцію лише із застарілих форматів конфігурацій до поточного формату.
Команда kubeadm init phase дозволяє користувачам викликати кожне завдання окремо, і в кінцевому підсумку пропонує багаторазовий і компонований API/інструментарій, який може бути використаний іншими інструментами початкового завантаження Kubernetes, будь-яким інструментом автоматизації ІТ або досвідченим користувачем для створення власних кластерів.
Перевірка перед установкою (Preflight checks)
Kubeadm виконує набір перевірок перед початком ініціалізації з метою перевірки передумов і уникнення типових проблем під час запуску кластера.
Користувач може пропустити певні перевірки перед установкою або всі за допомогою опції --ignore-preflight-errors.
[Попередження], якщо версія Kubernetes, яку слід використовувати (вказана за допомогою прапорця --kubernetes-version), є хоча б на одну мінорну версію вищою за версію kubeadm CLI.
Вимоги до системи Kubernetes:
якщо використовується Linux:
[Помилка], якщо версія ядра старіша за мінімально необхідну версію
[Помилка], якщо не налаштовані необхідні підсистеми cgroups
[Помилка], якщо точка доступу CRI не відповідає
[Помилка], якщо користувач не є root
[Помилка], якщо імʼя машини не є дійсним DNS-піддоменом
[Попередження], якщо імʼя хосту неможливо знайти через мережевий пошук
[Помилка], якщо версія kubelet нижча за мінімальну підтримувану версію kubelet, підтримувану kubeadm (поточна мінорна версія -1)
[Помилка], якщо версія kubelet хоча б на одну мінорну версію вища за необхідну версію панелі управління (непідтримуване відхилення версій)
[Попередження], якщо служба kubelet не існує або вона вимкнена
[Попередження], якщо активний firewalld
[Помилка], якщо використовується порт привʼязки API-сервера або порти 10250/10251/10252
[Помилка], якщо тека /etc/kubernetes/manifests вже існує і не є порожньою
[Помилка], якщо включений swap
[Помилка], якщо команди ip, iptables, mount, nsenter відсутні в шляху до команд
[Попередження], якщо команди ethtool, tc, touch відсутні в шляху до команд
[Попередження], якщо додаткові аргументи для API-сервера, менеджера контролерів, планувальника містять недійсні параметри
[Попередження], якщо зʼєднання з https://API.AdvertiseAddress:API.BindPort пройде через проксі
[Попередження], якщо зʼєднання з підмережею сервісів пройде через проксі (перевіряється лише перша адреса)
[Попередження], якщо зʼєднання з підмережею Podʼів пройде через проксі (перевіряється лише перша адреса)
Якщо використовується зовнішній etcd:
[Помилка], якщо версія etcd старіша за мінімально необхідну версію
[Помилка], якщо сертифікати або ключі etcd вказані, але не надані
Якщо використовується внутрішній etcd (і, таким чином, буде встановлений локальний etcd):
[Помилка], якщо використовується порт 2379
[Помилка], якщо тека Etcd.DataDir вже існує і не є порожньою
Kubeadm генерує пари сертифікатів і приватних ключів для різних цілей:
Самопідписаний центр сертифікації для кластера Kubernetes, збережений у файлі ca.crt і приватний ключ у файлі ca.key
Сертифікат обслуговування для API-сервера, згенерований за допомогою ca.crt як CA, збережений у файлі apiserver.crt разом із приватним ключем apiserver.key. Цей сертифікат повинен містити наступні альтернативні імена:
Внутрішній clusterIP сервісу Kubernetes (перша адреса в CIDR служб, наприклад, 10.96.0.1, якщо підмережа сервісів — 10.96.0.0/12)
DNS-імена Kubernetes, наприклад kubernetes.default.svc.cluster.local, якщо значення прапорця --service-dns-domain є cluster.local, а також типові DNS-імена kubernetes.default.svc, kubernetes.default, kubernetes
Імʼя вузла (node-name)
--apiserver-advertise-address
Додаткові альтернативні імена, вказані користувачем
Клієнтський сертифікат для API-сервера для безпечного підключення до kubelet-ів, згенерований за допомогою ca.crt як CA і збережений у файлі apiserver-kubelet-client.crt разом із його приватним ключем apiserver-kubelet-client.key. Цей сертифікат повинен бути в організації system:masters
Приватний ключ для підпису токенів ServiceAccount, збережений у файлі sa.key разом із його публічним ключем sa.pub
Центр сертифікації для front proxy, збережений у файлі front-proxy-ca.crt разом із його ключем front-proxy-ca.key
Клієнтський сертифікат для клієнта front proxy, згенерований за допомогою front-proxy-ca.crt як CA і збережений у файлі front-proxy-client.crt разом із його приватним ключем front-proxy-client.key
Сертифікати зберігаються типово у /etc/kubernetes/pki, але цю теку можна налаштувати за допомогою прапорця --cert-dir.
Зверніть увагу на наступне:
Якщо дані пари сертифікат-приватний ключ вже існують і їх зміст відповідає вищезазначеним вимогам, вони будуть використані, і фаза генерації для даного сертифіката буде пропущена. Це означає, що користувач може, наприклад, скопіювати поточний CA в /etc/kubernetes/pki/ca.{crt,key}, і після цього kubeadm використовуватиме ці файли для підпису інших сертифікатів. Див. також використання власних сертифікатів
Для CA можливо надати файл ca.crt, але не надавати файл ca.key. Якщо всі інші сертифікати і файли kubeconfig вже на місці, kubeadm визнає цю умову і активує ExternalCA, що також означає, що контролер csrsigner в контролері-менеджері не буде запущений
Якщо kubeadm працює в режимі зовнішньої CA; всі сертифікати повинні бути надані користувачем, оскільки kubeadm не може їх генерувати самостійно
У випадку запуску kubeadm у режимі --dry-run, файли сертифікатів записуються в тимчасову теку
It seems like you're referring to documentation or a detailed guide on how kubeadm handles various aspects of Kubernetes initialization and configuration. If you need a translation of this content into Ukrainian, I can provide that. Here's the translation:
Генерація kubeconfig файлів для компонентів панелі управління
Kubeadm генерує kubeconfig файли з ідентичностями для компонентів панелі управління:
Файл kubeconfig для kubelet, який використовується під час ініціалізації TLS — /etc/kubernetes/bootstrap-kubelet.conf. У цьому файлі є bootstrap-token або вбудовані клієнтські сертифікати для автентифікації цього вузла у кластері.
Цей клієнтський сертифікат повинен:
Бути в організації system:nodes, як вимагається модулем Node Authorization
Мати Загальне Імʼя (CN) system:node:<hostname-lowercased>
Файл kubeconfig для контролера-менеджера, /etc/kubernetes/controller-manager.conf; у цьому файлі вбудований клієнтський сертифікат з ідентичністю контролера-менеджера. Цей клієнтський сертифікат повинен мати CN system:kube-controller-manager, як визначено стандартними RBAC ролями ядра компонентів
Файл kubeconfig для планувальника, /etc/kubernetes/scheduler.conf; у цьому файлі вбудований клієнтський сертифікат з ідентичністю планувальника. Цей клієнтський сертифікат повинен мати CN system:kube-scheduler, як визначено стандартними RBAC ролями ядра компонентів
Додатково, kubeconfig файл для kubeadm як адміністративної сутності генерується і зберігається у /etc/kubernetes/admin.conf. Цей файл включає сертифікат з Subject: O = kubeadm:cluster-admins, CN = kubernetes-admin. kubeadm:cluster-admins — це група, керована kubeadm. Вона повʼязана з cluster-admin ClusterRole під час kubeadm init, за допомогою super-admin.conf файлу, який не потребує RBAC. Файл admin.conf повинен залишатися на вузлах панелі управління і не повинен бути переданий іншим користувачам.
Під час kubeadm init генерується інший kubeconfig файл і зберігається у /etc/kubernetes/super-admin.conf. Цей файл включає сертифікат з Subject: O = system:masters, CN = kubernetes-super-admin. system:masters — це суперкористувачі, які обходять RBAC і роблять super-admin.conf корисним у випадку надзвичайної ситуації, коли кластер заблокований через неправильну конфігурацію RBAC. Файл super-admin.conf повинен зберігатися в безпечному місці і не повинен передаватися іншим користувачам.
Ви можете запустити kubeadm kubeconfig user для створення файлів kubeconfig для додаткових користувачів.
Увага:
Згенеровані конфігураційні файли містять вбудований ключ автентифікації, і ви повинні ставитися до них як до конфіденційних.
Також, зверніть увагу на наступне:
Всі kubeconfig файли включають в себе сертифікат ca.crt.
Якщо вказаний kubeconfig файл вже існує і його зміст відповідає вищезазначеним вимогам, то буде використано існуючий файл, і фаза генерації для даного kubeconfig буде пропущена.
Якщо kubeadm працює в режимі ExternalCA mode, всі необхідні kubeconfig файли також повинні бути надані користувачем, оскільки kubeadm не може згенерувати їх самостійно.
У випадку виконання kubeadm в режимі --dry-run, файли kubeconfig записуються в тимчасову теку.
Генерація маніфестів статичних Pod для компонентів панелі управління
Kubeadm записує файли маніфестів статичних Pod для компонентів панелі управління до /etc/kubernetes/manifests. kubelet спостерігає за цією текою для створення Podʼів при запуску.
Маніфести статичних Podʼів мають спільний набір властивостей:
Всі статичні Podʼи розгорнуті в просторі імен kube-system
Всі статичні Podʼи мають мітки tier:control-plane та component:{імʼя-компоненти}
Всі статичні Podʼи використовують клас пріоритету system-node-critical
На всіх статичних Podʼах встановлено hostNetwork: true, щоб дозволити запуск панелі управління до налаштування мережі; в результаті:
Адреса, яку використовує контролер-менеджер та планувальник для посилання на API-сервер, є 127.0.0.1
Якщо сервер etcd налаштовано локально, адреса etcd-server буде встановлена як 127.0.0.1:2379
Включено обрання лідера як для контролер-менеджера, так і для планувальника
Контролер-менеджер та планувальник будуть посилатися на файли kubeconfig з їхніми відповідними, унікальними ідентифікаторами
Всі статичні Podʼи отримують будь-які додаткові томи, вказані користувачем (Шлях хоста)
Зверніть увагу, що:
Усі образи типово будуть витягуватися з registry.k8s.io. Для налаштування репозиторію образів див. використання власних образів
У разі виконання kubeadm у режимі --dry-run файли статичних Podʼів записуються у тимчасову теку
Генерацію маніфестів статичних Podʼів для компонентів панелі управління можна запустити окремо за допомогою команди kubeadm init phase control-plane all
Сервер API
Маніфест статичних Podʼів для сервера API обробляється наступними параметрами, наданими користувачами:
apiserver-advertise-address та apiserver-bind-port для звʼязку; якщо вони не вказані, стандартне значення буде IP-адреса основного мережевого інтерфейсу на машині та порт 6443
service-cluster-ip-range для використання сервісів
Якщо вказаний зовнішній сервер etcd, то etcd-servers та повʼязані налаштування TLS (etcd-cafile, etcd-certfile, etcd-keyfile); якщо зовнішній сервер etcd не вказано, буде використовуватися локальний etcd (через мережу хосту)
Якщо вказаний провайдер хмарних послуг, то налаштовується відповідний параметр --cloud-provider разом зі шляхом --cloud-config, якщо такий файл існує (експериментально, альфа версія, буде вилучено в майбутній версії)
Інші прапорці сервера API, що встановлені безумовно, включають:
--insecure-port=0 для уникнення небезпечних зʼєднань з сервером API
--enable-bootstrap-token-auth=true для активації модуля автентифікації BootstrapTokenAuthenticator. Див. TLS Bootstrapping для деталей
--allow-privileged до true (необхідно, наприклад, для kube-proxy)
--requestheader-client-ca-file до front-proxy-ca.crt
--enable-admission-plugins до:
NamespaceLifecycle наприклад, для уникнення видалення системних зарезервованих просторів імен
ServiceAccount для автоматизації службових облікових записів
PersistentVolumeLabel приєднує мітки регіону або зони до PersistentVolumes, як визначено провайдером хмарних послуг (Цей контролер допуску є застарілим і буде вилучений у майбутній версії. Він типово не розгорнутий kubeadm починаючи з v1.9, якщо явно не вибрано використання gce або aws як провайдерів хмарних послуг)
DefaultStorageClass для встановлення типового класу зберігання на обʼєктах PersistentVolumeClaim
NodeRestriction для обмеження того, що kubelet може змінювати (наприклад, тільки Podʼи на цьому вузлі)
--kubelet-preferred-address-types до InternalIP,ExternalIP,Hostname; це робить kubectl logs та іншу комунікацію API server-kubelet працюючою в середовищах, де імена хостів вузлів не розвʼязуються
Прапорці для використання сертифікатів, згенерованих на попередніх етапах:
--client-ca-file до ca.crt
--tls-cert-file до apiserver.crt
--tls-private-key-file до apiserver.key
--kubelet-client-certificate до apiserver-kubelet-client.crt
--kubelet-client-key до apiserver-kubelet-client.key
--service-account-key-file до sa.pub
--requestheader-client-ca-file до front-proxy-ca.crt
--proxy-client-cert-file до front-proxy-client.crt
--proxy-client-key-file до front-proxy-client.key
Інші прапорці для забезпечення безпеки front proxy
(Агрегація API)
комунікацій:
Якщо kubeadm запускається з вказанням --pod-network-cidr, активується функція менеджера підмережі, необхідна для деяких мережевих втулків CNI, встановлюючи:
--allocate-node-cidrs=true
Прапорці --cluster-cidr та --node-cidr-mask-size відповідно до заданого CIDR
Інші прапорці, які встановлюються безумовно, включають:
--controllers, що активує всі стандартні контролери плюс контролери BootstrapSigner та TokenCleaner для TLS-запуску. Див. TLS Bootstrapping для деталей.
--use-service-account-credentials до true
Прапорці для використання сертифікатів, згенерованих на попередніх етапах:
--root-ca-file до ca.crt
--cluster-signing-cert-file до ca.crt, якщо відключений зовнішній режим CA, в іншому випадку до ""
--cluster-signing-key-file до ca.key, якщо відключений зовнішній режим CA, в іншому випадку до ""
--service-account-private-key-file до sa.key.
Планувальник
Маніфест статичного Podʼа для планувальника обробляється наступними параметрами, наданими користувачами.
Генерація маніфесту статичного Pod для локального etcd
Якщо ви вказали зовнішній etcd, цей крок буде пропущено. В іншому випадку kubeadm генерує маніфест статичного Pod для створення локального екземпляра etcd, що працює в Pod з наступними характеристиками:
слухати на localhost:2379 і використовувати HostNetwork=true
зробити монтування hostPath з dataDir до файлової системи хосту
Будь-які додаткові прапорці, вказані користувачем
Зверніть увагу, що:
Образ контейнера etcd буде типово витягнутий з registry.gcr.io. Для налаштування власного репозиторію образів див. використання власних образів.
Якщо ви запускаєте kubeadm у режимі --dry-run, маніфест статичного Pod для etcd записується у тимчасову теку.
Ви можете безпосередньо викликати генерацію маніфесту статичного Pod для локального etcd за допомогою команди kubeadm init phase etcd local.
Очікування запуску панелі управління
На вузлах панелі управління kubeadm чекає до 4 хвилин, поки компоненти панелі управління та kubelet стануть доступними. Для цього виконується перевірка стану відповідних точок доступу компонентів /healthz або /livez.
Після того як панель управління буде запущена, kubeadm завершує виконання завдань, описаних у наступних розділах.
Збереження конфігурації кластера kubeadm у ConfigMap для подальшого посилання
kubeadm зберігає конфігурацію, передану в kubeadm init, у ConfigMap з назвою kubeadm-config в просторі імен kube-system.
Це забезпечить можливість kubeadm у майбутньому (наприклад, під час оновлення kubeadm upgrade) визначати фактичний поточний стан кластера і приймати нові рішення на основі цих даних.
Зверніть увагу, що:
Перед збереженням конфігурації кластера чутлива інформація, така як токен, видаляється з конфігурації.
Завантаження конфігурації вузла панелі управління може бути викликане окремо за допомогою команди kubeadm init phase upload-config.
Позначення вузла як вузла панелі управління
Як тільки панель управління буде доступна, kubeadm виконує наступні дії:
Позначає вузол як вузол панелі управління з міткою node-role.kubernetes.io/control-plane=""
Додає на вузол taint node-role.kubernetes.io/control-plane:NoSchedule
Зверніть увагу, що фазу позначення вузла як вузла панелі управління можна викликати окремо за допомогою команди kubeadm init phase mark-control-plane.
Налаштування TLS-Bootstrapping для приєднання вузлів
kubeadm init забезпечує належну конфігурацію всього процесу, включаючи наступні кроки, а також налаштування прапорців API-сервера та контролера, як вже було описано у попередніх розділах.
Примітка:
TLS-запуск для вузлів можна налаштувати за допомогою команди
kubeadm init phase bootstrap-token, виконуючи всі кроки налаштування, описані в наступних розділаї; альтернативно, кожен крок може бути викликаний окремо.
Створення bootstrap токена
kubeadm init створює перший bootstrap токен, що генерується автоматично або надається користувачем за допомогою прапорця --token. Згідно з документацією щодо специфікації bootstrap токена, токен слід зберегти як секрет з іменем bootstrap-token-<token-id> у просторі імен kube-system.
Зверніть увагу, що:
bootstrap токен, типово створений kubeadm init, використовуватиметься для перевірки тимчасових користувачів під час процесу TLS-запуску; ці користувачі будуть членами групи system:bootstrappers:kubeadm:default-node-token.
Токен має обмежену чинність, стандартно 24 години (цей інтервал можна змінити за допомогою прапорця --token-ttl).
Додаткові токени можна створити за допомогою команди kubeadm token, яка також надає інші корисні функції для управління токенами.
Дозвіл на виклик API CSR вузлами, які приєднуються
Kubeadm забезпечує можливість користувачам у групі system:bootstrappers:kubeadm:default-node-token доступ до API підпису сертифікатів.
Це реалізується створенням ClusterRoleBinding з назвою kubeadm:kubelet-bootstrap між вищезазначеною групою та рольовим доступом RBAC стандартно system:node-bootstrapper.
Налаштування автоматичного схвалення нових bootstrap токенів
Kubeadm забезпечує автоматичне схвалення запитів на підпис сертифікату Bootstrap Token за допомогою контролера csrapprover.
Це реалізується створенням ClusterRoleBinding з назвою kubeadm:node-autoapprove-bootstrap між групою system:bootstrappers:kubeadm:default-node-token та стандартним рольовим доступом system:certificates.k8s.io:certificatesigningrequests:nodeclient.
Роль system:certificates.k8s.io:certificatesigningrequests:nodeclient також має бути створена, надаючи дозвіл POST на шлях /apis/certificates.k8s.io/certificatesigningrequests/nodeclient.
Налаштування ротації сертифікатів вузлів з автоматичним схваленням
Kubeadm забезпечує активацію ротації сертифікатів для вузлів і автоматичне схвалення запитів на підпис сертифікатів для вузлів за допомогою контролера csrapprover.
Це реалізується створенням ClusterRoleBinding з назвою kubeadm:node-autoapprove-certificate-rotation між групою system:nodes та стандартним рольовим доступом system:certificates.k8s.io:certificatesigningrequests:selfnodeclient.
Створення публічного ConfigMap cluster-info
У цій фазі створюється ConfigMap cluster-info у просторі імен kube-public.
Додатково створюється Role та RoleBinding, які надають доступ до ConfigMap неавтентифікованим користувачам (тобто користувачам у RBAC групі system:unauthenticated).
Примітка:
Доступ до ConfigMap cluster-infoне обмежується за швидкістю. Це може бути проблемою, якщо ваш API-сервер кластера відкритий для інтернету; у найгіршому випадку може виникнути атака типу DoS, коли атакуючий використовує всі вхідні запити, які може обробити kube-apiserver, щоб обслуговувати ConfigMap cluster-info.
Встановлення надбудов
Kubeadm встановлює внутрішній DNS-сервер і компоненти надбудов kube-proxy через API-сервер.
Для kube-proxy створюється обліковий запис ServiceAccount у просторі імен kube-system, після чого kube-proxy розгортається як DaemonSet:
Облікові дані (ca.crt та token) до панелі управління отримуються з облікового запису ServiceAccount.
Місцезнаходження (URL) API-сервера отримується з ConfigMap.
Обліковий запис ServiceAccount kube-proxy повʼязується з правами у рольовому доступі ClusterRole system:node-proxier.
DNS
Сервіс CoreDNS називається kube-dns для сумісності з застарілою надбудовою kube-dns.
У просторі імен kube-system створюється обліковий запис ServiceAccount для CoreDNS.
Обліковий запис coredns привʼязаний до привілеїв у ClusterRole system:coredns.
У версії Kubernetes 1.21 була видалена підтримка використання kube-dns з kubeadm. Ви можете використовувати CoreDNS з kubeadm, навіть якщо повʼязаний сервіс називається kube-dns.
Внутрішній дизайн фаз kubeadm join
Подібно до kubeadm init, внутрішній робочий процес kubeadm join також складається з послідовності атомарних завдань, що виконуються.
Вони поділені на дві частини: виявлення (щоб вузол довіряв Kubernetes API Server) та початкове завантаження TLS (щоб Kubernetes API Server довіряв вузлу).
kubeadm виконує набір попередніх перевірок перед початком приєднання, з метою перевірити попередні умови та уникнути поширених проблем запуску кластера.
Зверніть увагу на наступне:
Попередні перевірки kubeadm join є, по суті, підмножиною попередніх перевірок kubeadm init.
Якщо ви приєднуєтеся до вузла Windows, специфічні для Linux елементи керування пропускаються.
У будь-якому випадку користувач може пропустити певні попередні перевірки (або, врешті-решт, усі попередні перевірки) за допомогою опції --ignore-preflight-errors.
Виявлення інформації про кластер
Є дві основні схеми для виявлення. Перша полягає у використанні спільного токена разом з IP-адресою сервера API. Друга — наданні файлу (який є підмножиною стандартного файлу kubeconfig).
Виявлення спільного токена
Якщо kubeadm join викликається з параметром --discovery-token, використовується виявлення за допомогою токена; у цьому випадку вузол основному отримує сертифікати CA кластера з ConfigMap cluster-info у просторі імен kube-public.
Щоб запобігти атакам типу "особа посередині", вживаються кілька заходів:
Спочатку сертифікат CA отримується через небезпечне зʼєднання (це можливо, тому що kubeadm init надає доступ користувачам cluster-info для system:unauthenticated)
Потім сертифікат CA проходить наступні кроки перевірки:
Базова перевірка: використовуючи ID токена через підпис JWT
Перевірка публічного ключа: використовуючи наданий --discovery-token-ca-cert-hash. Це значення доступне у виводі kubeadm init або може бути обчислене за допомогою стандартних інструментів (хеш обчислюється над байтами обʼєкта Subject Public Key Info (SPKI) відповідно до RFC7469). Прапор --discovery-token-ca-cert-hash може бути повторений кілька разів, щоб дозволити більше одного публічного ключа.
Як додаткова перевірка, сертифікат CA отримується через безпечне зʼєднання і порівнюється з сертифікатом CA, отриманим спочатку
Примітка:
Ви можете пропустити перевірку CA, передавши в командному рядку прапорець --discovery-token-unsafe-skip-ca-verification. Це послаблює модель безпеки kubeadm, оскільки інші потенційно можуть видавати себе за сервер API Kubernetes.
Виявлення файлу/HTTPS
Якщо kubeadm join викликається з параметром --discovery-file, використовується виявлення за допомогою файлу; цей файл може бути локальним файлом або завантаженим через HTTPS URL; у випадку HTTPS, використовується встановлений на хості пакет сертифікатів CA для перевірки зʼєднання.
При виявленні файлу сертифікат CA кластера надається у самому файлі; фактично, файл для виявлення є файлом kubeconfig з встановленими тільки атрибутами server і certificate-authority-data, як описано у референс-документації kubeadm join; коли зʼєднання з кластером встановлено, kubeadm намагається отримати доступ до ConfigMap cluster-info, і якщо він доступний, використовує його.
TLS Bootstrap
Після того, як інформація про кластер відома, записується файл bootstrap-kubelet.conf, що дозволяє kubelet виконати початкове завантаження TLS.
Механізм початкового завантаження TLS використовує спільний токен для тимчасової автентифікації з сервером API Kubernetes для подання запиту на підписання сертифіката (CSR) для локально створеної пари ключів.
Запит автоматично затверджується, і операція завершується збереженням файлів ca.crt і kubelet.conf, які використовуються kubelet для приєднання до кластера, тоді як bootstrap-kubelet.conf видаляється.
Примітка:
Тимчасова автентифікація перевіряється через токен, збережений під час процесу kubeadm init (або за допомогою додаткових токенів, створених командою kubeadm token)
Тимчасова автентифікація відноситься до користувача, який є членом групи system:bootstrappers:kubeadm:default-node-token, якій було надано доступ до API CSR під час процесу kubeadm init
Автоматичне затвердження CSR управляється контролером csrapprover відповідно до конфігурації, присутньої в процесі kubeadm init
Внутрішній дизайн робочого процесу kubeadm upgrade
Команда kubeadm upgrade має підкоманди для керування оновленням кластера Kubernetes, створеного за допомогою kubeadm. Вам слід виконати kubeadm upgrade apply на одному з вузлів панелі управління (ви можете вибрати, на якому саме); це запустить процес оновлення. Потім виконайте kubeadm upgrade node на всіх інших вузлах (як на робочих вузлах, так і на вузлах панелі управління).
І kubeadm upgrade apply, і kubeadm upgrade node мають підкоманду phase, яка надає доступ до внутрішніх фаз процесу оновлення. Докладніші відомості наведено у статті kubeadm upgrade phase.
Додатковими командами оновлення утиліти є kubeadm upgrade plan та kubeadm upgrade diff.
Усі підкоманди оновлення підтримують передачу конфігураційного файлу.
kubeadm upgrade plan
За бажанням ви можете запустити kubeadm upgrade plan перед запуском kubeadm upgrade apply. Підкоманда plan перевіряє, до яких версій можна оновитися, і перевіряє, чи можна оновити ваш поточний кластер.
kubeadm upgrade diff
Показує, які відмінності буде застосовано до існуючих статичних маніфестів пакунків для вузлів панелі управління. Більш розлогий спосіб зробити те саме — виконати kubeadm upgrade apply --dry-run або kubeadm upgrade node --dry-run.
kubeadm upgrade apply
Команда kubeadm upgrade apply готує кластер до оновлення всіх вузлів, а також оновлює вузол панелі управління, на якому вона виконується. Кроки, які вона виконує:
Виконує передпольотні перевірки, подібні до kubeadm init та kubeadm join, переконуючись, що образи контейнерів завантажено і кластер перебуває у стані, придатному для оновлення.
Оновлює файли маніфесту панелі управління на диску у /etc/kubernetes/manifests і чекає, поки kubelet перезапустить компоненти, якщо файли було змінено.
Завантажує оновлені конфігурації kubeadm і kubelet в кластер у ConfigMaps kubeadm-config і kubelet-config (обидві у просторі імен kube-system).
Записує оновлену конфігурацію kubelet для цього вузла у файл /var/lib/kubelet/config.yaml, а також читає файл /var/lib/kubelet/instance-config.yaml цього вузла і накладає латки на такі поля, як containerRuntimeEndpoint з цієї конфігурації інстансу у /var/lib/kubelet/config.yaml.
Налаштовує токен bootstrap і cluster-info ConfigMap для правил RBAC. Це те ж саме, що і на етапі kubeadm init і гарантує, що кластер продовжує підтримувати приєднання вузлів за допомогою токенів bootstrap.
Оновлює kube-proxy та надбудови CoreDNS умовно, якщо всі існуючі kube-apiservers у кластері вже було оновлено до цільової версії.
Виконує будь-які завдання після оновлення, такі як очищення застарілих функцій, що залежать від релізу.
kubeadm upgrade node
kubeadm upgrade node оновлює один вузол панелі управління або робочий вузол після запуску оновлення кластера (шляхом запуску kubeadm upgrade apply). Команда визначає, чи є вузол вузлом панелі управління, перевіряючи наявність файлу /etc/kubernetes/manifests/kube-apiserver.yaml. Знайшовши цей файл, інструмент kubeadm
припускає, що на цьому вузлі запущено Pod kube-apiserver.
Виконує передпольотні перевірки подібно до kubeadm upgrade apply.
Для вузлів панелі управління оновлює файли маніфесту панелі управління на диску у /etc/kubernetes/manifests і чекає, поки kubelet перезапустить компоненти, якщо файли було змінено.
Запише оновлену конфігурацію kubelet для цього вузла у /var/lib/kubelet/config.yaml, а також читає файл /var/lib/kubelet/instance-config.yaml цього вузла і накладає латки на такі поля, як containerRuntimeEndpoint з цієї конфігурації інстансу у /var/lib/kubelet/config.yaml.
(Для вузлів панелі управління) Оновлює kube-proxy та CoreDNS надбудови умовно, за умови, що всі наявні API-сервери у кластері вже оновлені до цільової версії.
Виконує будь-які завдання після оновлення, такі як очищення застарілих функцій, специфічних для конкретного випуску.
Внутрішній дизайн робочого процесу kubeadm reset
Ви можете скористатися підкомандою kubeadm reset на вузлі, де раніше виконувалися команди kubeadm. Ця підкоманда виконує очищення вузла з best-effort зусиллями. Якщо певні дії не вдасться виконати, ви маєте втрутитися і виконати очищення вручну.
Команда підтримує фази. Докладні відомості наведено у статті kubeadm reset phase.
Команда підтримує файл конфігурації.
Додатково:
Правила IPVS, iptables і nftables не очищуються.
Конфігурацію CNI (мережевого втулка) не очищено.
Файл .kube/ у домашній теці користувача не очищується.
Команда виконує наступні етапи:
Виконує передпольотну перевірку вузла, щоб визначити, чи є він справним.
Для вузлів панелі управління видаляє всі локальні дані членів etcd.
Зупиняє роботу kubelet.
Зупиняє запуск контейнерів.
Відмонтує усі змонтовані теки у /var/lib/kubelet.
Видаляє усі файли та теки, якими керує kubeadm у /var/lib/kubelet та /etc/kubernetes.
11 - Інструмент командного рядка (kubectl)
Kubernetes надає інструмент командного рядка для взаємодії з кластерами Kubernetes, панеллю управління, за допомогою API Kubernetes. Використовуйте його для розгортання застосунків, перегляду ресурсів та управління робочими навантаженнями.
Цей інструмент має назву kubectl.
Для отримання налаштувань kubectl шукає файл config в теці $HOME/.kube. Ви можете вказати інший файл kubeconfig у змінній оточення KUBECONFIG або у значенні ключа --kubeconfig.
Тут ми розглянемо синтаксис команд kubectl, опис операторів та розберемо їх на прикладах. Докладніше про кожну команду, включаючи всі підтримувані прапорці та субкоманди, див. довідкову документацію kubectl.
Використовуйте наступний синтаксис для виконання команд kubectl у вашому терміналі:
kubectl [команда][ТИП][ІМʼЯ][прапорці]
де команда, ТИП, ІМʼЯ та прапорці визначаються наступним чином:
команда: Вказує операцію, яку ви хочете виконати з одним чи кількома ресурсами, наприклад create, get, describe, delete.
ТИП: Вказує тип ресурсу. Типи ресурсів нечутливі до регістру, і можна вказувати форми однини, множини чи абревіатури. Наприклад, наступні команди виводять той самий результат:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
ІМʼЯ: Вказує імʼя ресурсу. Імена чутливі до регістру. Якщо імʼя відсутнє, виводяться деталі для всіх ресурсів, наприклад kubectl get pods.
При виконанні операції над кількома ресурсами можна вказати кожен ресурс за типом та іменем або вказати один чи кілька файлів:
Щоб вказати ресурси за типом та іменем:
Щоб групувати ресурси, якщо всі вони одного типу: ТИП1 імʼя1 імʼя2 імʼя<#>. Приклад: kubectl get pod example-pod1 example-pod2.
Щоб вказати кілька типів ресурсів окремо: ТИП1/імʼя1 ТИП1/імʼя2 ТИП2/імʼя3 ТИП<#>/імʼя<#>. Приклад: kubectl get pod/example-pod1 replicationcontroller/example-rc1.
Щоб вказати ресурси за допомогою одного чи кількох файлів: -f файл1 -f файл2 -f файл<#>.
Використовуйте YAML замість JSON, оскільки YAML зазвичай є зручнішим для користувача, особливо для файлів конфігурації. Приклад: kubectl get -f ./pod.yaml
прапорці: Є необовʼязковими. Наприклад, ви можете використовувати прапорці -s або --server, щоб вказати адресу та порт сервера API Kubernetes.
Увага:
Прапорці, які ви вказуєте в командному рядку, перевизначають стандартні значення та будь-які відповідні змінні середовища.
Якщо вам потрібна допомога, виконайте команду kubectl help у вікні термінала.
Автентифікація та перевизначення простору імен в кластері
Типово kubectl спочатку визначатиме, чи він виконується в середині Podʼа, і отже, в кластері. Програма починає з перевірки наявності змінних середовища KUBERNETES_SERVICE_HOST та KUBERNETES_SERVICE_PORT, а також наявності файлу токена службового облікового запису за шляхом /var/run/secrets/kubernetes.io/serviceaccount/token. Якщо всі три умови виконуються, вважається, що використовується автентифікація в кластері.
Для забезпечення зворотної сумісності, якщо під час автентифікації в кластері встановлено змінну середовища POD_NAMESPACE, вона перевизначить типовий простір імен скориставшись токеном службового облікового запису. Це буде впливати на будь-які маніфести або інструменти, які покладаються на типовий простір імен.
Змінна середовища POD_NAMESPACE
Якщо змінна середовища POD_NAMESPACE встановлена, операції CLI для ресурсів з обмеженим простором імен будуть отримувати типове значення від цієї змінної. Наприклад, якщо значення змінної — seattle, kubectl get pods поверне Podʼи з простору імен seattle. Це тому, що Podʼи є ресурсом обмеженим простором імен, і ми не вказали команді простір імен в командному рядку. Ознайомтесь з виводом kubectl api-resources, щоб визначити, чи ресурс обмежений простіром імен чи ні.
Явне використання --namespace <value> перевизначає цю поведінку.
Як kubectl обробляє токени ServiceAccount
Якщо:
маємо файл токена службового облікового запису Kubernetes, змонтований за шляхом /var/run/secrets/kubernetes.io/serviceaccount/token, і
встановлено змінну середовища KUBERNETES_SERVICE_HOST, і
встановлено змінну середовища KUBERNETES_SERVICE_PORT, і
ви не вказуєте простір імен явно в командному рядку kubectl
тоді kubectl вважатиме, що він працює у вашому кластері. Інструмент kubectl знаходить простір імен цього службового облікового запису (це такий самий простір імен, що й у Podʼа) та діє відповідно до цього простору імен. Це відрізняється від того, що відбувається поза кластером; коли kubectl працює за межами кластера і ви не вказуєте простір імен, команда kubectl діє в просторі імен, встановленому для поточного контексту у вашій конфігурації клієнта. Щоб змінити типовий простір імен для kubectl, ви можете використовувати наступну команду:
Отримати документацію про різні ресурси, такі як Podʼи, вузли, сервіси і т. д.
expose
kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags]
Надати доступ ззовні до контролера реплікації, Service або Pod, як до нового Service Kubernetes.
get
kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]
Вивести список ресурсів.
kustomize
kubectl kustomize <dir> [flags] [options]
Вивести список ресурсів API, згенерованих з інструкцій у файлі kustomization.yaml. Аргумент повинен бути шляхом до теки, що містить файл, або URL репозиторію git з суфіксом шляху, який вказує на те ж саме відносно кореня репозиторію.
label
kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]
Додати або оновити мітки одного чи кількох ресурсів.
logs
kubectl logs POD [-c CONTAINER] [--follow] [flags]
Вивести логи контейнера у Podʼі.
options
kubectl options
Список глобальних параметрів командного рядка, які застосовуються до всіх команд.
patch
kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags]
Оновити одне чи кілька полів ресурсу за допомогою процесу стратегії обʼєднання патчів.
plugin
kubectl plugin [flags] [options]
Надає інструменти для взаємодії з втулками.
port-forward
kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]
Переспрямувати один або декілька локальних портів у Pod.
Експериментально: чекати на певний стан одного чи кількох ресурсів.
Щоб дізнатися більше про операції, що виконують команди, див. довідку kubectl.
Типи ресурсів
У наступній таблиці наведено список всіх підтримуваних типів ресурсів та їх скорочених аліасів.
(Цей вивід можна отримати за допомогою kubectl api-resources, він був актуальним на момент Kubernetes 1.25.0)
ІМʼЯ
СКОРОЧЕННЯ
ВЕРСІЯ API
ПРОСТІР ІМЕН
ТИП
bindings
v1
true
Binding
componentstatuses
cs
v1
false
ComponentStatus
configmaps
cm
v1
true
ConfigMap
endpoints
ep
v1
true
Endpoints
events
ev
v1
true
Event
limitranges
limits
v1
true
LimitRange
namespaces
ns
v1
false
Namespace
nodes
no
v1
false
Node
persistentvolumeclaims
pvc
v1
true
PersistentVolumeClaim
persistentvolumes
pv
v1
false
PersistentVolume
pods
po
v1
true
Pod
podtemplates
v1
true
PodTemplate
replicationcontrollers
rc
v1
true
ReplicationController
resourcequotas
quota
v1
true
ResourceQuota
secrets
v1
true
Secret
serviceaccounts
sa
v1
true
ServiceAccount
services
svc
v1
true
Service
mutatingwebhookconfigurations
admissionregistration.k8s.io/v1
false
MutatingWebhookConfiguration
validatingwebhookconfigurations
admissionregistration.k8s.io/v1
false
ValidatingWebhookConfiguration
customresourcedefinitions
crd,crds
apiextensions.k8s.io/v1
false
CustomResourceDefinition
apiservices
apiregistration.k8s.io/v1
false
APIService
controllerrevisions
apps/v1
true
ControllerRevision
daemonsets
ds
apps/v1
true
DaemonSet
deployments
deploy
apps/v1
true
Deployment
replicasets
rs
apps/v1
true
ReplicaSet
statefulsets
sts
apps/v1
true
StatefulSet
tokenreviews
authentication.k8s.io/v1
false
TokenReview
localsubjectaccessreviews
authorization.k8s.io/v1
true
LocalSubjectAccessReview
selfsubjectaccessreviews
authorization.k8s.io/v1
false
SelfSubjectAccessReview
selfsubjectrulesreviews
authorization.k8s.io/v1
false
SelfSubjectRulesReview
subjectaccessreviews
authorization.k8s.io/v1
false
SubjectAccessReview
horizontalpodautoscalers
hpa
autoscaling/v2
true
HorizontalPodAutoscaler
cronjobs
cj
batch/v1
true
CronJob
jobs
batch/v1
true
Job
certificatesigningrequests
csr
certificates.k8s.io/v1
false
CertificateSigningRequest
leases
coordination.k8s.io/v1
true
Lease
endpointslices
discovery.k8s.io/v1
true
EndpointSlice
events
ev
events.k8s.io/v1
true
Event
flowschemas
flowcontrol.apiserver.k8s.io/v1beta2
false
FlowSchema
prioritylevelconfigurations
flowcontrol.apiserver.k8s.io/v1beta2
false
PriorityLevelConfiguration
ingressclasses
networking.k8s.io/v1
false
IngressClass
ingresses
ing
networking.k8s.io/v1
true
Ingress
networkpolicies
netpol
networking.k8s.io/v1
true
NetworkPolicy
runtimeclasses
node.k8s.io/v1
false
RuntimeClass
poddisruptionbudgets
pdb
policy/v1
true
PodDisruptionBudget
podsecuritypolicies
psp
policy/v1beta1
false
PodSecurityPolicy
clusterrolebindings
rbac.authorization.k8s.io/v1
false
ClusterRoleBinding
clusterroles
rbac.authorization.k8s.io/v1
false
ClusterRole
rolebindings
rbac.authorization.k8s.io/v1
true
RoleBinding
roles
rbac.authorization.k8s.io/v1
true
Role
priorityclasses
pc
scheduling.k8s.io/v1
false
PriorityClass
csidrivers
storage.k8s.io/v1
false
CSIDriver
csinodes
storage.k8s.io/v1
false
CSINode
csistoragecapacities
storage.k8s.io/v1
true
CSIStorageCapacity
storageclasses
sc
storage.k8s.io/v1
false
StorageClass
volumeattachments
storage.k8s.io/v1
false
VolumeAttachment
Параметри виводу
Використовуйте наступні розділи для отримання інформації про те, як ви можете форматувати або сортувати вивід деяких команд. Докладні відомості щодо команд, які підтримують різні параметри виводу, див. в документації по kubectl.
Форматування виводу
Стандартний формат виводу для всіх команд kubectl – це читабельний текстовий формат. Щоб вивести деталі у вашому терміналі у певному форматі, ви можете додати параметр -o або --output до підтримуваної команди kubectl.
Синтаксис
kubectl [команда][ТИП][ІМʼЯ] -o <формат_виводу>
Залежно від операції kubectl, підтримуються наступні формати виводу:
Формат виводу
Опис
-o custom-columns=<специфікація>
Вивести таблицю, використовуючи розділений комою список власних стовпців.
-o custom-columns-file=<імʼя_файлу>
Вивести таблицю, використовуючи шаблон власних стовпців у файлі <імʼя_файлу>.
Вивести у текстовому форматі з будь-якою додатковою інформацією. Для Pod включно з імʼям вузла.
-o yaml
Вивести обʼєкт API у форматі YAML. KYAML є експериментальним діалектом YAML, специфічним для Kubernetes, і може читатись як YAML.
Приклад
Тут наступна команда виводить інформацію про Pod у форматі YAML:
kubectl get pod web-pod-13je7 -o yaml
Нагадування: Дивіться довідку kubectl для отримання деталей щодо підтримуваних форматів виводу для кожної команди.
Власні стовпці
Щоб визначити власні стовпці та виводити лише ті деталі, які вам потрібні у вигляді таблиці, ви можете використовувати опцію custom-columns. Ви можете вибрати визначення спеціальних стовпців під час складення параметрів команди або використовувати файл шаблону: -o custom-columns=<spec> або -o custom-columns-file=<filename>.
Приклади
З використанням параметрів в командному рядку:
kubectl get pods <pod-name> -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
З використанням файлу шаблону template.txt:
kubectl get pods <pod-name> -o custom-columns-file=template.txt
де template.txt містить:
NAME RSRC
metadata.name metadata.resourceVersion
Результати виводу будуть виглядати як для використання шаблону, так і для параметрів командного рядка, як:
NAME RSRC
submit-queue 610995
Стовпці на стороні сервера
kubectl підтримує отримання конкретної інформації в стовпці щодо обʼєктів від сервера. Це означає, що для будь-якого заданого ресурсу сервер поверне стовпці та рядки, що стосуються цього ресурсу, для показу його клієнту. Це дозволяє отримати послідовний, зручний для читання вивід для різних клієнтів, які використовуються для одного і того ж кластера, оскільки сервер ізолює деталі виведення.
Ця функція стандартно увімкнена. Щоб вимкнути її, додайте прапорець --server-print=false до команди kubectl get.
Приклади
Щоб вивести інформацію про стан Podʼа, використовуйте команду на зразок наступної:
kubectl get pods <pod-name> --server-print=false
Вивід буде подібний до:
NAME AGE
pod-name 1m
Сортування списку обʼєктів
Щоб вивести обʼєкти у відсортованому списку у вашому вікні термінала, ви можете додати прапорець --sort-by до команди kubectl. Впорядкуйте ваші обʼєкти, вказавши будь-яке числове чи рядкове поле з прапорцем --sort-by. Для вказання поля використовуйте вираз jsonpath.
Щоб вивести список Podʼів, відсортованих за назвами, зробіть наступне:
kubectl get pods --sort-by=.metadata.name
Приклади: Загальні операції
Використовуйте цей набір прикладів, щоб ознайомитися з тим, як використовувати найпоширеніші операції kubectl:
kubectl apply — Застосувати або оновити ресурс із файлу чи stdin.
# Створити сервіс, використовуючи визначення у файлі example-service.yaml.kubectl apply -f example-service.yaml
# Створити контролер реплікації, використовуючи визначення у файлі example-controller.yaml.kubectl apply -f example-controller.yaml
# Створити обʼєкти, які визначені у файлах з розширеннями .yaml, .yml, або .json у теці <directory>.kubectl apply -f <directory>
kubectl get — Показати відомості про один чи кілька ресурсів.
# Показати всі Podʼі у форматі звичайного тексту.kubectl get pods
# Показати всі Podʼі у форматі звичайного тексту та додаткову інформацію (наприклад, імʼя вузла).kubectl get pods -o wide
# Показати контролер реплікації із вказаним імʼям у форматі звичайного тексту. Порада: Ви можете скоротити та замінити тип ресурсу 'replicationcontroller' на скорочену назву 'rc'.kubectl get replicationcontroller <rc-name>
# Показати всі контролери реплікації та сервіси разом у форматі звичайного тексту.kubectl get rc,services
# Показати всі daemonsets у форматі звичайного тексту.kubectl get ds
# Показати всі Podʼи, які працюють на вузлі server01kubectl get pods --field-selector=spec.nodeName=server01
kubectl describe — Показати детальний стан одного чи кількох ресурсів, включаючи ті, які ще не ініціалізовані.
# Показати деталі вузла із імʼям <node-name>.kubectl describe nodes <node-name>
# Показати деталі Podʼа із імʼям <pod-name>.kubectl describe pods/<pod-name>
# Показати деталі всіх Podʼів, які керуються контролером реплікації із вказаним імʼям <rc-name>.# Памʼятайте: Будь-які Podʼи, які створює контролер реплікації, отримують префікс із імʼям контролера реплікації.kubectl describe pods <rc-name>
# Показати всі Podʼиkubectl describe pods
Примітка:
Команда kubectl get зазвичай використовується для отримання одного чи кількох ресурсів того ж типу ресурсу. Вона має багатий набір прапорців, що дозволяють налаштовувати формат виводу за допомогою прапорця -o або --output, наприклад. Ви можете вказати прапорець -w або --watch, щоб почати слідкування за оновленнями для певного обʼєкта. Команда kubectl describe більше фокусується на описі багатьох повʼязаних аспектів вказаного ресурсу. Вона може робити кілька викликів до API-сервера для побудови виводу для користувача. Наприклад, команда kubectl describe node отримує не тільки інформацію про вузол, але й підсумок Podʼів, які працюють на ньому, події, створені для вузла, і т. д.
kubectl delete — Видалити ресурси або з використанням файлу, або з stdin, або вказавши селектори міток, імена, селектори ресурсів чи самі ресурси.
# Видалити Pod, використовуючи тип та імʼя, вказане у файлі pod.yaml.kubectl delete -f pod.yaml
# Видалити всі Podʼи та сервіси із міткою '<label-key>=<label-value>'.kubectl delete pods,services -l <label-key>=<label-value>
# Видалити всі Podʼи, включаючи неініціалізовані.kubectl delete pods --all
kubectl exec — Виконати команду у контейнері Podʼа.
# Отримати вивід виконання команди 'date' у Podʼі <pod-name>. Типово вивід виконується з першого контейнера.kubectl exec <pod-name> -- date
# Отримати вивід виконання команди 'date' у контейнері <container-name> Podʼа <pod-name>.kubectl exec <pod-name> -c <container-name> -- date
# Отримати інтерактивний TTY та виконати /bin/bash у Podʼі <pod-name>. Типово вивід виконується з першого контейнера.kubectl exec -ti <pod-name> -- /bin/bash
kubectl logs — Вивести логи для контейнера у Podʼі.
# Отримати логи з Podʼа <pod-name>.kubectl logs <pod-name>
# Почати виведення логів у режимі стрічки з Podʼа <pod-name>. Це схоже на команду 'tail -f' у Linux.kubectl logs -f <pod-name>
kubectl diff — Переглянути відмінності запропонованих оновлень кластера.
# Відмінності ресурсів, включених у "pod.json".kubectl diff -f pod.json
# Відмінності, отримані з stdin.cat service.yaml | kubectl diff -f -
Приклади: Створення та використання втулків
Використовуйте цей набір прикладів, щоб ознайомитися із написанням та використанням втулків kubectl:
# створіть простий втулок будь-якою мовою та зробить файл виконуваним# так, щоб він починався префіксом "kubectl-"cat ./kubectl-hello
#!/bin/sh
# цей втулок виводить слова "hello world"echo"hello world"
Дайте втулку права на виконання:
chmod a+x ./kubectl-hello
# та перемістіть його в місце, яке є у вашому шляху (PATH)sudo mv ./kubectl-hello /usr/local/bin
sudo chown root:root /usr/local/bin
# Ви зараз створили та "встановили" втулок kubectl.# Ви можете почати використовувати цей втулок, викликаючи його з kubectl,# ніби це звичайна командаkubectl hello
hello world
# Ви можете "вилучити" втулок, видаливши його з теки у вашому# $PATH, де ви його розмістилиsudo rm /usr/local/bin/kubectl-hello
Щоб переглянути всі втулки, доступні для kubectl, використовуйте команду kubectl plugin list:
kubectl plugin list
Вивід буде схожий на:
The following kubectl-compatible plugins are available:
/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
/usr/local/bin/kubectl-bar
kubectl plugin list також попереджає вас про втулки, які не мають прав на виконання, або які перекриваються з іншими втулками; наприклад:
sudo chmod -x /usr/local/bin/kubectl-foo # вилучити права виконанняkubectl plugin list
The following kubectl-compatible plugins are available:
/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
- warning: /usr/local/bin/kubectl-foo identified as a plugin, but it is not executable
/usr/local/bin/kubectl-bar
error: one plugin warning was found
Ви можете думати про втулки як про можливість будувати більш складні функції на основі наявних команд kubectl:
cat ./kubectl-whoami
Наступні кілька прикладів передбачають, що ви вже зробили так, що kubectl-whoami має наступний вміст:
#!/bin/bash
# цей втулок використовує команду `kubectl config` для виведення# інформації про поточного користувача, на основі вибраного контекстуkubectl config view --template='{{ range .contexts }}{{ if eq .name "'$(kubectl config current-context)'" }}Current user: {{ printf "%s\n" .context.user }}{{ end }}{{ end }}'
Запуск вищезазначеної команди дає вам вивід із зазначенням користувача для поточного контексту у вашому файлі KUBECONFIG:
# зробіть файл виконавчимsudo chmod +x ./kubectl-whoami
# та перемістіть його у місце вказане в PATHsudo mv ./kubectl-whoami /usr/local/bin
kubectl whoami
Current user: plugins-user
Для отримання додаткової інформації про втулки, подивіться приклад CLI-втулка.
11.1 - Вступ до kubectl
kubectl — це інструмент командного рядка для взаємодії з кластерами Kubernetes за допомогою API Kubernetes. Використовуйте його для розгортання застосунків, перегляду ресурсів та управління робочими навантаженнями.
Хоча це керівництво зосереджене на використанні kubectl для декларативного управління застосунками в Kubernetes, воно також охоплює інші функції kubectl.
Набори команд
Більшість команд kubectl зазвичай відносяться до однієї з кількох категорій:
Тип
Використання
Опис
Декларативне управління ресурсами
Розгортання та операційна діяльність (наприклад, GitOps)
Декларативне управління ресурсами Kubernetes за допомогою конфігурації ресурсів
Імперативне управління ресурсами
Тільки розробка
Виконання команд для управління ресурсами Kubernetes за допомогою аргументів командного рядка та прапорців
Виведення стану робочого навантаження
Налагодження
Виведення інформації про робочі навантаження
Взаємодія з контейнерами
Налагодження
Exec, attach, cp, logs
Управління кластером
Операції з кластером
Виведення та блокування вузлів
Декларативне управління застосунками
Найкращим підходом для управління ресурсами є використання декларативних файлів, які називаються конфігурацією ресурсів, разом з командою kubectl Apply. Ця команда читає локальну (або віддалену) структуру файлів та змінює стан кластера, щоб відображати заявлені наміри.
Apply
Apply — є переважним механізмом для управління ресурсами в кластері Kubernetes.
Виведення стану робочих навантажень
Користувачам потрібно переглядати стан робочих навантажень.
Виведення підсумкового стану та інформації про ресурси
Виведення повного стану та інформації про ресурси
Виведення конкретних полів з ресурсів
Запит ресурсів, які відповідають міткам
Налагодження робочих навантажень
kubectl підтримує налагодження, надаючи команди для:
Виведення логів контейнерів
Виведення подій кластера
Виконання або приєднання до контейнера
Копіювання файлів з контейнерів в кластері у файлову систему користувача
Управління кластером
Час від часу користувачам може знадобитися виконати операції на вузлах кластера. kubectl підтримує команди для виведення робочих навантажень з вузла, щоб його можна було відключити або налагодити.
Парадні команди
Користувачі можуть вважати, що використання конфігурації ресурсів надто багатослівне для розробки та віддають перевагу роботі з кластером імперативно за допомогою робочого процесу, схожого на роботу з оболонкою. kubectl пропонує парадні (porcelain 1) команди для створення та модифікації ресурсів.
Генерування + створення ресурсів таких, як Deployment, StatefulSet, Service, ConfigMap й так далі
Встановлення полів ресурсів
Редагування (поточних) ресурсів в текстовому редакторі
Porcelain тільки для розробки
Парадні команди призначені тільки для розробки та не рекомендуються для використання в операційній діяльності.
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
-h, --help
довідка kubectl
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl scale — Встановлення нового розміру для deployment, replica set або контролера реплікацій
kubectl set — Встановлення конкретних функцій для обʼєктів
kubectl taint — Оновлення taint на одному або кількох вузлах
kubectl top — Показ використання ресурсів (CPU/памʼять)
kubectl uncordon — Позначення вузла як придатного для планування
kubectl version — Вивід інформації про версію клієнта та сервера
kubectl wait — Експериментальна функція: очікування на визначену умову для одного або кількох ресурсів
11.2.2 - kubectl annotate
Оновлення анотацій ресурсу
Огляд
Оновлення анотацій на одному або декількох ресурсах.
Всі обʼєкти Kubernetes підтримують можливість зберігати додаткові дані разом з обʼєктом у вигляді анотацій. Анотації — це пари ключ/значення, які можуть бути більшими за мітки та включати довільні рядкові значення, такі як структурований JSON. Інструменти та розширення системи можуть використовувати анотації для зберігання власних даних.
Спроба створити анотацію, яка вже існує, призведе до невдачі, якщо не вказано --overwrite. Якщо вказано --resource-version і не збігається з поточною версією ресурсу на сервері, виконання команди буде невдалим.
Для отримання повного списку підтримуваних ресурсів скористайтеся kubectl api-resources.
kubectl annotate [--overwrite](-f FILENAME | TYPE NAME)KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
Приклади
# Оновити Pod 'foo' з анотацією 'description' і значенням 'my frontend'# Якщо ту саму анотацію встановлено кілька разів, буде застосовано лише останнє значенняkubectl annotate pods foo description='my frontend'# Оновити Pod, ідентифікований за типом і іменем у "pod.json"kubectl annotate -f pod.json description='my frontend'# Оновити Pod 'foo' з анотацією 'description' і значенням 'my frontend running nginx', перезаписуючи будь-яке існуюче значенняkubectl annotate --overwrite pods foo description='my frontend running nginx'# Оновити всі Podʼи в просторі іменkubectl annotate pods --all description='my frontend running nginx'# Оновити Pod 'foo' лише у випадку, якщо ресурс не змінювався з версії 1kubectl annotate pods foo description='my frontend running nginx' --resource-version=1# Оновити Pod 'foo', видаливши анотацію з назвою 'description', якщо вона існує# Не потребує прапорця --overwritekubectl annotate pods foo description-
Параметри
--all
Вибрати всі ресурси у просторі імен вказаних типів ресурсів.
-A, --all-namespaces
Якщо true, перевірити вказану дію в усіх просторах імен.
--allow-missing-template-keys Типово: true
Якщо це значення встановлено, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-annotate"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--field-selector string
Селектор (запит поля) для фільтрації підтримує '=', '==' і '!=' (наприклад, --field-selector key1=value1,key2=value2). Сервер підтримує лише обмежену кількість запитів до полів кожного типу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для оновлення анотації
-h, --help
довідка annotate
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--list
Якщо true, показувати анотації для даного ресурсу.
--local
Якщо значення true, annotation НЕ буде звертатися до api-server, а виконуватиметься локально.
Якщо true, дозволити перезапис анотацій, інакше відхиляти оновлення анотацій, які перезаписують наявні анотації.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--resource-version string
Якщо значення не порожнє, оновлення анотації буде успішним, тільки якщо це поточна версія ресурсу для обʼєкта. Дійсно лише при зазначенні одного ресурсу.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Вивести підтримувані ресурси APIkubectl api-resources
# Вивести підтримувані ресурси API з більш детальною інформацієюkubectl api-resources -o wide
# Вивести підтримувані ресурси API відсортовані за колонкоюkubectl api-resources --sort-by=name
# Вивести підтримувані ресурси API, які мають простір іменkubectl api-resources --namespaced=true# Вивести підтримувані ресурси API, які не мають простору іменkubectl api-resources --namespaced=false# Вивести підтримувані ресурси API з конкретною APIGroupkubectl api-resources --api-group=rbac.authorization.k8s.io
Параметри
--api-group string
Обмеження на ресурси у вказаній групі API.
--cached
Використовувати кешований список ресурсів, якщо він доступний.
--categories strings
Обмеження на ресурси, які належать до вказаних категорій.
-h, --help
довідка api-resources
--namespaced Типово: true
Якщо false, будуть повернуті ресурси без простору імен, інакше стандартно будуть повернуті ресурси з простором імен.
--no-headers
При використанні стандартного або власного формату виводу стовпців не друкувати заголовки (заголовки стандартно друкуються).
-o, --output string
Формат виводу. Один з: (json, yaml, kyaml, name, wide).
--sort-by string
Якщо поле не порожнє, відсортувати список ресурсів за вказаним полем. Поле може бути як 'name', так і 'kind'.
--verbs strings
Обмежитися ресурсами, які підтримують вказані дієслова.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Виводить підтримувані версії API на сервері у вигляді "група/версія".
Огляд
Виводити підтримувані версії API на сервері у вигляді "група/версія".
kubectl api-versions
Приклади
# Вивести підтримуванні версії API kubectl api-versions
Параметри
-h, --help
довідка api-versions
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Застосовує конфігурацію до ресурсу за назвою файлу або з stdin.
Огляд
Застосовує конфігурацію до ресурсу за назвою файлу або stdin. Імʼя ресурсу має бути вказано обовʼязково. Ресурс буде створено, якщо його ще не існує. Щоб використовувати 'apply', завжди створюйте ресурс спочатку за допомогою 'apply' або 'create --save-config'.
Приймаються формати JSON і YAML.
Альфа-застереження: функціональність --prune ще не завершена. Не використовуйте, якщо ви не знаєте поточного стану. Див. https://issues.k8s.io/34274.
kubectl apply (-f FILENAME | -k DIRECTORY)
Приклади
# Застосувати конфігурацію з pod.json до Podkubectl apply -f ./pod.json
# Застосувати ресурси з теки, що містить kustomization.yaml — наприклад, dir/kustomization.yamlkubectl apply -k dir/
# Застосувати JSON, що передається через stdin до Podcat pod.json | kubectl apply -f -
# Застосувати конфігурацію з усіх файлів, які закінчуються на '.json'kubectl apply -f '*.json'# Примітка: --prune все ще знаходиться в альфа-версії# Застосувати конфігурацію з manifest.yaml, яка відповідає мітці app=nginx і видалити всі інші ресурси, які не знаходяться в файлі і відповідають мітці app=nginxkubectl apply --prune -f manifest.yaml -l app=nginx
# Застосувати конфігурацію з manifest.yaml і видалити всі інші config map, які не знаходяться в файліkubectl apply --prune -f manifest.yaml --all --prune-allowlist=core/v1/ConfigMap
Параметри
--all
Вибрати всі ресурси у просторі імен вказаних типів ресурсів.
--allow-missing-template-keys Типово: true
Якщо це значення встановлено, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
Має бути "background", "orphan" або "foreground". Вибирає стратегію каскадного видалення для залежних елементів (наприклад, Podʼів, створених Replication Controller). Стандартне значення — background.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для оновлення анотації
--force
Якщо true, негайно видалити ресурси з API і оминути належне видалення. Зверніть увагу, що негайне видалення деяких ресурсів може призвести до неузгодженості або втрати даних і потребує підтвердження.
--force-conflicts
Якщо значення true, серверне застосування (server-side apply) буде примусово вносити зміни всупереч конфліктам.
--grace-period int Типово: -1
Період часу в секундах, який дається ресурсу для належного завершення роботи. Ігнорується, якщо значення відʼємне. Встановлюється у 1 для негайного завершення роботи. Може бути встановлене у 0, тільки якщо --force має значення true (примусове видалення).
-h, --help
довідка apply
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--openapi-patch Типово: true
Якщо true, використовувати openapi для обчислення різниці, коли openapi присутній і ресурс можна знайти в специфікації openapi. В іншому випадку, повернутись до використання вбудованих типів.
Автоматично вирішувати конфлікти між зміненою та поточною конфігурацією, використовуючи значення зі зміненої конфігурації
--prune
Автоматично видаляти обʼєкти ресурсів, які не зʼявляються у конфігураціях і створюються за допомогою --save-config. Слід використовувати з -l або --all.
--prune-allowlist strings
Замінити список стандартний дозволів (allowlist) <group/version/kind> для --prune
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--server-side
Якщо значення true, apply виконується на сервері, а не на клієнті.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--subresource string
Якщо вказано, apply працюватиме на підресурсі запитуваного обʼєкта. Дозволено лише при використанні --server-side.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--timeout duration
Час очікування перед прийнятям рішення про відмову видалення, нуль означає визначення таймауту залежно від розміру обʼєкта
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--wait
Якщо true, очікувати, поки ресурси зникнуть, перш ніж повернутися. Очікує фіналізаторів.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Редагуйте останні анотації нещодавно застосованої конфігурації ресурсів/обʼектів
Огляд
Редагуйте останні анотації last-applied-configuration ресурсів зі стандартного редактора.
Команда edit-last-applied дозволяє безпосередньо редагувати будь-який API-ресурс, який ви можете отримати за допомогою інструментів командного рядка. Вона відкриє редактор, визначений вашими змінними середовища KUBE_EDITOR або EDITOR, або використає стандартний редактор — 'vi' для Linux або 'notepad' для Windows. Ви можете редагувати кілька обʼєктів, але зміни застосовуються поодинці. Команда приймає імена файлів або аргументи командного рядка, але файли, на які ви посилаєтесь, повинні бути збереженими версіями ресурсів.
Стандартний формат — YAML. Для редагування в JSON вкажіть "-o json".
Прапорець --windows-line-endings може бути використано для примусового завершення рядків в стилі Windows, інакше буде використано типовий варіант для вашої операційної системи.
У разі виникнення помилки під час оновлення буде створено тимчасовий файл на диску, який містить ваші незастосовані зміни. Найбільш поширеною помилкою під час оновлення ресурсу є зміна іншим редактором цього ресурсу на сервері. У такому випадку вам доведеться застосувати ваші зміни до новішої версії ресурсу або оновити вашу тимчасовий збережену копію, щоб включити останню версію ресурсу.
# Редагувати анотації last-applied-configuration за типом/імʼям у форматі YAMLkubectl apply edit-last-applied deployment/nginx
# Редагувати анотації last-applied-configuration за файлом у форматі JSONkubectl apply edit-last-applied -f deploy.yaml -o json
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--windows-line-endings
Стандартно використовується закінчення рядка, притаманне вашій платформі.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl apply — Застосувати конфігурацію до ресурсу за назвою файлу або з stdin
11.2.5.2 - kubectl apply set-last-applied
Встановлюйте last-applied-configuration анотацію на наявні обʼєкти, щоб відповідати вмісту файлу
Огляд
Встановлює останню last-applied-configuration анотацію, встановивши її, щоб відповідати вмісту файлу. Це призводить до того, що last-applied-configuration оновлюється так, ніби 'kubectl apply -f<file> ' було запущено без оновлення будь-яких інших частин обʼєкта.
kubectl apply set-last-applied -f FILENAME
Приклади
# Встановити last-applied-configuration ресурсу, щоб відповідати вмісту файлуkubectl apply set-last-applied -f deploy.yaml
# Виконати set-last-applied для кожного файлу конфігурації у директоріїkubectl apply set-last-applied -f path/
# Встановити last-applied-configuration ресурсу, щоб відповідати вмісту файлу; створить анотацію, якщо вона ще не існуєkubectl apply set-last-applied -f deploy.yaml --create-annotation=true
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--create-annotation
Створить анотації 'last-applied-configuration', якщо поточні обʼєкти не мають таких анотацій
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, які містять анотації last-applied-configuration
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl apply — Застосувати конфігурацію до ресурсу за назвою файлу або з stdin
11.2.5.3 - kubectl apply view-last-applied
Переглянути останні анотації last-applied-configuration для ресурсу/обʼєкту
Огляд
Переглянути останні застосовані конфігурації за типом/іменем або файлом.
Стандартно вивід буде зроблено у stdout у форматі YAML. Ви можете змінити формат виводу за допомогою опції -o.
# Переглянути анотації last-applied-configuration за типом/імʼям у форматі YAMLkubectl apply view-last-applied deployment/nginx
# Переглянути анотації last-applied-configuration за файлом у форматі JSONkubectl apply view-last-applied -f deploy.yaml -o json
Параметри
--all
Вибрати всі ресурси у просторі імен вказаних типів ресурсів.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що містить анотацію last-applied-configuration
-h, --help
довідка view-last-applied
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
-o, --output string Типово: "yaml"
Формат виводу. Має буьти одним з (yaml, json)
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl apply — Застосувати конфігурацію до ресурсу за назвою файлу або з stdin
11.2.6 - kubectl attach
Приєднується до працюючого контейнера
Огляд
Приєднатися до процесу, який вже запущено всередині існуючого контейнера.
kubectl attach (POD | TYPE/NAME) -c CONTAINER
Приклади
# Отримати вивід з запущеного Podʼа mypod; використовуйте анотацію 'kubectl.kubernetes.io/default-container'# для вибору контейнера, до якого потрібно приєднатися, або буде обрано перший контейнер у Podʼіkubectl attach mypod
# Отримати вивід з контейнера ruby-container з Podʼа mypodkubectl attach mypod -c ruby-container
# Перемкнутися в режим raw terminal; відправляє stdin в 'bash' у контейнері ruby-container з Podʼа mypod# і відправляє stdout/stderr з 'bash' назад до клієнтаkubectl attach mypod -c ruby-container -i -t
# Отримати вивід з першого Podʼа replica set з назвою nginxkubectl attach rs/nginx
Параметри
-c, --container string
Назва контейнера. Якщо не вказано, використовуйте анотацію kubectl.kubernetes.io/default-container для вибору контейнера, який буде приєднано, інакше буде обрано перший контейнер у Pod
--detach-keys string Default: "ctrl-p,ctrl-q"
Перевизначити послідовність клавіш для відключення контейнера
-h, --help
довідка attach
--pod-running-timeout duration Типово: 1m0s
Тривалість часу (наприклад, 5s, 2m або 3h, більше нуля) для очікування, поки не запрацює хоча б один Pod
-q, --quiet
Виводити дані лише з віддаленого сеансу
-i, --stdin
Передайте stdin в контейнер
-t, --tty
Stdin є TTY
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl auth reconcile — Узгоджує правила для обʼєктів ролі RBAC, привʼязки ролей, кластерної ролі та привʼязки кластерної ролі
kubectl auth whoami — Експериментально: Перевірити атрибути власного субʼєкта
11.2.7.1 - kubectl auth can-i
Перевіряє, чи дія дозволена
Огляд
Перевіряє, чи дозволена дія.
VERB — дієслово API Kubernetes, таке як 'get', 'list', 'watch', 'delete' тощо. TYPE — це ресурс Kubernetes. Скорочення та групи будуть розпізнані. NONRESOURCEURL — часткова URL-адреса, яка починається з "/". NAME — назва певного ресурсу Kubernetes. Ця команда чудово поєднується з імпровізацією. Дивіться глобальний прапорець --as.
# Перевірити, чи можу я створювати Podʼи в будь-якому просторі іменkubectl auth can-i create pods --all-namespaces
# Перевірити, чи можу я переглядати списки deployment у моєму поточному просторі іменkubectl auth can-i list deployments.apps
# Перевірити, чи може служюовий обліковий запис "foo" у просторі імен "dev" переглядати перелік Podʼів# у просторі імен "prod"# Ви повинні мати дозвіл на використання імперсонації для глобальної опції "--as"kubectl auth can-i list pods --as=system:serviceaccount:dev:foo -n prod
# Перевірити, чи можу я виконувати всі дії в моєму поточному просторі імен ("*" означає все)kubectl auth can-i '*''*'# Перевірити, чи можу я отримати завдання з назвою "bar" у просторі імен "foo"kubectl auth can-i list jobs.batch/bar -n foo
# Перевірити, чи можу я читати логи Podʼівkubectl auth can-i get pods --subresource=log
# Перевірити, чи можу я отримати доступ до URL /logs/kubectl auth can-i get /logs/
# Перевірити, чи можу я затвердити certificates.k8s.iokubectl auth can-i approve certificates.k8s.io
# Переглянути всі дозволені дії в просторі імен "foo"kubectl auth can-i --list --namespace=foo
Параметри
-A, --all-namespaces
Якщо true, перевірити вказану дію в усіх просторах імен.
-h, --help
Довідка can-i
--list
Якщо true, виводить усі дозволені дії.
--no-headers
Якщо true, виводить дозволені дії без заголовків
-q, --quiet
Якщо true, заборонити вивід і просто повернути код результату.
--subresource string
SubResource, такі як pod/log або deployment/scale
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Узгодження правил для ролі RBAC, привʼязки ролі, ролі кластера та обʼєктів привʼязки ролі кластера.
Огляд
Узгодження правил для ролі RBAC, привʼязки ролі, ролі кластера та обʼєктів привʼязки ролі кластера.
Створюються відсутні обʼєкти, а для обʼєктів простору імен створюється відповідний простір імен, якщо потрібно.
Наявні ролі буде оновлено з урахуванням дозволів вхідних обʼєктів і вилучено зайві дозволи, якщо вказано --remove-extra-permissions.
Існуючі привʼязки буде оновлено до обʼєктів вхідних даних і вилучено зайві обʼєкти, якщо вказано --remove-extra-subjects.
Це бажано застосовувати для ресурсів RBAC, щоб забезпечити семантично усвідомлене обʼєднання правил і обʼєктів.
kubectl auth reconcile -f FILENAME
Приклади
# Узгодження ресурсів RBAC з файлуkubectl auth reconcile -f my-rbac-rules.yaml
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для узгодження
-h, --help
Довідка reconcile
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--remove-extra-permissions
Якщо true, видаляє зайві дозволи, додані до ролей
--remove-extra-subjects
Якщо true, видаляє зайвих субʼєктів, доданих до rolebindings
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Експериментально: Перевірте, хто ви і які у вас атрибути
Огляд
Експериментально: Перевірте, хто ви і які у вас атрибути (групи, додаткові).
Ця команда корисна для ознайомлення з поточними атрибутами користувача, особливо якщо у кластері Kubernacle увімкнено динамічну автентифікацію, наприклад, вебхук, проксі-авторизацію або OIDC-провайдер, увімкнено в кластері Kubernetes.
kubectl auth whoami
Приклади
# Отримати атрибути вашого субʼєктаkubectl auth whoami
# Отримати атрибути вашого субʼєкта у форматі JSONkubectl auth whoami -o json
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Автоматичне масштабування deployment, replica set, stateful set або replication controller
Огляд
Створює автомасштабувальник, який автоматично вибирає і встановлює кількість Podʼів, що запускаються в кластері Kubernetes. Команда спочатку спробує використати API autoscaling/v2, а у разі помилки повернеться до API autoscaling/v1.
Шукає deployment, replica set, stateful set або контролер реплікації за назвою і створює автомасштабувальник, який використовує даний ресурс як зразок. Автомасштабувальник може автоматично збільшувати або зменшувати кількість розгорнутих у системі Podʼів за потребою.
kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME)[--min=MINPODS] --max=MAXPODS [--cpu=CPU][--memory=MEMORY]
Приклади
# Автоматично масштабувати deployment "foo" з кількістю Podʼів від 2 до 10,# цільове використання CPU не вказано, тому буде використано стандартну# політику автосмасштабуванняkubectl autoscale deployment foo --min=2 --max=10# Автоматично масштабувати контролер реплікації "foo" з кількістю Podʼів від# 1 до 5, цільове використання CPU на рівні 80%kubectl autoscale rc foo --max=5 --cpu=80%
# Автоматично масштабувати deployment "bar" з кількістю Podʼів від 3 до 6, цільове середнє використання CPU на рівні 500m та памʼяті 200Mikubectl autoscale deployment bar --min=3 --max=6 --cpu=500m --memory=200Mi
# Автоматично масштабувати deployment "bar" з кількістю Podʼів від 2 до 8, цільове використання CPU на рівні 60% та памʼяті 70%kubectl autoscale deployment bar --min=3 --max=6 --cpu=60% --memory=70%
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--cpu string
Цільове використання процесора для всіх подів. Якщо вказано у відсотках (наприклад, "70%" для 70% від запитуваного CPU), буде вказано середнє значення використання. Якщо вказано як кількість (наприклад, "500m" для 500 міліCPU), це буде середнє значення. Значення без одиниць виміру розглядається як кількість, одиницею якої є miliCPU (наприклад, "500" — це "500m").
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для автомасштабування
-h, --help
Довідка autoscale
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--max int32 Типово: -1
Верхня межа для кількості Podʼів, яку може встановити автомасштабування. Обовʼязково.
--memory string
Цільове використання памʼяті для всіх podʼів. Коли вказано у відсотках (наприклад, "60%" для 60% запитуваної памʼяті), воно буде націлене на середнє використання. Коли вказано як кількість (наприклад, "200Mi" для 200 MiB, "1Gi" для 1 GiB), воно буде націлене на середнє значення. Значення без одиниць розглядається як кількість з меібібайтами як одиницею (наприклад, "200" є "200Mi").
--min int32 Типово: -1
Нижня межа для кількості Podʼів, яка може бути встановлена автомасштабуванням. Якщо не вказано або значення відʼємне, сервер застосує стандартне значення.
--name string
Імʼя для новоствореного обʼєкта. Якщо не вказано, буде використано імʼя вхідного ресурсу.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl certificate approve дозволяє адміністратору кластера затвердити запит на підписання сертифіката (CSR). Ця дія вказує контролеру підпису сертифікатів видати сертифікат запитувачу з атрибутами, вказаними у CSR.
ЗАСТЕРЕЖЕННЯ: Залежно від запитуваних атрибутів, виданий сертифікат потенційно може надати заявнику доступ до ресурсів кластера або автентифікацію в якості запитуваного облікового запису. Перш ніж затверджувати CSR, переконайтеся, що ви розумієте, що може робити підписаний сертифікат.
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для оновленння
--force
Оновіть CSR, навіть якщо його вже затверджено.
-h, --help
Довідка approve
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl certificate deny дозволяє адміністратору кластера відхилити запит на підписання сертифіката (CSR). Ця дія вказує контролеру підписання сертифікатів не видавати сертифікат запитувачу.
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для оновленння
--force
Оновіть CSR, навіть якщо його вже відхилено.
-h, --help
Довідка deny
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Виведіть адреси панелі управління та сервісів з міткою kubernetes.io/cluster-service=true. Для подальшого налагодження та діагностики проблем кластера використовуйте 'kubectl cluster-info dump'.
kubectl cluster-info [flags]
Приклади
# Вивести адресу панелі управління та сервісів кластераkubectl cluster-info
Параметри
-h, --help
Довідка cluster-info
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Виводить інформацію про кластер, придатну для налагодження та діагностики
Огляд
Виведення інформації про кластер, придатної для налагодження та діагностики проблем кластера. Стандартно все виводиться до stdout. За бажанням ви можете вказати теку за допомогою --output-directory. Якщо ви вкажете теку, Kubernetes створить набір файлів у цій теці. Типово команда виводить дані лише у поточному просторі імен та просторі імен "kube-system", але ви можете перемикнутися на інший простір імен за допомогою прапорця --namespaces або вказати --all-namespaces для виводу даних з усіх просторів імен.
Команда також виводить логи усіх pods у кластері; ці логи виводяться до різних тек, залежно від простору імен та назви pod.
kubectl cluster-info dump [flags]
Приклади
# Вивести поточний стан кластера до stdoutkubectl cluster-info dump
# Вивести поточний стан кластера до /path/to/cluster-statekubectl cluster-info dump --output-directory=/path/to/cluster-state
# Вивести всі простори імен до stdoutkubectl cluster-info dump --all-namespaces
# Вивести набір просторів імен до /path/to/cluster-statekubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state
Параметри
-A, --all-namespaces
Якщо true, перевірити вказану дію в усіх просторах імен.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
Куди виводити файли. Якщо порожньо або '-' використовує stdout, інакше створює ієрархію тек у цій теці
--pod-running-timeout duration Типово: 20s
Тривалість часу (наприклад, 5s, 2m або 3h, більше нуля) для очікування, поки не запрацює хоча б один Pod
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Виводить код завершення команд для вказаного командного інтерпретатора (bash, zsh, fish або powershell)
Огляд
Вивести код завершення команд для вказаного командного інтерпретатора (bash, zsh, fish або powershell). Щоб забезпечити інтерактивне завершення команд kubectl, код оболонки слід опрацювати. Це можна зробити, отримавши його з .bash_profile.
Докладні інструкції про те, як це зробити, можна знайти тут:
Примітка для користувачів zsh: [1] завершення zsh підтримуються лише у версіях zsh >= 5.2.
kubectl completion SHELL
Приклади
# Встановлення bash completion на macOS за допомогою homebrew## Якщо використовується Bash 3.2, включений в macOSbrew install bash-completion
## або, якщо використовується Bash 4.1+brew install bash-completion@2
## Якщо kubectl встановлено через homebrew, це повинно почати працювати негайно## Якщо ви встановили іншими способами, можливо, вам потрібно додати completion до вашої теки completionkubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl
# Встановлення bash completion на Linux## Якщо bash-completion не встановлено на Linux, встановіть пакет 'bash-completion'## через менеджер пакетів вашого дистрибутива.## Завантажте код завершення kubectl для bash в поточну оболонкуsource <(kubectl completion bash)## Запишіть код завершення bash у файл і підключіть його з .bash_profilekubectl completion bash > ~/.kube/completion.bash.inc
printf"
# kubectl shell completion
source '$HOME/.kube/completion.bash.inc'
" >> $HOME/.bash_profile
source$HOME/.bash_profile
# Завантажте код завершення kubectl для zsh[1] в поточну оболонкуsource <(kubectl completion zsh)# Налаштуйте код завершення kubectl для zsh[1], щоб автоматично завантажуватися при запускуkubectl completion zsh > "${fpath[1]}/_kubectl"# Завантажте код завершення kubectl для fish[2] в поточну оболонкуkubectl completion fish |source# Щоб завантажити завершення для кожної сесії, виконайте один раз:kubectl completion fish > ~/.config/fish/completions/kubectl.fish
# Завантажте код завершення kubectl для powershell в поточну оболонкуkubectl completion powershell | Out-String | Invoke-Expression
# Налаштуйте код завершення kubectl для powershell, щоб запускатися при старті## Збережіть код завершення в сценарій і виконайте в профіліkubectl completion powershell > "$HOME\.kube\completion.ps1"Add-Content $PROFILE". '$HOME\.kube\completion.ps1'"## Виконайте код завершення в профіліAdd-Content $PROFILE"if (Get-Command kubectl -ErrorAction SilentlyContinue) {
kubectl completion powershell | Out-String | Invoke-Expression
}"## Додайте код завершення безпосередньо в сценарій $PROFILEkubectl completion powershell >> $PROFILE
Параметри
-h, --help
Довідник completion
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Змінюйте файли kubeconfig за допомогою субкоманд на кшталт "kubectl config set current-context my-context".
Порядок завантаження відповідає наступним правилам:
Якщо встановлено прапорець --kubeconfig, то завантажується лише цей файл. Прапорець може бути встановлений лише один раз і злиття не відбувається.
Якщо встановлено змінну середовища $KUBECONFIG, то вона використовується як список шляхів (звичайні правила розмежування шляхів у вашій системі). Ці шляхи обʼєднуються. Коли значення змінюється, воно змінюється у файлі, який визначає строфу. Коли значення створюється, воно створюється у першому існуючому файлі. Якщо у ланцюжку не існує жодного файлу, то створюється останній файл у списку.
В іншому випадку використовується ${HOME}/.kube/config і злиття не відбувається.
kubectl config SUBCOMMAND
Параметри
-h, —-help
Довідник config
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, —-namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, —-version=raw виводить інформацію про версію та завершує роботу; —-version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Видалити кластер minikube з kubeconfigkubectl config delete-cluster minikube
-h, --help
Довідка delete-cluster
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Видалити контекст для кластера minikubekubectl config delete-context minikube
Параметри
-h, --help
Довідка delete-context
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Вивести перелік кластерів, які відомі kubectlkubectl config get-clusters
Параметри
-h, --help
Довідка get-clusters
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Показати один або декілька контекстів з файлу kubeconfig
Огляд
Показати один або декілька контекстів з файлу kubeconfig.
kubectl config get-contexts [(-o|--output=)name)]
Приклади
# Показати перелік всіх контекстів з файлу kubeconfigkubectl config get-contexts
# Показати опис одного контексту з файлу kubeconfigkubectl config get-contexts my-context
Параметри
-h, --help
Довідка get-contexts
--no-headers
При використанні стандартного або власного формату виводу стовпців не друкувати заголовки (заголовки стандартно друкуються).
-o, --output string
Формат виводу. Один з: (name).
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Перелік користувачів, відомих kubectlkubectl config get-users
Параметри
-h, --help
Довідка get-users
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Перейменуйте контекст 'old-name' на 'new-name' у вашому файлі kubeconfigkubectl config rename-context old-name new-name
Параметри
-h, --help
Довідка rename-context
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Встановлює індивідуальне значення у файлі kubeconfig
Огляд
Встановлює індивідуальне значення у файлі kubeconfig.
PROPERTY_NAME — це імʼя, розділене крапками, де кожен токен представляє або імʼя атрибута, або ключ map. Ключі map можуть не містити крапок.
PROPERTY_VALUE — нове значення, яке ви хочете встановити. Двійкові поля, такі як 'certificate-authority-data', очікують рядок у кодуванні base64, якщо не використовується прапорець --set-raw-bytes.
Якщо вказати імʼя атрибута, яке вже існує, нові поля буде додано до наявних значень.
kubectl config set PROPERTY_NAME PROPERTY_VALUE
Приклади
# Встановити поле server для кластера my-cluster на https://1.2.3.4kubectl config set clusters.my-cluster.server https://1.2.3.4
# Встановити поле certificate-authority-data для кластера my-clusterkubectl config set clusters.my-cluster.certificate-authority-data $(echo"cert_data_here"| base64 -i -)# Встановити поле cluster в контексті my-context на my-clusterkubectl config set contexts.my-context.cluster my-cluster
# Встановити поле client-key-data для користувача cluster-admin з використанням опції --set-raw-byteskubectl config set users.cluster-admin.client-key-data cert_data_here --set-raw-bytes=true
Параметри
-h, --help
Довідка set
--set-raw-bytes tristate[=true]
При записі []byte PROPERTY_VALUE, записувати заданий рядок так як є, без декодування base64.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Якщо вказати назву, яка вже існує, нові поля буде обʼєднано з наявними значеннями для цих полів.
kubectl config set-cluster NAME [--server=server][--certificate-authority=path/to/certificate/authority][--insecure-skip-tls-verify=true][--tls-server-name=example.com]
Приклади
# Встановити тільки поле server для запису кластера e2e без змін інших значеньkubectl config set-cluster e2e --server=https://1.2.3.4
# Вбудувати дані CA для запису кластера e2ekubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt
# Вимкнути перевірку сертифікатів для запису кластера e2ekubectl config set-cluster e2e --insecure-skip-tls-verify=true# Встановити власне імʼя сервера TLS для перевірки для запису кластера e2ekubectl config set-cluster e2e --tls-server-name=my-cluster-name
# Встановити URL проксі для запису кластера e2ekubectl config set-cluster e2e --proxy-url=https://1.2.3.4
Параметри
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--embed-certs tristate[=true]
embed-certs для запису кластера в kubeconfig
-h, --help
Довідка set-cluster
--insecure-skip-tls-verify tristate[=true]
insecure-skip-tls-verify для запису кластера в kubeconfig
--proxy-url string
proxy-url для запису кластера в kubeconfig
--server string
server для запису кластера в kubeconfig
--tls-server-name string
tls-server-name ля запису кластера в kubeconfig
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
# Встановіть поле користувача у записі контексту gce, не змінюючи інших значеньkubectl config set-context gce --user=cluster-admin
Параметри
--cluster string
cluster для запису контексту в kubeconfig
--current
Змінити поточний контекст
-h, --help
Довідка set-context
-n, --namespace string
namespace для запису контексту в kubeconfig
--user string
user для запису контексту в kubeconfig
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа./p>
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Токен на предʼявника та базова авторизація є взаємозаперечними.
kubectl config set-credentials NAME [--client-certificate=path/to/certfile][--client-key=path/to/keyfile][--token=bearer_token][--username=basic_user][--password=basic_password][--auth-provider=provider_name][--auth-provider-arg=key=value][--exec-command=exec_command][--exec-api-version=exec_api_version][--exec-arg=arg][--exec-env=key=value]
Приклади
# Встановити тільки поле "client-key" для запису "cluster-admin"# без змін інших значеньkubectl config set-credentials cluster-admin --client-key=~/.kube/admin.key
# Встановити базову автентифікацію для запису "cluster-admin"kubectl config set-credentials cluster-admin --username=admin --password=uXFGweU9l35qcif
# Вбудувати дані сертифіката клієнта для запису "cluster-admin"kubectl config set-credentials cluster-admin --client-certificate=~/.kube/admin.crt --embed-certs=true# Увімкнути провайдера автентифікації Google Compute Platform для запису "cluster-admin"kubectl config set-credentials cluster-admin --auth-provider=gcp
# Увімкнути провайдера автентифікації OpenID Connect для запису "cluster-admin" з додатковими аргументамиkubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-id=foo --auth-provider-arg=client-secret=bar
# Видалити значення конфігурації "client-secret" для провайдера автентифікації OpenID Connect для запису "cluster-admin"kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-secret-
# Увімкнути новий втулок автентифікації exec для запису "cluster-admin"kubectl config set-credentials cluster-admin --exec-command=/path/to/the/executable --exec-api-version=client.authentication.k8s.io/v1beta1
# Увімкнути новий втулок автентифікації exec для запису "cluster-admin" з інтерактивним режимомkubectl config set-credentials cluster-admin --exec-command=/path/to/the/executable --exec-api-version=client.authentication.k8s.io/v1beta1 --exec-interactive-mode=Never
# Визначити нові аргументи для втулка автентифікації exec для запису "cluster-admin"kubectl config set-credentials cluster-admin --exec-arg=arg1 --exec-arg=arg2
# Створити або оновити змінні середовища для втулка автентифікації exec для запису "cluster-admin"kubectl config set-credentials cluster-admin --exec-env=key1=val1 --exec-env=key2=val2
# Видалити змінні середовища для втулка автентифікації exec для запису "cluster-admin"kubectl config set-credentials cluster-admin --exec-env=var-to-remove-
Параметри
--auth-provider string
Провайдер авторизації/автентифікації для запису користувача у kubeconfig
--auth-provider-arg strings
аргументи 'key=value' для провайдера авторизації/автентифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для запису користувача у kubeconfig
--client-key string
Шлях до файлу ключа клієнта для запису користувача у kubeconfig
--embed-certs tristate[=true]
Додати клієнтський сертифікат/ключ для входу користувача у kubeconfig
--exec-api-version string
Версія API втулка exec credential для запису користувача у kubeconfig
--exec-arg strings
Нові аргументи команди втулка exec credential для запису користувача у kubeconfig
--exec-command string
Команди втулка exec credential для запису користувача у kubeconfig
--exec-env strings
'key=value' значеня зміних оточення для втулка exec credential
--exec-interactive-mode string
Режим InteractiveMode втулка exec credentials для запису користувача у kubeconfig
--exec-provide-cluster-info tristate[=true]
ProvideClusterInfo втулка exec credentials для запису користувача у kubeconfig
-h, --help
Довідка set-credentials
--password string
Пароль для запису користувача у kubeconfig
--token string
Токен для запису користувача у kubeconfig
--username string
Імʼя користувачадля запису користувача у kubeconfig
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
PROPERTY_NAME — це імʼя, розділене крапками, де кожен токен представляє або імʼя атрибута, або ключ map. Ключі map можуть не містити крапок.
kubectl config unset PROPERTY_NAME
Приклади
# Видалити поточний контекстkubectl config unset current-context
# Видалити простір імен у контексті fookubectl config unset contexts.foo.namespace
Параметри
-h, --help
Довідка unset
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Використання контексту для кластера minikubekubectl config use-context minikube
Параметри
-h, --help
Довідка use-context
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Показує обʼєднану конфігурацію kubeconfig або вказаний файл kubeconfig
Огляд
Показує обʼєднану конфігурацію kubeconfig або вказаний файл kubeconfig.
Ви можете використовувати --output jsonpath={...} для вибору конкретних полів конфігурації.
kubectl config view [options]
Приклади
# Показати обʼєднані налаштування kubeconfigkubectl config view
# Показати обʼєднані налаштування kubeconfig, необроблені дані сертифіката та показати секретиkubectl config view --raw
# Отримати пароль для користувача e2ekubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--flatten
Спростити отриманий файл kubeconfig до окремого вихідного файлу (корисно для створення переносних файлів kubeconfig)
-h, --help
Довідка view
--merge tristate[=true] Типово: true
Обʼєднати повну ієрархію файлів kubeconfig
--minify
Вилучити з виводу всю інформацію, яка не використовується в current-context
Показувати необроблені байт-дані та конфіденційні дані
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Позначити вузол "foo" як не придатний для плануванняkubectl cordon foo
Параметри
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
-h, --help
Довідка cordon
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# !!!Увага!!!# Вимагає наявності двійкового файлу 'tar' у вашому контейнері.# Якщо 'tar' відсутній, 'kubectl cp' не вдасться виконати.## Для розширених випадків використання, таких як символічні посилання, розширення# шаблонів або збереження режиму файлу, розгляньте можливість використання 'kubectl exec'.# Скопіювати локальний файл /tmp/foo до /tmp/bar у віддаленому Pod в просторі імен <some-namespace>tar cf - /tmp/foo | kubectl exec -i -n <some-namespace> <some-pod> -- tar xf - -C /tmp/bar
# Скопіювати /tmp/foo з віддаленого Pod до /tmp/bar локальноkubectl exec -n <some-namespace> <some-pod> -- tar cf - /tmp/foo | tar xf - -C /tmp/bar
# Скопіювати локальну теку /tmp/foo_dir до /tmp/bar_dir у віддаленому Pod в стандартному просторі іменkubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
# Скопіювати локальний файл /tmp/foo до /tmp/bar у віддаленому Pod у конкретному контейнеріkubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
# Скопіювати локальний файл /tmp/foo до /tmp/bar у віддаленому Pod в просторі імен <some-namespace>kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar
# Скопіювати /tmp/foo з віддаленого Pod до /tmp/bar локальноkubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
Параметри
-c, --container string
Назва контейнера. Якщо не вказано, використовуйте анотацію kubectl.kubernetes.io/default-container для вибору контейнера, який буде приєднано, інакше буде обрано перший контейнер у Pod
-h, --help
Довідка cp
--no-preserve
Права власності та дозволи на скопійований файл/теку не будуть збережені в контейнері
--retries int
Вказати кількість спроб для завершення операції копіювання з контейнера. Вкажіть 0 для вимкнення або будь-яке відʼємне значення для нескінченної кількості спроб. Стандартне значення — 0 (без повторних спроб).
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Створити Pod з використанням даних з pod.jsonkubectl create -f ./pod.json
# Створити Pod на основі JSON, переданого у стандартний ввідcat pod.json | kubectl create -f -
# Редагувати дані у registry.yaml у форматі JSON, а потім створити ресурс з використанням відредагованих данихkubectl create -f registry.yaml --edit -o json
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--edit
Відредагувати ресурс API перед створенням
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що використовуються для створення ресурсу
-h, --help
Довідка create
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Необроблений URI для POST на сервер. Використовує транспорт, вказаний у файлі kubeconfig.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--windows-line-endings
Має значення лише якщо --edit=true. Стандартно використовується закінчення рядка, притаманне вашій платформі.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename][--dry-run=server|client|none]
Приклади
# Створити кластерну роль з назвою "pod-reader", яка дозволяє користувачу виконувати "get", "watch" та "list" для Podʼівkubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods
# Створити кластерну роль з назвою "pod-reader" із вказаними іменами ресурсівkubectl create clusterrole pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod
# Створити кластерну роль з назвою "foo" із вказаною API Groupkubectl create clusterrole foo --verb=get,list,watch --resource=rs.apps
# Створити кластерну роль з назвою "foo" із вказаним субресурсомkubectl create clusterrole foo --verb=get,list,watch --resource=pods,pods/status
# Створити кластерну роль з назвою "foo" із вказаним NonResourceURLkubectl create clusterrole "foo" --verb=get --non-resource-url=/logs/*
# Створити кластерну роль з назвою "monitoring" із вказаним правилом агрегаціїkubectl create clusterrole monitoring --aggregation-rule="rbac.example.com/aggregate-to-monitoring=true"
Селектор міток агрегації для обʼєднання ClusterRoles.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-h, --help
Довідка clusterrole
--non-resource-url strings
Частковий URL, до якого користувач повинен мати доступ.
Ресурс у білому списку, до якого застосовується правило, повторіть цей прапорець для кожного елемента
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--verb strings
Дієслово, яке застосовується до ресурсів, що містяться в правилі
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створення привʼязки кластерної ролі для певної кластерної ролі
Огляд
Створення привʼязки кластерної ролі для певної кластерної ролі.
kubectl create clusterrolebinding NAME --clusterrole=NAME [--user=username][--group=groupname][--serviceaccount=namespace:serviceaccountname][--dry-run=server|client|none]
Приклади
# Створити привʼязування кластерної ролі для user1, user2 та group1, використовуючи кластерну роль cluster-adminkubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--clusterrole string
ClusterRole на яку повинна посилатися привʼязка ClusterRoleBinding
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--group strings
Групи для привʼязки до кластерної ролі. Прапорець можна повторити, щоб додати кілька груп.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--serviceaccount strings
Службові облікові записи для привʼязки до кластерної ролі, у форматі <простір імен>:<імʼя>. Прапорець можна повторювати для додавання декількох службових облікових записів.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--user strings
Імена користувачів для привʼязки до кластерної ролі. Прапорець можна повторити, щоб додати кількох користувачів.
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створює ConfigMap на основі файлу, теки або вказаного літерального значення.
Огляд
Створює ConfigMap на основі файлу, теки або вказаного літерального значення.
Один ConfigMap може містити одну або декілька пар ключ/значення.
При створенні ConfigMap на основі файлу, стандартним значенням ключа буде імʼя файлу, а значенням — його вміст. Якщо назва файлу є невірним ключем, ви можете вказати альтернативний ключ.
При створенні ConfigMap на основі теки кожен файл, назва якого є допустимим ключем у теці, буде запаковано до ConfigMap. Будь-які записи у теці, окрім звичайних файлів, ігноруються (наприклад, субтеки, символічні посилання, пристрої, канали й т.д.).
kubectl create configmap NAME [--from-file=[key=]source][--from-literal=key1=value1][--dry-run=server|client|none]
Приклади
# Створити новий ConfigMap з назвою my-config на основі теки barkubectl create configmap my-config --from-file=path/to/bar
# Створити новий ConfigMap з назвою my-config із вказаними ключами замість імен файлів на дискуkubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt
# Створити новий ConfigMap з назвою my-config із ключами key1=config1 і key2=config2kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
# Створити новий ConfigMap з назвою my-config із пар ключ=значення у файлі envkubectl create configmap my-config --from-env-file=path/to/bar.env
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--append-hash
Додайте хеш configmap до назви configmap.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--from-env-file strings
Вкажіть шлях до файлу для отримання рядків з парами key=val для створення configmap.
--from-file strings
Файл ключа можна вказати за допомогою шляху до файлу, у цьому випадку імʼя файлу буде використано як ключ configmap, або за допомогою ключа і шляху до файлу, у цьому випадку буде використано заданий ключ. Якщо вказати теку, буде виконано ітерацію для кожного названого файлу у цій теці, імʼя якого є допустимим ключем configmap.
--from-literal strings
Вкажіть ключ і літеральне значення для вставки в configmap (тобто mykey=somevalue)
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Створити крон-завданняkubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *"# Створити крон-завдання з командоюkubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Політика перезапуску job. Підтримувані значення: OnFailure, Never
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--schedule string
Розклад у форматі Cron, за яким має виконуватися завдання.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create deployment NAME --image=image -- [COMMAND][args...]
Приклади
# Створити deployment з назвою my-dep, що використовує образ busyboxkubectl create deployment my-dep --image=busybox
# Створити deployment з командоюkubectl create deployment my-dep --image=busybox -- date
# Створити deployment з назвою my-dep, що використовує образ nginx з 3 реплікамиkubectl create deployment my-dep --image=nginx --replicas=3# Створити deployment з назвою my-dep, що використовує образ busybox і відкриває порт 5701kubectl create deployment my-dep --image=busybox --port=5701# Створити deployment з назвою my-dep, що містить декілька контейнерівkubectl create deployment my-dep --image=busybox:latest --image=ubuntu:latest --image=nginx
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-h, --help
Довідка deployment
--image strings
Назви образів для запуску. Deployment може містити кілька образів для багатоконтейнерних pod.
Кількість реплік для створення. Стандартно дорівнює 1.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create ingress NAME --rule=host/path=service:port[,tls[=secret]]
Приклади
# Створити один ingress з назвою 'simple', який направляє запити з foo.com/bar на svc1:8080 з TLS-сертифікатом "my-cert"kubectl create ingress simple --rule="foo.com/bar=svc1:8080,tls=my-cert"# Створити ingress, який захоплює усі шляхи "/path" і направляє їх на сервіс svc:port з класом ingress "otheringress"kubectl create ingress catch-all --class=otheringress --rule="/path=svc:port"# Створити ingress з двома анотаціями: ingress.annotation1 і ingress.annotations2kubectl create ingress annotated --class=default --rule="foo.com/bar=svc:port"\
--annotation ingress.annotation1=foo \
--annotation ingress.annotation2=bla
# Створити ingress з тим же хостом і декількома шляхамиkubectl create ingress multipath --class=default \
--rule="foo.com/=svc:port"\
--rule="foo.com/admin/=svcadmin:portadmin"# Створити ingress з декількома хостами і типом шляху як Prefixkubectl create ingress ingress1 --class=default \
--rule="foo.com/path*=svc:8080"\
--rule="bar.com/admin*=svc2:http"# Створити ingress з увімкненим TLS, використовуючи стандартний сертифікат ingress і різними типами шляхівkubectl create ingress ingtls --class=default \
--rule="foo.com/=svc:https,tls"\
--rule="foo.com/path/subpath*=othersvc:8080"# Створити ingress з увімкненим TLS, використовуючи конкретний секрет і типом шляху як Prefixkubectl create ingress ingsecret --class=default \
--rule="foo.com/*=svc:8080,tls=secret1"# Створити ingress зі стандартним бекендомkubectl create ingress ingdefault --class=default \
--default-backend=defaultsvc:http \
--rule="foo.com/*=svc:8080,tls=secret1"
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--annotation strings
Анотація для вставки в обʼєкт ingress у форматі annotation=value
--class string
Ingress Class що буде використано
--default-backend string
Стандартний сервіс бекенду, у форматі svcname:port
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Правило у форматі host/path=service:port[,tls=secretname]. Шляхи, що містять початковий символ '*', вважаються pathType=Prefix. tls — необовʼязковий аргумент.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create job NAME --image=image [--from=cronjob/name] -- [COMMAND][args...]
Приклади
# Створити задачу (job)kubectl create job my-job --image=busybox
# Створити задачу з командоюkubectl create job my-job --image=busybox -- date
# Створити задачу на основі крон-завдання з назвою "a-cronjob"kubectl create job test-job --from=cronjob/a-cronjob
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--from string
Імʼя ресурсу, з якого буде створено Job (підтримується тільки CronJob).
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create namespace NAME [--dry-run=server|client|none]
Приклади
# Створити простір імен з іменем my-namespacekubectl create namespace my-namespace
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створіть бюджет розладу роботи Podʼів із зазначеною назвою
Огляд
Створіть бюджет розладу роботи Podʼів із зазначеною назвою, селектором і бажаним мінімумом доступних Podʼів.
kubectl create poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run=server|client|none]
Приклади
# Створити бюджет розладу роботи Podʼів з назвою "my-pdb",# який вибере всі Podʼи з міткою app=rails і вимагатиме, щоб принаймні один з них був доступний в будь-який моментkubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1# Створити бюджет розладу роботи Podʼів з назвою "my-pdb",# який вибере всі Podʼи з міткою app=nginx і вимагатиме, щоб принаймні половина вибраних Podʼів була доступна в будь-який моментkubectl create pdb my-pdb --selector=app=nginx --min-available=50%
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-h, --help
Довідка poddisruptionbudget
--max-unavailable string
Максимальна кількість або відсоток недоступних Podʼів, яких вимагає цей бюджет.
--min-available string
Мінімальна кількість або відсоток доступних Podʼів, яких вимагає цей бюджет.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--selector string
Селектор мітки, який буде використано для цього бюджету. Підтримуються лише вимоги до селектора на основі рівності.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
User extras to impersonate for the operation, this flag can be repeated to specify multiple values for the same key.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створює клас пріоритету з вказаним імʼям, значенням, globalDefault та описом.
kubectl create priorityclass NAME --value=VALUE --global-default=BOOL [--dry-run=server|client|none]
Приклади
# Створити клас пріоритету з назвою high-prioritykubectl create priorityclass high-priority --value=1000 --description="high priority"# Створити клас пріоритету з назвою default-priority, який вважається глобальним стандартним класом пріоритетуkubectl create priorityclass default-priority --value=1000 --global-default=true --description="default priority"# Створити клас пріоритету з назвою high-priority, який не може випереджувати Podʼи з нижчим пріоритетомkubectl create priorityclass high-priority --value=1000 --description="high priority" --preemption-policy="Never"
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--description string
description — довільний рядок, який зазвичай містить вказівки щодо того, коли слід використовувати цей клас пріоритету.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--global-default
global-default вказує, чи слід вважати цей PriorityClass стандартним пріоритетом.
preemption-policy — це політика випередження Podʼів з нижчим пріоритетом.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--value int32
значення цього класу пріоритету.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створення квоти ресурсів із зазначеною назвою, жорсткими обмеженнями та необовʼязковими діапазонами.
kubectl create quota NAME [--hard=key1=value1,key2=value2][--scopes=Scope1,Scope2][--dry-run=server|client|none]
Приклади
# Створити нову квоту ресурсів з назвою my-quotakubectl create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10# Створити нову квоту ресурсів з назвою best-effortkubectl create quota best-effort --hard=pods=100 --scopes=BestEffort
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--hard string
Розділений комами набір пар resource=quantity, які визначають жорсткі межі.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--scopes string
Розділений комами набір діапазонів квот, які повинні відповідати кожному обʼєкту, що відстежується за допомогою квоти.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create role NAME --verb=verb --resource=resource.group/subresource [--resource-name=resourcename][--dry-run=server|client|none]
Приклади
# Створити роль з назвою "pod-reader", яка дозволяє користувачу виконувати "get", "watch" і "list" для Podʼівkubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods
# Створити роль з назвою "pod-reader" з вказаними ResourceNamekubectl create role pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod
# Створити роль з назвою "foo" з вказаною API Groupkubectl create role foo --verb=get,list,watch --resource=rs.apps
# Створити роль з назвою "foo" з вказаним SubResourcekubectl create role foo --verb=get,list,watch --resource=pods,pods/status
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Ресурс у білому списку, до якого застосовується правило, повторіть цей прапорець для кожного елемента
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--verb strings
Дієслово, яке застосовується до ресурсів, що містяться в правилі
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створює привʼязку для певної ролі або кластерної ролі
Огляд
Створення привʼязки для певної ролі або кластерної ролі.
kubectl create rolebinding NAME --clusterrole=NAME|--role=NAME [--user=username][--group=groupname][--serviceaccount=namespace:serviceaccountname][--dry-run=server|client|none]
Приклади
# Створити привʼязки ролей для user1, user2 та group1, використовуючи роль adminkubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
# Створити привʼязки ролей для serviceaccount monitoring:sa-dev, використовуючи роль adminkubectl create rolebinding admin-binding --role=admin --serviceaccount=monitoring:sa-dev
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--clusterrole string
ClusterRole на яку повинна посилатися привʼязка ClusterRoleBinding
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--group strings
Групи для привʼязки до кластерної ролі. Прапорець можна повторити, щоб додати кілька груп.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--serviceaccount strings
Службові облікові записи для привʼязки до кластерної ролі, у форматі <простір імен>:<імʼя>. Прапорець можна повторювати для додавання декількох службових облікових записів.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--user strings
Імена користувачів для привʼязки до кластерної ролі. Прапорець можна повторити, щоб додати кількох користувачів.
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
В результаті буде створено файл ~/.dockercfg, який використовується наступними командами docker push і docker pull для автентифікації в реєстрі. Адреса електронної пошти не є обовʼязковою.
При створенні програм може виникнути ситуація, коли реєстр Docker вимагає автентифікації. Для того, щоб вузли вузли могли отримувати образи від вашого імені, вони повинні мати облікові дані. Ви можете надати цю інформацію створивши секрет dockercfg і прикріпивши його до свого службового облікового запису.
kubectl create secret docker-registry NAME --docker-username=user --docker-password=password --docker-email=email [--docker-server=string][--from-file=[key=]source][--dry-run=server|client|none]
Приклади
# Якщо у вас ще немає файлу .dockercfg, створіть секрет dockercfg безпосередньоkubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
# Створити новий секрет з назвою my-secret з ~/.docker/config.jsonkubectl create secret docker-registry my-secret --from-file=path/to/.docker/config.json
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
Імʼя користувача для автентифікації в реєстрі Docker
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--from-file strings
Файли ключів можна вказати за допомогою шляху до файлу, у цьому випадку їм буде присвоєно стандартне імʼя.dockerconfigjson, або за бажанням за допомогою імені та шляху до файлу, у цьому випадку буде використано вказане імʼя. Якщо вказати теку, буде виконано ітераційний пошук кожного файлу з іменем, що є дійсним секретним ключем. Для цієї команди ключем завжди має бути .dockerconfigjson.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створення секрету на основі файлу, теки або вказаного літерального значення
Огляд
Створення секрету на основі файлу, теки або вказаного літерального значення.
Один секрет може містити одну або декілька пар ключ/значення.
При створенні секрету на основі файлу, стандартно ключем буде назва файлу, а значенням — його вміст. Якщо імʼя файлу не є допустимим ключем або ви хочете вибрати свій власний ключ, ви можете вказати альтернативний ключ.
При створенні секрету на основі теки, кожен файл, імʼя якого є дійсним ключем у теці, буде запаковано у секрет. Будь-які записи теки, окрім звичайних файлів, ігноруються (наприклад, підтеки, символічні посилання, пристрої, канали й т.д.).
kubectl create secret generic NAME [--type=string][--from-file=[key=]source][--from-literal=key1=value1][--dry-run=server|client|none]
Приклади
# Створити новий секрет з назвою my-secret з ключами для кожного файлу в теці barkubectl create secret generic my-secret --from-file=path/to/bar
# Створити новий секрет з назвою my-secret з вказаними ключами замість імен на дискуkubectl create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-file=ssh-publickey=path/to/id_rsa.pub
# Створити новий секрет з назвою my-secret з key1=supersecret та key2=topsecretkubectl create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret
# Створити новий секрет з назвою my-secret з використанням комбінації файлу та літералаkubectl create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-literal=passphrase=topsecret
# Створити новий секрет з назвою my-secret з файлів envkubectl create secret generic my-secret --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--append-hash
Додайте хеш secret до назви secret.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--from-env-file strings
Вкажіть шлях до файлу для отримання рядків з парами key=val для створення secret.
--from-file strings
Файл ключа можна вказати за допомогою шляху до файлу, у цьому випадку імʼя файлу буде використано як ключ, або за допомогою ключа і шляху до файлу, у цьому випадку буде використано заданий ключ. Якщо вказати теку, буде виконано ітерацію для кожного названого файлу у цій теці, імʼя якого є допустимим ключем secret.
--from-literal strings
Вкажіть ключ і літеральне значення для вставки в secret (тобто mykey=somevalue)
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--type string
Тип секрету, який необхідно створити
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створення TLS-секрету із заданої пари публічного/приватного ключа.
Пара відкритий/закритий ключ повинна існувати заздалегідь. Сертифікат відкритого ключа повинен бути зашифрований у форматі .PEM і відповідати заданому закритому ключу.
kubectl create secret tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run=server|client|none]
Приклади
# Створіть новий TLS-секрет з імʼям tls-secret із заданою парою ключівkubectl create secret tls tls-secret --cert=path/to/tls.crt --key=path/to/tls.key
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--append-hash
Додайте хеш secret до назви secret.
--cert string
Шлях до PEM-закодованого сертифіката відкритого ключа.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-h, --help
Довідка tls
--key string
Шлях до приватного ключа, повʼязаного з даним сертифікатом.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create service clusterip NAME [--tcp=<port>:<targetPort>][--dry-run=server|client|none]
Приклади
# Створити новий сервіс ClusterIP з назвою my-cskubectl create service clusterip my-cs --tcp=5678:8080
# Створити новий сервіс ClusterIP з назвою my-cs (у режимі headless)kubectl create service clusterip my-cs --clusterip="None"
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--clusterip string
Призначте власний ClusterIP або встановіть значення "None" для сервісу "headless" (без балансування навантаження).
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--tcp strings
Пари портів можна вказати у вигляді '<порт>:<цільовий порт>'.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створення сервісу ExternalName із зазначеним імʼям.
Сервіс ExternalName посилається на зовнішню DNS-адресу, а не лише на Podʼи, що дозволить авторам застосунків посилатися на сервіси, які існують за межами платформи, в інших кластерах або локально.
kubectl create service externalname NAME --external-name external.name [--dry-run=server|client|none]
Приклади
# Створіть новий сервіс ExternalName з іменем my-nskubectl create service externalname my-ns --external-name bar.com
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--external-name string
Зовнішня назва сервісу
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--tcp strings
Пари портів можна вказати у вигляді '<порт>:<цільовий порт>'.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create service loadbalancer NAME [--tcp=port:targetPort][--dry-run=server|client|none]
Приклади
# Створіть новий сервіс LoadBalancer з назвою my-lbskubectl create service loadbalancer my-lbs --tcp=5678:8080
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--tcp strings
Пари портів можна вказати у вигляді '<порт>:<цільовий порт>'.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl create service nodeport NAME [--tcp=port:targetPort][--dry-run=server|client|none]
Приклади
# Створіть новий сервіс NodePort з назвою my-nskubectl create service nodeport my-ns --tcp=5678:8080
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-h, --help
Довідка nodeport
--node-port int
Порт, який використовується для експонування сервісу на кожному вузлі кластера.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--tcp strings
Пари портів можна вказати у вигляді '<порт>:<цільовий порт>'.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створення службового облікового запису з вказаним імʼям
Огляд
Створення службового облікового запису з вказаним імʼям.
kubectl create serviceaccount NAME [--dry-run=server|client|none]
Приклади
# Створіть новий служюовий обліковий записк з назвою my-service-accountkubectl create serviceaccount my-service-account
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-create"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Запит на отримання токена службового облікового запису
Огляд
Запит на отримання токена службового облікового запису.
kubectl create token SERVICE_ACCOUNT_NAME
Приклади
# Запит токена для автентифікації на kube-apiserver як службовий обліковий запис "myapp" у поточному просторі іменkubectl create token myapp
# Запит токена для службового облікового запису у власному просторі іменkubectl create token myapp --namespace myns
# Запит токена із власним часом діїkubectl create token myapp --duration 10m
# Запит токена із власною аудиторієюkubectl create token myapp --audience https://example.com
# Запит токена, привʼязаного до обʼєкта типу Secretkubectl create token myapp --bound-object-kind Secret --bound-object-name mysecret
# Запит токена, привʼязаного до обʼєкта типу Secret з конкретним UIDkubectl create token myapp --bound-object-kind Secret --bound-object-name mysecret --bound-object-uid 0d4691ed-659b-4935-a832-355f77ee47cc
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--audience strings
Аудиторія запитуваного токена. Якщо не встановлено, стандартно запитується токен для використання з сервером API Kubernetes. Може бути повторений для запиту токена, дійсного для декількох аудиторій.
--bound-object-kind string
Тип обʼєкта, до якого привʼязується токен. Підтримуються типи Node, Pod, Secret. Якщо задано, має бути вказано --bound-object-name.
--bound-object-name string
Імʼя обʼєкта, до якого потрібно привʼязати токен. Термін дії токена закінчиться, коли обʼєкт буде видалено. Потрібно вказати --bound-object-kind.
--bound-object-uid string
UID обʼєкта, до якого потрібно привʼязати токен. Потрібні --bound-object-kind та --bound-object-name. Якщо не вказано, використовується UID наявного обʼєкта.
--duration duration
Запитуваний термін життя випущеного токена. Якщо не вказано або вказано 0, то термін життя буде визначено сервером автоматично. Сервер може повернути токен з більшим або меншим терміном дії.
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Створює сеанси налагодження для усунення неполадок у робочих навантаженнях та вузлах
Огляд
Налагодження ресурсів кластера за допомогою інтерактивних контейнерів налагодження.
'debug' автоматизує виконання поширених завдань налагодження для обʼєктів кластера, ідентифікованих за ресурсом та імʼям. Типово будуть використовуватися Podʼи, якщо ресурс не вказано.
Дія, яку виконує 'debug', залежить від вказаного ресурсу. Підтримувані дії включають:
Workload: Створити копію поточного Podʼа зі зміненими атрибутами, наприклад, змінити теґ образу на нову версію.
Workload: Додати ефемерний контейнер до вже працюючого Podʼа, наприклад, щоб додати утиліти для налагодження без перезапуску Podʼа.
Node: Створити новий Pod, який працює у host namespaces вузла та має доступ до файлової системи вузла.
Примітка: Коли для всього цільового Pod налаштовано користувача без прав root, деякі можливості, надані профілем налагодження, можуть не працювати.
# Створити інтерактивну сесію налагодження в Pod mypod та одразу приєднатися до неї.kubectl debug mypod -it --image=busybox
# Створити інтерактивну сесію налагодження для Pod з файлу pod.yaml та одразу приєднатися до неї.# (вимагає увімкнення функції EphemeralContainers в кластері)kubectl debug -f pod.yaml -it --image=busybox
# Створити контейнер налагодження з назвою debugger, використовуючи власний автоматизований образ для налагодження.kubectl debug --image=myproj/debug-tools -c debugger mypod
# Створити копію mypod, додавши контейнер налагодження, та приєднатися до неї.kubectl debug mypod -it --image=busybox --copy-to=my-debugger
# Створити копію mypod, змінивши команду mycontainer.kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh
# Створити копію mypod, змінивши образи всіх контейнерів на busybox.kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox
# Створити копію mypod, додавши контейнер налагодження та змінивши образи контейнерів.kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug
# Створити інтерактивну сесію налагодження на вузлі та одразу приєднатися до неї.# Контейнер працюватиме в host namespaces та файлову систему вузла буде змонтовано у /host.kubectl debug node/mynode -it --image=busybox
Параметри
--arguments-only
Якщо вказано, все, що знаходиться після --, буде передано до нового контейнера як Args замість Command.
--attach
Якщо значення true, дочекайтись запуску контейнера, а потім приєднати його так, ніби було викликано команду 'kubectl attach ...'. Стандартне значення false, якщо не задано параметр '-i/--stdin', у цьому випадку стандартне значення true.
-c, --container string
Назва контейнера, який буде використано для налагодження.
--copy-to string
Створіює копію цільового Pod з цією назвою.
--custom string
Шлях до JSON або YAML-файлу, що містить часткову специфікацію контейнера для налаштування вбудованих профілів налагодження.
--env stringToString Типово: []
Змінні оточення, які потрібно встановити в контейнері.
-f, --filename strings
визначення ресурсу для налагодження
-h, --help
Довідка debug
--image string
Назва образу контейнера для запуску.
--image-pull-policy string
Політика отримання образів для контейнера. Якщо залишити порожнім, це значення не буде вказано клієнтом і буде стандартно визначене сервером.
--keep-annotations
Якщо значення true, зберігати оригінальні анотації p
Podʼів (цей прапорець працює лише при використанні '--copy-to').
--keep-init-containers Default: true
Запустити ініціалізаційні контейнери для pod. Стандартно дорівнює true (цей прапорець працює лише у випадку використання з '--copy-to').
--keep-labels
Якщо значення true, зберігати оригінальні мітки Podʼів (цей прапорець працює лише при використанні '--copy-to').
--keep-liveness
Якщо значення true, зберегти оригінальні проби життєздатності Podʼа. (Цей прапорець працює лише при використанні '--copy-to').
--keep-readiness
Якщо значення true, зберегти оригінальні проби готовності Podʼа. (Цей прапорець працює лише при використанні '--copy-to').
--keep-startup
Якщо значення true, зберігати оригінальні проби запуску (цей прапорець працює лише при використанні '--copy-to').
--profile string Типово: "general"
Варіанти: "general", "baseline", "restricted", "netadmin" або "sysadmin". Типово: "general"
-q, --quiet
Якщо true, то придушити інформаційні повідомлення.
--replace
При використанні з '--copy-to' видаляє оригінальний Pod.
--same-node
Якщо використовується з '--copy-to', призначити копію цільового Pod на той самий вузол.
--set-image stringToString Типово: []
При використанні з '--copy-to', список пар name=image для зміни образів контейнерів, подібно до того, як працює команда 'kubectl set image'.
--share-processes Типово: true
При використанні з '--copy-to' вмикає спільне використання простору імен процесів у копії.
-i, --stdin
Залишати stdin відкритим у контейнері (контейнерах), навіть якщо до нього нічого не приєднано.
--target string
При використанні ефемерного контейнера, спрямовувати процеси до цього контейнера.
-t, --tty
Призначення TTY для контейнера налагодження.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Видалення ресурсів за іменами файлів, stdin, ресурсами та іменами, або за ресурсами та селекторами міток
Огляд
Видалення ресурсів за іменами файлів, stdin, ресурсами та іменами, або за ресурсами та селекторами міток.
Приймаються формати JSON та YAML. Можна вказати лише один тип аргументів: імена файлів, ресурси та імена, або ресурси та селектори міток.
Деякі ресурси, такі як Podʼи, підтримують належне видалення. Ці ресурси визначають стандартний період перед примусовим завершенням (пільговий період), але ви можете змінити це значення за допомогою прапорця --grace-period або передати --now, щоб встановити пільговий період на 1. Оскільки ці ресурси часто представляють сутності в кластері, видалення може не бути підтверджене одразу. Якщо вузол, який хостить Pod, відключений або не може досягти API-сервера, завершення може зайняти значно більше часу, ніж пільговий період. Щоб примусово видалити ресурс, ви повинні вказати прапорець --force. Примітка: лише підмножина ресурсів підтримує належне видалення. За відсутності підтримки, прапорець --grace-period ігнорується.
ВАЖЛИВО: Примусове видалення Podʼів не чекає підтвердження, що процеси Podʼа завершені, що може залишити ці процеси запущеними, поки вузол не виявить видалення та не завершить належне видалення. Якщо ваші процеси використовують спільне сховище або звертаються до віддаленого API та залежать від імені Podʼа для ідентифікації, примусове видалення цих Podʼів може призвести до запуску кількох процесів на різних машинах з однаковою ідентифікацією, що може призвести до пошкодження даних або неконсистентності. Примусово видаляйте Pod лише коли ви впевнені, що Pod завершено, або якщо ваш застосунок може витримати кілька копій одного Podʼа, які працюють одночасно. Також, якщо ви примусово видаляєте Pod, планувальник може розмістити нові Pod на цих вузлах до того, як вузол звільнить ці ресурси, що спричинить негайне виселення цих Podʼів.
Зверніть увагу, що команда delete НЕ перевіряє версію ресурсу, тому якщо хтось подасть оновлення ресурсу в той момент, коли ви подасте команду delete, їхнє оновлення буде втрачено разом з рештою ресурсу.
Після видалення CustomResourceDefinition інвалідація кешу виявлення може тривати до 6 годин. Якщо ви не хочете чекати, можливо, варто запустити "kubectl api-resources", щоб оновити кеш виявлення.
# Видалити Pod, використовуючи тип та імʼя, вказані в pod.jsonkubectl delete -f ./pod.json
# Видалити ресурси з теки, що містить kustomization.yaml — наприклад, dir/kustomization.yamlkubectl delete -k dir
# Видалити ресурси з усіх файлів, що закінчуються на '.json'kubectl delete -f '*.json'# Видалити Pod на основі типу та імені в JSON, переданому в stdincat pod.json | kubectl delete -f -
# Видалити Podʼи та сервіси з іменами "baz" та "foo"kubectl delete pod,service baz foo
# Видалити Podʼи та сервіси з міткою name=myLabelkubectl delete pods,services -l name=myLabel
# Видалити Pod з мінімальною затримкоюkubectl delete pod foo --now
# Примусово видалити Pod на мертвому вузліkubectl delete pod foo --force
# Видалити всі Podʼиkubectl delete pods --all
# Видаляє всі Podʼи, тільки якщо користувач підтвердить видаленняkubectl delete pods --all --interactive
Параметри
--all
Вилучити всі ресурси у просторі імен вказаних типів ресурсів.
-A, --all-namespaces
Якщо вказано, показати список запитуваних обʼєктів у всіх просторах назв. Простір імен у поточному контексті ігнорується, навіть якщо вказано --namespace.
Має бути "background", "orphan" або "foreground". Вибирає стратегію каскадного видалення для залежних елементів (наприклад, Podʼів, створених Replication Controller). Стандартне значення — background.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-selector string
Селектор (запит поля) для фільтрації підтримує '=', '==' і '!=' (наприклад, --field-selector key1=value1,key2=value2). Сервер підтримує лише обмежену кількість запитів до полів кожного типу.
-f, --filename strings
містить ресурс, який потрібно видалити.
--force
Якщо true, негайно видалити ресурси з API і оминути процедуру належного видалення. Зверніть увагу, що негайне видалення деяких ресурсів може призвести до неузгодженості або втрати даних і потребує підтвердження.
--grace-period int Типово: -1
Період часу в секундах, який дається ресурсу для належного завершення роботи. Ігнорується, якщо значення відʼємне. Встановлюється у 1 для негайного завершення роботи. Може бути встановлене у 0, тільки якщо --force має значення true (примусове видалення).
-h, --help
Довідка delete
--ignore-not-found
Вважати "resource not found" за успішне видалення. Стандартно дорівнює "true", якщо вказано --all.
-i, --interactive
Якщо true, видаляти ресурс тільки після підтвердження користувача.
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--now
Якщо значення true, ресурсам дається сигнал про негайне припинення роботи (так само, як і --grace-period=1).
-o, --output string
Режим виводу. Використовуйте "-o name" для скороченого виводду (resource/name).
--raw string
Необроблений URI для DELETE на сервер. Використовує транспорт, вказаний у файлі kubeconfig.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--timeout duration
Час очікування перед прийнятям рішення про відмову видалення, нуль означає визначення таймауту залежно від розміру обʼєкта
--wait Типово: true
Якщо true, очікувати, поки ресурси зникнуть, перш ніж повернутися. Очікує фіналізаторів.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Показує детальну інформацію про певний ресурс або групу ресурсів
Огляд
Показує детальну інформацію про певний ресурс або групу ресурсів.
Виводіть детальний опис вибраних ресурсів, включно з повʼязаними ресурсами, такими як події або контролери. Ви можете вибрати один обʼєкт за назвою, всі обʼєкти цього типу, вказати префікс назви або селектор міток. Наприклад:
kubectl describe TYPE NAME_PREFIX
спочатку перевірить наявність точного збігу між TYPE і NAME_PREFIX. Якщо такого ресурсу не існує, він виведе дані для кожного ресурсу, який має назву з префіксом NAME_PREFIX.
Для отримання повного списку підтримуваних ресурсів скористайтеся "kubectl api-resources".
# Вивести опис вузлаkubectl describe nodes kubernetes-node-emt8.c.myproject.internal
# Вивести опис Podʼаkubectl describe pods/nginx
# Вивести опис Podʼа, визначений типом та іменем у "pod.json"kubectl describe -f pod.json
# Вивести опис всіх Podʼівkubectl describe pods
# Вивести опис Podʼів за міткою name=myLabelkubectl describe pods -l name=myLabel
# Вивести опис всіх Podʼів, керовані контролером реплікації 'frontend'# (Podʼи, створені rc, отримують імʼя rc як префікс у назві Podʼа)kubectl describe pods frontend
Параметри
-A, --all-namespaces
Якщо вказано, показати список запитуваних обʼєктів у всіх просторах назв. Простір імен у поточному контексті ігнорується, навіть якщо вказано --namespace.
--chunk-size int Типово: 500
Повертати великі списки частинами, а не всі одразу. Для вимкнення задайте 0.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для отриманні інформації
-h, --help
Довідка describe
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-events Типово: true
Якщо true, показувати події, повʼязані з описаним обʼєктом. Типово: true для одного обʼєкта, false для кількох обʼєктів та префіксного співпадіння.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Порівнює поточну версію з версією, яка була б застосована
Огляд
Порівнює конфігурації, вказані за назвою файлу або stdin, між поточною онлайн-конфігурацією та конфігурацією, яка була б застосована.
На виході завжди буде YAML.
Змінна середовища KUBECTL_EXTERNAL_DIFF може бути використана для вибору вашої власної команди diff. Користувачі також можуть використовувати зовнішні команди з параметрами, наприклад: KUBECTL_EXTERNAL_DIFF="colordiff -N -u"
Стандартно команду "diff", доступну у вашому шляху, буде запущено з параметрами "-u" (уніфікований diff) і "-N" (вважати відсутні файли порожніми).
Стан завершення роботи: 0 — Відмінностей не знайдено. 1 — Відмінності знайдено. >1 — Запуск Kubectl або diff завершився з помилкою.
Зауваження: якщо використовується KUBECTL_EXTERNAL_DIFF, очікується, що його буде застосовано відповідно до цієї конвенції.
kubectl diff -f FILENAME
Приклади
# Diff resources included in pod.jsonkubectl diff -f pod.json
# Diff file read from stdincat service.yaml | kubectl diff -f -
Параметри
--concurrency int Типово: 1
Кількість обʼєктів для паралельної обробки у порівнянні з реальною версією. Більша кількість = швидше, але більше памʼяті, вводу/виводу та процесора за коротший проміжок часу.
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що містить конфігурацію для diff
--force-conflicts
Якщо значення true, серверне застосування (server-side apply) буде примусово вносити зміни всупереч конфліктам.
-h, --help
Довідка diff
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--prune
Включити ресурси, які буде видалено під час обрізання. Можна використовувати з параметром -l і типово показує всі ресурси, які буде вилучено
--prune-allowlist strings
Замінити список стандартний дозволів (allowlist) <group/version/kind> для --prune
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--server-side
Якщо значення true, apply виконується на сервері, а не на клієнті.
--show-managed-fields
Якщо true, включити керовані поля в diff.
--show-secrets
Якщо true, не маскувати значення секретів у diff.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Зазначений вузол будо позначено, як не придатний для розміщення робочих навантажень для запобігання створенню нових Podʼів на ньому. 'drain' виселяє Podʼи, якщо API сервер підтримує розлади або виселення. В іншому випадку він використовує звичайний DELETE, щоб видалити Podʼи. 'drain' виселяє або видаляє всі Podʼи, окрім дзеркальних Podʼів (які не можна видалити за допомогою API сервера). Якщо це самокерований Pod демона, drain не спрацює, якщо немає --ignore-daemonsets, і Pod не буде видалено, бо такі Podʼи будуть негайно замінені новими контролером DaemonSet, який не звертає уваги на позначку unschedulable. Якщо є якісь Podʼи, які не є дзеркальними Podʼами, і які не керуються контролером реплікації, replica set, daemon set, stateful set, або job то drain не видалить жодного Pod, якщо ви не скористаєтеся опцією --force. --force також дозволить продовжити видалення, якщо відсутній керуючий ресурс одного або декількох Podʼів.
'drain' чекає на коректне завершення. Ви не повинні працювати на машині, поки команда не завершиться.
Коли ви будете готові повернути вузол до експлуатації, скористайтеся командою kubectl uncordon, яка зробить вузол знову доступним для планування.
kubectl drain NODE
Приклади
# Спорожнити вузол "foo", навіть якщо на ньому є Podʼи, які не керуються контролером реплікації, replica set, job, daemon set або stateful setkubectl drain foo --force
# Як вище, але перервати, якщо наявні Podʼи, які не керуються контролером реплікації, replica set, job, daemon set або stateful set, і використовувати пільговий період у 15 хвилинkubectl drain foo --grace-period=900
Параметри
--chunk-size int Типово: 500
Повертати великі списки частинами, а не всі одразу. Для вимкнення задайте 0.
--delete-emptydir-data
Продовжувати, навіть якщо є Podʼи, що використовують emptyDir (локальні дані, які буде видалено, коли вузол буде спорожнено).
--disable-eviction
Примусово виводити ресурси за допомогою delete, навіть якщо підтримується виселення. Це дозволить обійти перевірку PodDisruptionBudgets, використовуйте з обережністю.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--force
Продовжувати, навіть якщо є Podʼи, які не задекларували контролер.
--grace-period int Типово: -1
Період часу в секундах, який дається ресурсу для належного завершення роботи. Якщо значення відʼємне, то буде використано стандартне значення, вказане у Pod.
-h, --help
Довідка drain
--ignore-daemonsets
Ігнорувати Podʼи керовані DaemonSet.
--pod-selector string
Селектор міток для фільтрування Podʼів на вузлі
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--skip-wait-for-delete-timeout int
Якщо хначення DeletionTimestamp Podʼа старіще за N секунд, пропускати очікування Podʼа. Значення секунд має бути більще за 0, щоб його оминути.
--timeout duration
Час очікування перед прийнятям рішення про відмову видалення, нуль означає нескіченно
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Редагування ресурсу за допомогою стандартного редактора.
Команда edit дозволяє вам безпосередньо редагувати будь-який ресурс API, який ви можете отримати за допомогою інструментів командного рядка. Вона відкриє редактор, визначений вашими змінними оточення KUBE_EDITOR або EDITOR, або відкриє "vi" для Linux чи "notepad" для Windows. Під час спроби відкрити редактор спочатку буде використано оболонку, визначену у змінній оточення 'SHELL'. Якщо її не визначено, буде використано стандартну оболонку, якою є "/bin/bash" для Linux або "cmd" для Windows.
Ви можете редагувати декілька обʼєктів, хоча зміни застосовуються по одній за раз. Команда приймає імена файлів, а також аргументи командного рядка, хоча файли, на які ви вказуєте, мають бути попередньо збереженими версіями ресурсів.
Редагування виконується за допомогою версії API, використаної для отримання ресурсу. Щоб редагувати з використанням певної версії API, повністю вкажіть ресурс, версію і групу.
Стандартний формат — YAML. Для редагування у форматі JSON вкажіть "-o json".
Прапорець --windows-line-endings може бути використаний для забезпечення примусового завершення рядків у форматі Windows, інакше буде використано типовий для вашої операційної системи.
Якщо під час оновлення виникне помилка, на диску буде створено тимчасовий файл, який міститиме ваші незастосовані зміни. Найпоширенішою помилкою при оновленні ресурсу є зміна ресурсу на сервері іншим редактором. У цьому випадку вам доведеться застосувати ваші зміни до новішої версії ресурсу або оновити вашу тимчасову збережену копію, щоб вона містила останню версію ресурсу.
kubectl edit (RESOURCE/NAME | -f FILENAME)
Приклади
# Змінити сервіс з назвою 'registry'kubectl edit svc/registry
# Використовувати альтернативний редакторKUBE_EDITOR="nano" kubectl edit svc/registry
# Редагувати job 'myjob' у форматі JSON з використанням формату API v1kubectl edit job.v1.batch/myjob -o json
# Редагувати deployment 'mydeployment' в YAML і зберегти змінений конфіг в його анотаціїkubectl edit deployment/mydeployment -o yaml --save-config
# Редагувати субресурс 'status' для deployment 'mydeployment'kubectl edit deployment mydeployment --subresource='status'
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--field-manager string Типово: "kubectl-edit"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, для редагування ресурсів
-h, --help
Довідка edit
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--subresource string
Якщо вказано, редагування працюватиме з субресурсом запитуваного обʼєкта.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--windows-line-endings
Стандартно використовується закінчення рядка, притаманне вашій платформі.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Виводить таблицю з найважливішою інформацією про події. Ви можете запитувати події для простору імен, для всіх просторів імен або відфільтрувати лише ті, що стосуються вказаного ресурсу.
# Вивести список нещодавніх подій у стандартному просторі іменkubectl events
# Показати нещодавні події у всіх просторах іменkubectl events --all-namespaces
# Вивести список нещодавніх подій для вказаного pod, потім дочекатися нових подій і виводити їх по мірі надходженняkubectl events --for pod/web-pod-13je7 --watch
# Показати нещодавні події у форматі YAMLkubectl events -oyaml
# Показати лише нещодавні події типу 'Warning' або 'Normal'kubectl events --types=Warning,Normal
Параметри
-A, --all-namespaces
Якщо вказано, показати список запитуваних обʼєктів у всіх просторах назв. Простір імен у поточному контексті ігнорується, навіть якщо вказано --namespace.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--chunk-size int Типово: 500
Повертати великі списки частинами, а не всі одразу. Для вимкнення задайте 0.
--for string
Відфільтрувати події, щоб залишити лише ті, що стосуються вказаного ресурсу.
-h, --help
Довідка events
--no-headers
При використанні стандартного або власного формату виводу стовпців не друкувати заголовки.
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--types strings
Вивести лише події заданих типів.
-w, --watch
Після отримання списку бажаних подій слідкувати за новими подіями.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Отримати вивід від виконання команди 'date' з Pod mypod, використовуючи типово перший контейнерkubectl exec mypod -- date
# Отримати вивід команди 'date' у ruby-контейнері з Pod mypodkubectl exec mypod -c ruby-container -- date
# Перехід у режим необробленого терміналу; надсилає stdin до 'bash' у ruby-контейнері з Pod mypod# і надсилає stdout/stderr з 'bash' назад клієнтуkubectl exec mypod -c ruby-container -i -t -- bash -il
# Вивести вміст /usr з першого контейнера Pod mypod і відсортувати за часом модифікації# Якщо команда, яку ви хочете виконати в Pod, має спільні прапорці (наприклад, -i),# ви повинні використовувати два тире (--), щоб відокремити прапорці/аргументи вашої команди.# Також зауважте, що не слід брати команду та її прапорці/аргументи у лапки# якщо тільки ви не виконуватимете її так у звичайному режимі (тобто, виконайте ls -t /usr, а не "ls -t /usr").kubectl exec mypod -i -t -- ls -t /usr
# Отримання результатів виконання команди 'date' з першого Pod deployment mydeployment, з використанням стандартно першого контейнераkubectl exec deploy/mydeployment -- date
# Отримати вивід команди 'date' з першого Pod сервісу myservice, використовуючи стандартно перший контейнерkubectl exec svc/myservice -- date
Параметри
-c, --container string
Назва контейнера. Якщо не вказано, використовуйте анотацію kubectl.kubernetes.io/default-container для вибору контейнера, який буде приєднано, інакше буде обрано перший контейнер у pod
-f, --filename strings
Імʼя файлу, теки або URL до файлів, для виконання ресурсів
-h, --help
Довідка exec
--pod-running-timeout duration Типово: 1m0s
Тривалість часу (наприклад, 5s, 2m або 3h, більше нуля) для очікування, поки не запрацює хоча б один Pod
-q, --quiet
Виводити лише дані, отримані під час віддаленого сеансу
-i, --stdin
Передати stdin до контейнера
-t, --tty
Stdin є TTY
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Ця команда описує поля, повʼязані з кожним підтримуваним ресурсом API. Поля ідентифікуються за допомогою простого ідентифікатора JSONPath:
<type>.<fieldName>[.<fieldName>]
Інформація про кожне поле отримується з сервера у форматі OpenAPI.
Використовуйте "kubectl api-resources" для отримання повного списку підтримуваних ресурсів.
kubectl explain TYPE [--recursive=FALSE|TRUE][--api-version=api-version-group][-o|--output=plaintext|plaintext-openapiv2]
Приклади
# Отримати документацію про ресурс та його поляkubectl explain pods
# Отримати всі поля ресурсуkubectl explain pods --recursive
# Отримати пояснення щодо deployment у підтримуваних версіях apikubectl explain deployments --api-version=apps/v1
# Отримати документацію щодо певного поля ресурсуkubectl explain pods.spec.containers
# Отримати документацію ресурсів у іншому форматіkubectl explain deployment --output=plaintext-openapiv2
Параметри
--api-version string
Отримання різноманітних пояснень для відповідної версії API (API group/version).
-h, --help
Довідка explain
-o,--output string Типово: "plaintext"
Формат, у якому потрібно показати схему (plaintext, plaintext-openapiv2).
R, --recursive
Виводить поля полів (Зараз тільки на 1 рівень в глибину)
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Відкрити replication controller, service, deployment або pod як новий сервіс Kubernetes
Огляд
Експонувати ресурс як нову службу Kubernetes.
Шукає deployment, service, replica set, replica controller або pod за назвою і використовує селектор для цього ресурсу як селектор для нового service на зазначеному порту. Deployment або replica set буде показано як сервіс, лише якщо його селектор буде перетворено на селектор, який підтримується сервісом, тобто коли селектор містить лише компонент matchLabels. Зауважте, що якщо за допомогою --port не вказано жодного порту, а експонований ресурс має декілька портів, усі вони будуть використані новим сервісом повторно. Також, якщо не вказано жодних міток, новий сервіс повторно використає мітки з ресурсу, який він відкриває.
Можливі ресурси включають (без урахування регістру):
pod (po), service (svc), replicationcontroller (rc), deployment (deploy), replicaset (rs)
kubectl expose (-f FILENAME | TYPE NAME)[--port=port][--protocol=TCP|UDP|SCTP][--target-port=number-or-name][--name=name][--external-ip=external-ip-of-service][--type=type]
Приклади
# Створити сервіс для реплікованого nginx, який працює на порту 80 та підключається до контейнерів на порту 8000kubectl expose rc nginx --port=80 --target-port=8000# Створити сервіс для контролера реплікації, визначеного типом та іменем у "nginx-controller.yaml", який працює на порту 80 та підключається до контейнерів на порту 8000kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000# Створити сервіс для Pod valid-pod, який працює на порту 444 з іменем "frontend"kubectl expose pod valid-pod --port=444 --name=frontend
# Створити другий сервіс на основі вищезгаданого сервісу, відкриваючи контейнерний порт 8443 як порт 443 з іменем "nginx-https"kubectl expose service nginx --port=443 --target-port=8443 --name=nginx-https
# Створити сервіс для реплікованого стрімінгового застосунку на порту 4100, балансуючи UDP-трафік, з імʼям 'video-stream'kubectl expose rc streamer --port=4100 --protocol=UDP --name=video-stream
# Створити сервіс для реплікованого nginx за допомогою replica set, який працює на порту 80 та підключається до контейнерів на порту 8000kubectl expose rs nginx --port=80 --target-port=8000# Створити сервіс для deployment nginx, який працює на порту 80 та підключається до контейнерів на порту 8000kubectl expose deployment nginx --port=80 --target-port=8000
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--cluster-ip string
ClusterIP, який буде призначено сервісу. Залиште порожнім для автоматичного призначення або встановіть значення "None", щоб створити сервіс headless.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--external-ip string
Додаткова зовнішня IP-адреса (не керована Kubernetes), яку буде використано для сервісу. Якщо цю IP-адресу перенаправлено на вузол, до сервісу можна отримати доступ з цієї IP-адреси на додачу до згенерованої IP-адреси сервісу.
--field-manager string Типово: "kubectl-expose"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, яки визначають ресурс, для експонування сервісу
-h, --help
Довідка expose
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
-l, --labels string
Мітки, які будуть застосовані до сервісу, створеного цим викликом.
--load-balancer-ip string
IP для призначення LoadBalancer. Якщо поле порожнє, буде створено та використано ефемерний IP (залежить від хмарного провайдера).
Метод, який використовується для перевизначення згенерованого обʼєкта: json, merge або strategic.
--overrides string
Вбудоване перевизначення JSON для згенерованого обʼєкта. Якщо він не порожній, то використовується для перевизначення згенерованого обʼєкта. Вимагає, щоб обʼєкт надавав дійсне поле apiVersion.
--port string
Порт, на якому має працювати сервіс. Копіюється з ресурсу, що експонується, якщо не вказано
--protocol string
Мережевий протокол для сервісу, який буде створено. Стандартно — "TCP".
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--selector string
Селектор міток, який потрібно використовувати для цього сервісу. Підтримуються лише вимоги до селектора на основі рівності. Якщо порожньо (стандартно), виводитиметься селектор з експонованого ресурсу.
--session-affinity
Якщо не порожньо, встановлює сесійну подібнітсть для сервісу. Допустимі значення: None, ClientIP.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--target-port string
Назва або номер порту в контейнері, на який сервіс повинен спрямовувати трафік. Необовʼязково.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--type string
Тип сервісу: ClusterIP, NodePort, LoadBalancer або ExternalName. Стандартно використовується 'ClusterIP'.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Виводить таблицю з найважливішою інформацією про вказані ресурси. Ви можете відфільтрувати список за допомогою селектора міток і прапорця --selector. Якщо потрібний тип ресурсу є простором назв, ви побачите результати лише у поточному просторі назв, якщо не вказати якийсь namespaces.
Зазначивши виведення як "template" і надавши шаблон Go як значення прапорця --template, ви можете відфільтрувати атрибути отриманих ресурсів.
Для отримання повного списку підтримуваних ресурсів скористайтеся "kubectl api-resources".
kubectl get [(-o|--output=)json|yaml|kyaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file|custom-columns|custom-columns-file|wide](TYPE[.VERSION][.GROUP][NAME | -l label]| TYPE[.VERSION][.GROUP]/NAME ...)[flags]
Приклади
# Вивести перелік всіх Podʼів у форматі виводу pskubectl get pods
# Вивести перелік всії Podʼів у форматі виводу ps з додатковою інформацією (наприклад, імʼя вузла)kubectl get pods -o wide
# Вивести перелік один контролер реплікації з вказаним NAME у форматі виводу pskubectl get replicationcontroller web
# Вивести перелік deployment у форматі виводу JSON, у версії "v1" групи API "apps"kubectl get deployments.v1.apps -o json
# Вивести один Pod у форматі виводу JSONkubectl get -o json pod web-pod-13je7
# Вивести перелік Podʼів, визначений типом та іменем у "pod.yaml", у форматі виводу JSONkubectl get -f pod.yaml -o json
# Вивести перелік ресурси з теки з kustomization.yaml - наприклад, dir/kustomization.yamlkubectl get -k dir/
# Повернути лише значення фази вказаного Podkubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}# Вивести перелік інформації про ресурси у власних стовпцяхkubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image
# Вивести перелік всіх контролерів реплікації та сервіси разом у форматі виводу pskubectl get rc,services
# Вивести перелік один або більше ресурсів за їх типом та іменамиkubectl get rc/web service/frontend pods/web-pod-13je7
# Вивести перелік субресурс 'status' для одного Podkubectl get pod web-pod-13je7 --subresource status
# Вивести перелік всіх deployments в namespace 'backend'kubectl get deployments.apps --namespace backend
# Вивести перелік всіх pods пристуніх в усіх namespaceskubectl get pods --all-namespaces
Параметри
-A, --all-namespaces
Якщо вказано, показати список запитуваних обʼєктів у всіх просторах назв. Простір імен у поточному контексті ігнорується, навіть якщо вказано --namespace.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--chunk-size int Типово: 500
Повертати великі списки частинами, а не всі одразу. Для вимкнення задайте 0.
--field-selector string
Селектор (запит поля) для фільтрації підтримує '=', '==' і '!=' (наприклад, --field-selector key1=value1,key2=value2). Сервер підтримує лише обмежену кількість запитів до полів кожного типу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, яки визначають ресурс, для отримання з сервера.
-h, --help
Довідка get
--ignore-not-found
Якщо встановлено значення true, придушує помилку NotFound для певних обʼєктів, які не існують. Використання цього прапорця з командами, що запитують колекції ресурсів, не має ефекту, якщо ресурси не знайдено.
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
-L, --label-columns strings
Приймає список міток, розділених комами, які буде представлено у вигляді стовпчиків. Назви чутливі до регістру. Ви також можете використовувати декілька прапорців, наприклад, -L label1 -L label2...
--no-headers
При використанні стандартного або власного формату виводу стовпців не друкувати заголовки (заголовки стандартно друкуються).
Виводити обʼєкти подій спостереження, якщо використовується --watch або --watch-only. Існуючі обʼєкти виводяться як початкові події ADDED.
--raw string
Необроблений URI для запиту з сервер. Використовує транспорт, вказаний у файлі kubeconfig.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--server-print Типово: true
Якщо це значення true, сервер має повернути відповідний вивід таблиці. Підтримує API розширення та CRD.
--show-kind
Якщо є, вкажіть тип ресурсу для запитуваного обʼєкта (обʼєктів).
--show-labels
Під час друку показувати всі мітки в останньому стовпчику (стандартно приховувати стовпчик міток)
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--sort-by string
Якщо поле не порожнє, відсортувати список ресурсів за вказаним полем. Специфікація поля виражається у вигляді виразу JSONPath (наприклад, '{.metadata.name}'). Поле в ресурсі API, визначене цим виразом JSONPath, має бути цілим чи рядком.
--subresource string
Якщо вказано, редагування працюватиме з субресурсом запитуваного обʼєкта.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
-w, --watch
Після отримання списку бажаних подій слідкувати за новими подіями.
--watch-only
Спостерігати за змінами запитуваного обʼєкта (обʼєктів), не переглядаючи/отримуючи їх спочатку.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Файл kuberc дозволяє налаштувати вашу роботу з kubectl.
kubectl kuberc SUBCOMMAND
Приклади
# Переглянути поточну конфігурацію kuberckubectl kuberc view
# Встановити стандартне значення для прапорця командиkubectl kuberc set --section defaults --command get --option output=wide
# Створити аліас для командиkubectl kuberc set --section aliases --name getn --command get --prependarg nodes --option output=wide
Параметри
-h, --help
довідка для kuberc
Успадковані батьківські параметри
--as string
Імʼя користувача для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група для виконання операції, цей прапорець можна повторювати для вказівки кількох груп.
--as-uid string
UID для виконання операції.
--as-user-extra strings
Додаткові дані користувача для виконання операції, цей прапорець можна повторювати для вказівки кількох значень для одного ключа.
--cache-dir string Default: "$HOME/.kube/cache"
Стандартна тека кешу
--certificate-authority string
Шлях до файлу сертифіката для центру сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу клієнтського ключа для TLS
--cluster string
Назва кластера kubeconfig для використання
--context string
Назва контексту kubeconfig для використання
--disable-compression
Якщо true, відмовитися від стиснення відповідей для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання незахищеними
--kubeconfig string
Шлях до файлу kubeconfig для використання в запитах CLI.
--kuberc string
Шлях до файлу kuberc для використання налаштувань. Це можна вимкнути, експортувавши KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагати, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, область простору імен для цього запиту CLI
--password string
Пароль для базової автентифікації до API сервера
--profile string Default: "none"
Назва профілю для захоплення. Одне з (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Default: "profile.pprof"
Назва файлу для запису профілю
--request-timeout string Default: "0"
Тривалість часу очікування перед відмовою від одного запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає, що запити не повинні мати обмеження за часом.
Використовуйте --section, щоб вказати, чи встановлювати стандартні значення чи аліаси.
Для стандартних значень: Встановлює стандартні значення прапорців для команд kubectl. Прапорець --command повинен вказувати лише команду (наприклад, "get", "create", "set env"), не ресурси.
Для аліасів: Створює аліас команд з опціональними значеннями прапорців та аргументами. Використовуйте --prependarg та --appendarg, щоб включити ресурси або інші аргументи.
kubectl kuberc set --section (defaults|aliases) --command COMMAND
Приклади
# Встановити стандартний формат виводу команди 'get' kubectl kuberc set --section defaults --command get --option output=wide
# Встановити стандартний формат виводу для підкоманди kubectl kuberc set --section defaults --command "set env" --option output=yaml
# Створити аліас 'getn' для команди 'get' з попередньо доданим ресурсом 'nodes' kubectl kuberc set --section aliases --name getn --command get --prependarg nodes --option output=wide
# Створити аліас 'runx' для команди 'run' з доданими аргументами kubectl kuberc set --section aliases --name runx --command run --option image=nginx --appendarg "--" --appendarg custom-arg1
# Перезаписати наявне стандартне значення kubectl kuberc set --section defaults --command get --option output=json --overwrite
# Встановити політику втулка облікових даних та дозволений список kubectl kuberc set --section credentialplugin --policy Allowlist --allowlist-entry command=cloud-credential-helper
Параметри
--allowlist-entry strings
Елемент allowlist у формі field=value (можна вказувати кілька разів)
--appendarg strings
Аргумент для додавання до команди (можна вказувати кілька разів, лише для аліасів)
--command string
Команда для налаштування (наприклад, 'get', 'create', 'set env')
-h, --help
довідка для set
--kuberc string
Шлях до файлу kuberc для використання налаштувань. Це можна вимкнути, експортувавши KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--name string
Назва аліасу (обовʼязково для --section=aliases)
--option strings
Опція прапорця у формі flag=value (можна вказувати кілька разів)
--overwrite
Дозволити перезапис наявних записів
--policy string
Політика втулка для використання з exec credential plugins, повинна бути однією з 'AllowAll', 'DenyAll' або 'Allowlist'
--prependarg strings
Аргумент для додавання на початку команди (можна вказувати кілька разів, лише для аліасів)
--section string
Розділ для модифікації: 'defaults', 'aliases' або 'credentialplugin'
Успадковані батьківські параметри
--as string
Імʼя користувача для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група для виконання операції, цей прапорець можна повторювати для вказівки кількох груп.
--as-uid string
UID для виконання операції.
--as-user-extra strings
Додаткові дані користувача для виконання операції, цей прапорець можна повторювати для вказівки кількох значень для одного ключа.
--cache-dir string Default: "$HOME/.kube/cache"
Стандартна тека кешу
--certificate-authority string
Шлях до файлу сертифіката для центру сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу клієнтського ключа для TLS
--cluster string
Назва кластера kubeconfig для використання
--context string
Назва контексту kubeconfig для використання
--disable-compression
Якщо true, відмовитися від стиснення відповідей для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig для використання в запитах CLI.
--match-server-version
Вимагати, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, область простору імен для цього запиту CLI
--password string
Пароль для базової автентифікації до API сервера
--profile string Default: "none"
Назва профілю для захоплення. Одне з (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Default: "profile.pprof"
Назва файлу для запису профілю
--request-timeout string Default: "0"
Тривалість часу очікування перед відмовою від одного запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає, що запити не повинні мати обмеження за часом.
Якщо true, ігнорувати будь-які помилки в шаблонах, коли поле або ключ map відсутні в шаблоні. Застосовується лише до форматів виводу golang та jsonpath.
-h, --help
довідка для view
--kuberc string
Шлях до файлу kuberc для використання налаштувань. Це можна вимкнути, експортувавши KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — це шаблони golang [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група для виконання операції, цей прапорець можна повторювати для вказівки кількох груп.
--as-uid string
UID для виконання операції.
--as-user-extra strings
Додаткові дані користувача для виконання операції, цей прапорець можна повторювати для вказівки кількох значень для одного ключа.
--cache-dir string Default: "$HOME/.kube/cache"
Стандартна тека кешу
--certificate-authority string
Шлях до файлу сертифіката для центру сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу клієнтського ключа для TLS
--cluster string
Назва кластера kubeconfig для використання
--context string
Назва контексту kubeconfig для використання
--disable-compression
Якщо true, відмовитися від стиснення відповідей для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання незахищеним
--kubeconfig string
Шлях до файлу kubeconfig для використання в запитах CLI.
--match-server-version
Вимагати, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, область простору імен для цього запиту CLI
--password string
Пароль для базової автентифікації в API сервері
--profile string Default: "none"
Назва профілю для захоплення. Одне з (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Default: "profile.pprof"
Назва файлу для запису профілю
--request-timeout string Default: "0"
Тривалість часу очікування перед відмовою від одного запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає, що запити не повинні мати обмеження за часом.
Створює цільову конфігурацію Kustomize з теки або URL
Огляд
Створення набору ресурсів KRM за допомогою файлу 'kustomization.yaml'. Аргумент DIR має бути шляхом до теки з файлом 'kustomization.yaml' або URL-адресою git-сховища з суфіксом шляху, що вказує на те саме відносно кореня сховища. Якщо DIR не вказано, буде використано символ ".".
kubectl kustomize DIR [flags]
Приклади
# Створити поточну робочу текуkubectl kustomize
# Створити теку конфігурації зі спільним доступомkubectl kustomize /home/config/production
# Побудувати з githubkubectl kustomize https://github.com/kubernetes-sigs/kustomize.git/examples/helloWorld?ref=v1.0.6
Параметри
--as-current-user
використовувати uid та gid виконавця команди для запуску функції в контейнері
--enable-alpha-plugins
увімкнути втулки kustomize
--enable-helm
Увімкніть використання генератора наповнювача чартів Helm.
-e, --env strings
список змінних оточення, які будуть використовуватися функціями
--helm-api-versions strings
Версії Kubernetes api, що використовуються Helm для Capabilities.APIVersions
--helm-command string Типово: "helm"
команда helm (шлях до виконавчого файлу)
--helm-debug
Увімкнути налагоджувальний вивід з генератора інфлятора чартів Helm.
--helm-kube-version string
Версія Kubernetes, що використовується Helm для Capabilities.KubeVersion
якщо встановлено значення 'LoadRestrictionsNone', локальні кастомізації можуть завантажувати файли ззовні свого кореня. Однак це порушує можливість переміщення кастомізації.
--mount strings
список параметрів сховища, отриманий з файлової системи
--network
вмикає доступ до мережі для функцій, які декларують про це
--network-name string Типово: "bridge"
мережа docker для запуску контейнера
-o, --output string
Якщо вказано, записати вивід у цей шлях.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Ключ і значення мітки повинні починатися з літери або цифри і можуть містити літери, цифри, дефіси, крапки і підкреслення, до 63 символів кожна.
За бажанням, ключ може починатися з префікса субдомену DNS і одного символу "/", наприклад, example.com/my-app.
Якщо --overwrite має значення true, то наявні мітки можна перезаписати, інакше спроба перезаписати мітку призведе до помилки.
Якщо вказано --resource-version, то під час оновлення буде використано цю версію ресурсу, інакше буде використано наявну версію ресурсу.
kubectl label [--overwrite](-f FILENAME | TYPE NAME)KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
Приклади
# Оновити pod 'foo' міткою 'unhealthy' і значенням 'true'kubectl label pods foo unhealthy=true# Оновити pod 'foo' міткою 'status' і значенням 'unhealthy', замінивши будь-яке існуюче значенняkubectl label --overwrite pods foo status=unhealthy
# Оновити всі pods у просторі назвkubectl label pods --all status=unhealthy
# Оновити pod, визначений за типом та назвою у файлі "pod.json"kubectl label -f pod.json status=unhealthy
# Оновлювати pod 'foo' тільки якщо ресурс не змінився з версії 1kubectl label pods foo status=unhealthy --resource-version=1# Оновити pod 'foo', видаливши мітку з назвою 'bar', якщо вона існує# Не потребує прапорця --overwritekubectl label pods foo bar-
Параметри
--all
Вибрати всі ресурси у просторі імен вказаних типів ресурсів.
-A, --all-namespaces
Якщо true, перевірити вказану дію в усіх просторах імен.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-label"
Імʼя менеджера, що використовується для відстеження права власності на поле.
--field-selector string
Селектор (запит поля) для фільтрації підтримує '=', '==' і '!=' (наприклад, --field-selector key1=value1,key2=value2). Сервер підтримує лише обмежену кількість запитів до полів кожного типу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, яки визначають ресурс, для оновлення міток.
-h, --help
Довідка label
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--list
Якщо true, показувати мітки для даного ресурсу.
--local
Якщо значення true, мітка НЕ буде звертатися до api-server, а виконуватиметься локально.
Якщо true, дозволити перезапис міток, інакше відхиляти оновлення міток, які перезаписують наявні мітки.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--resource-version string
Якщо значення не порожнє, оновлення мітки буде успішним, тільки якщо це поточна версія ресурсу для обʼєкта. Дійсно лише при зазначенні одного ресурсу.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Вивести знімок логів з Podʼа nginx з одним контейнеромkubectl logs nginx
# Вивести знімки логів з пакета nginx, додаючи до кожного рядка імʼя вихідного пакета та контейнера.kubectl logs nginx --prefix
# Вивести знімки логів з pod nginx, обмеживши виведення до 500 байтkubectl logs nginx --limit-bytes=500# Вивести знімки логів з pod nginx, зачекавши до 20 секунд на їх запуск.kubectl logs nginx --pod-running-timeout=20s
# Вивести знімок логів з Podʼа nginx з кількома контейнерамиkubectl logs nginx --all-containers=true# Вивести знімок логів з всіх Podʼів в deployment nginxkubectl logs deployment/nginx --all-pods=true# Вивести знімок логів з усіх контейнерів у Podʼах, визначених міткою app=nginxkubectl logs -l app=nginx --all-containers=true# Вивести знімок логів з всіх Podʼів з міткою app=nginx, обмживши запити логів 10 Podʼамиkubectl logs -l app=nginx --max-log-requests=10# Вивести знімок логів з попереднього завершеного контейнера ruby з Podʼа web-1kubectl logs -p -c ruby web-1
# Почати трансляцію логів з Podʼа nginx, продовжувати навіть за наявності помилокkubectl logs nginx -f --ignore-errors=true# Почати трансляцію логів контейнера ruby у Podʼі web-1kubectl logs -f -c ruby web-1
# Почати трансляцію логів з усіх контейнерів у Podʼах, визначених міткою app=nginxkubectl logs -f -l app=nginx --all-containers=true# Показати лише останні 20 рядків виводу в Podʼі nginxkubectl logs --tail=20 nginx
# Показати всі логи з Podʼа nginx, записані за останню годинуkubectl logs --since=1h nginx
# Показати всі логи з позначками часу від Podʼа nginx, починаючи з 30 серпня 2024 року, о 06:00:00 UTCkubectl logs nginx --since-time=2024-08-30T06:00:00Z --timestamps=true# Показати логи з kubelet з простроченим сертифікатом сервераkubectl logs --insecure-skip-tls-verify-backend nginx
# Вивести знімок логів з першого контейнера завдання з назвою hellokubectl logs job/hello
# Вивести знімок логів з контейнера nginx-1 у deployment з назвою nginxkubectl logs deployment/nginx -c nginx-1
Параметри
--all-containers
Отримайте логи всіх контейнерів у pod(ах).
--all-pods
Отримати логи з усіх Pod(ів). Встановлює префікс у true.
-c, --container string
Вивести логи цього контейнера
-f, --follow
Вкажіть, чи потрібно транслювати логи.
-h, --help
Довідка logs
--ignore-errors
Якщо ви переглядаєте / стежите за логами pod, дозвольте будь-яким помилкам, що трапляються, бути не фатальними
--insecure-skip-tls-verify-backend
Пропустити перевірку ідентичності kubelet, з якого запитуються логи. Теоретично, зловмисник може повернути недійсний вміст логу. Можливо, ви захочете використати цей параметр, якщо термін дії сертифікатів, що обслуговують ваш kubelet, закінчився.
--limit-bytes int
Максимальна кількість байт логів для виводу. Стандартно без обмежень.
--max-log-requests int Типово: 5
Вкажіть максимальну кількість паралельних логів, які слід відстежувати при використанні селектора. Стандартно встановлено значення 5.
--pod-running-timeout duration Типово: 20s
Тривалість часу (наприклад, 5s, 2m або 3h, більше нуля) для очікування, поки не запрацює хоча б один Pod
--prefix
До початку кожного рядка логу додайте джерело логу (імʼя pod та імʼя контейнера)
-p, --previous
Якщо true, вивести логи для попереднього екземпляра контейнера в pod, якщо він існує.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--since duration
Виводити лише ті логи, що є новішими за відносну тривалість, наприклад, 5s, 2m або 3h. Стандартно для всіх логів. Можна використовувати лише один з параметрів since-time / since.
--since-time string
Виводити логи лише після певної дати (RFC3339). Стандартно для всіх логів. Можна використовувати лише один з параметрів since-time / since.
--tail int Типово: -1
Рядки нещодавнього файлу логу для показу. Стандартно дорівнює -1 без селектора, показуючи всі рядки логу, інакше 10, якщо селектор вказано.
--timestamps
Додайте мітки часу до кожного рядка у виводі логу
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Виводить список прапорців, успадкованих усіма командами
Огляд
Виводить список прапорців, успадкованих усіма командами
kubectl options [flags]
Приклади
# Вивести список прапорців, успадкованих усіма командамиkubectl options
Параметри
-h, --help
Довідка options
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Оновлення полів ресурсу за допомогою патча стратегічного злиття, патча злиття JSON або патча JSON.
Підтримуються формати JSON і YAML.
Примітка: Стратегічне злиття не підтримується для власних ресурсів користувача.
kubectl patch (-f FILENAME | TYPE NAME)[-p PATCH|--patch-file FILE]
Приклади
# Частково оновити вузол за допомогою патчів стратегічного злиття, вказавши патч як JSONkubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'# Частково оновити вузол за допомогою патчів стратегічного злиття, вказавши патч як YAMLkubectl patch node k8s-node-1 -p $'spec:\n unschedulable: true'# Частково оновити вузол, визначений типом та імʼям у "node.json", за допомогою патчів стратегічного злиттяkubectl patch -f node.json -p '{"spec":{"unschedulable":true}}'# Оновити образ контейнера; spec.containers[*].name є обовʼязковим, оскільки це ключ для злиттяkubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'# Оновити образ контейнера за допомогою патча JSON з позиційними масивамиkubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'# Оновити кількість реплік deployment через субресурс 'scale' за допомогою злиття патчівkubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-patch"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, яки визначають ресурс для оновлення.
-h, --help
Довідка patch
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--local
Якщо true, патч буде працювати з вмістом файлу, а не з ресурсом на стороні сервера.
Патч, який буде застосовано до JSON-файлу ресурсу.
--patch-file string
Файл, що містить патч, який буде застосовано до ресурсу.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--subresource string
Якщо вказано, редагування працюватиме з субресурсом запитуваного обʼєкта.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--type string Типово: "strategic"
Тип патчу, що застосовується; один з [json merge strategic].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Втулки надають розширену функціональність, яка не є частиною основного коду kubectl. Будь ласка, зверніться до документації та прикладів для отримання додаткової інформації про те, як писати власні втулки.
Найпростіший спосіб знайти та встановити втулки — за допомогою субпроєкту kubernetes krew. Щоб встановити krew, відвідайте krew.sigs.k8s.io.
kubectl plugin [flags]
Приклади
# Вивести перелік всіх доступних втулківkubectl plugin list
# Вивести перелік назв двійкових файлів доступних втулків без шляхівkubectl plugin list --name-only
Параметри
-h, --help
Довідка plugin
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl plugin list — список усіх виконуваних файлів втулків видимих у PATH користувача
11.2.33.1 - kubectl plugin list
Показує всі доступні файли втулків у PATH користувача
Огляд
Показати всі доступні файли втулків у PATH користувача. Для виводу тільки назв двійкових файлів використовуйте прапорець --name-only.
Доступними вважаються файли втулків, які є:
виконуваними
будь-де в PATH користувача
починаються з "kubectl-"
kubectl plugin list [flags]
Приклади
# Вивести перелік всіх доступних втулківkubectl plugin list
# Вивести перелік назв двійкових файлів доступних втулків без шляхівkubectl plugin list --name-only
Параметри
-h, --help
Довідка list
--name-only
Якщо значення true, показувати лише назву команди кожного втулка, а не повний шлях до нього
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl plugin — Впроваджує утиліти для взаємодії з втулками.
11.2.34 - kubectl port-forward
Перенаправте один або кілька локальних портів у Pod
Огляд
Перенаправте один або кілька локальних портів у Pod.
Використовуйте тип/назву ресурсу, наприклад, deployment/mydeployment, для вибору Podʼа. Якщо його не вказано, тип ресурсу стандартно дорівнюватиме 'pod'.
Якщо є кілька Podʼів, що відповідають критеріям, автоматично буде обрано один з них. Сеанс перенаправлення завершується після завершення роботи вибраного Podʼа, і для відновлення перенаправлення потрібно повторно виконати команду.
# Слухати на портах 5000 і 6000 локально, перенаправляючи дані з/на порти 5000 і 6000 у Podkubectl port-forward pod/mypod 50006000# Слухати на портах 5000 і 6000 локально, перенаправляючи дані з/на порти 5000 і 6000 у Pod, обраний за допомогою deploymentkubectl port-forward deployment/mydeployment 50006000# Слухати на порту 8443 локально, перенаправляючи на targetPort порту сервісу з імʼям "https" у Pod, обраний за допомогою сервісуkubectl port-forward service/myservice 8443:https
# Слухати на порту 8888 локально, перенаправляючи на порт 5000 у Podkubectl port-forward pod/mypod 8888:5000
# Слухати на порту 8888 на всіх адресах, перенаправляючи на порт 5000 у Podkubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000
# Слухати на порту 8888 на localhost та вибраній IP-адресі, перенаправляючи на порт 5000 у Podkubectl port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000
# Слухати на випадковому порту локально, перенаправляючи на 5000 у Podkubectl port-forward pod/mypod :5000
Параметри
--address strings Типово: "localhost"
Адреси для прослуховування (через кому). Допускається вказувати лише IP-адреси або localhost. Якщо вказано localhost, kubectl спробує привʼязатися до адрес 127.0.0.1 та ::1 і завершить роботу, якщо жодна з цих адрес не буде доступною для привʼязки.
-h, --help
Довідка port-forward
--pod-running-timeout duration Типово: 1m0s
Тривалість часу (наприклад, 5s, 2m або 3h, більше нуля) для очікування, поки не запрацює хоча б один Pod
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Запуск проксі-сервера для доступу до API-сервера Kubernetes
Огляд
Створює проксі-сервер або шлюз на рівні програми між localhost і сервером API Kubernetes. Він також дозволяє передавати статичний вміст за вказаним HTTP-шляхом. Всі вхідні дані надходять через один порт і перенаправляються на порт віддаленого сервера Kubernetes API, за винятком шляху, що збігається зі шляхом до статичного контенту.
# Проксіювати Kubernetes API і більше нічогоkubectl proxy --api-prefix=/
# Проксіювати лише частину Kubernetes API та деякі статичні файли# Ви можете отримати інформацію про Podʼи за допомогою 'curl localhost:8001/api/v1/pods'kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/
# Проксіювати весь Kubernetes API за іншим коренем# Ви можете отримати інформацію про Podʼи за допомогою 'curl localhost:8001/custom/api/v1/pods'kubectl proxy --api-prefix=/custom/
# Запустити проксі до сервера Kubernetes API на порту 8011, обслуговуючи статичний контент з ./local/www/kubectl proxy --port=8011 --www=./local/www/
# Запустити проксі до сервера Kubernetes API на довільному локальному порту# Обраний порт для сервера буде виведено в stdoutkubectl proxy --port=0# Запустити проксі до сервера Kubernetes API, змінюючи префікс API на k8s-api# Це робить, наприклад, API підів доступним за адресою localhost:8001/k8s-api/v1/pods/kubectl proxy --api-prefix=/k8s-api
Регулярний вираз для хостів, які повинен приймати проксі.
--accept-paths string Типово: "^.*"
Регулярний вираз для шляхів, які повинен приймати проксі.
--address string Типово: "127.0.0.1"
IP-адреса, на якій буде здійснюватися обслуговування.
--api-prefix string Типово: "/"
Префікс для обслуговування проксі API.
--append-server-path
Якщо значення true, вмикає автоматичне додавання шляху до сервера kube context до кожного запиту.
--disable-filter
Якщо це значення встановлено, воно вимикає фільтрацію запитів у проксі-сервері. Це небезпечно і може зробити вас вразливими до XSRF-атак, якщо ви використовуєте відкритий порт.
-h, --help
Довідка proxy
--keepalive duration
keepalive задає період підтримки активного мережевого зʼєднання. Встановіть значення 0, щоб вимкнути keepalive.
-p, --port int Типово: 8001
Порт, на якому буде запущено проксі. Встановіть 0, щоб вибрати випадковий порт.
--reject-methods string Типово: "^$"
Регулярний вираз для HTTP-методів, які проксі повинен відхиляти (еаприклад --reject-methods='POST,PUT,PATCH').
Регулярний вираз для шляхів, які проксі має відхиляти. Шляхи, вказані тут, буде відхилено, навіть якщо їх буде прийнято за допомогою --accept-paths.
-u, --unix-socket string
Сокет Unix, на якому буде запущено проксі.
-w, --www string
Також обслуговуватимуться статичні файли із заданої теки з вказаним префіксом.
-P, --www-prefix string Типово: "/static/"
Префікс для обслуговування статичних файлів, якщо вказано теку зі статичними файлами.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Приймаються формати JSON та YAML. Якщо ви замінюєте наявний ресурс, необхідно надати повну специфікацію ресурсу. Її можна отримати за допомогою
kubectl get TYPE NAME -o yaml
kubectl replace -f FILENAME
Приклади
# Замінити pod, використовуючи дані з pod.jsonkubectl replace -f ./pod.json
# Замінити pod на основі JSON, переданого в stdincat pod.json | kubectl replace -f -
# Оновити версію образу (тег) одноконтейнерного pod до v4kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/'| kubectl replace -f -
# Примусово замінити, видалити, а потім перестворити ресурсkubectl replace --force -f ./pod.json
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
Має бути "background", "orphan" або "foreground". Вибирає стратегію каскадного видалення для залежних елементів (наприклад, Podʼів, створених Replication Controller). Стандартне значення — background.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-replace"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлів, яки містять конфігурацію для заміни.
--force
Якщо true, негайно видалити ресурси з API і обійти належне видалення. Зверніть увагу, що негайне видалення деяких ресурсів може призвести до неузгодженості або втрати даних і потребує підтвердження.
--grace-period int Типово: -1
Період часу в секундах, який дається ресурсу для належного завершення роботи. Якщо значення відʼємнеі – ігнорується. Встановіть значення 1 для негайного припинення роботи. Можна встановити у 0, лише якщо --force має значення true (примусове видалення).
-h, --help
Довідка replace
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Необроблений URI для PUT на сервер. Використовує транспорт, вказаний у файлі kubeconfig.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--subresource string
Якщо вказано, редагування працюватиме з субресурсом запитуваного обʼєкта.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--timeout duration
Час очікування перед прийнятям рішення про відмову видалення, нуль означає визначення тайм-ауту за розміром обʼєкту
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
--wait
Якщо true, очікувати, поки ресурси зникнуть, перш ніж повернутися. Очікує фіналізаторів.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Керування розгортанням одного або декількох ресурсів
Керування розгортанням одного або декількох ресурсів.
Допустимі типи ресурсів включають:
deployments
daemonsets
statefulsets
kubectl rollout SUBCOMMAND
Приклади
# Відкотитись до попереднього deploymentkubectl rollout undo deployment/abc
# Перевірити статус розгортання daemonsetkubectl rollout status daemonset/foo
# Перезапустити deploymentkubectl rollout restart deployment/abc
# Перезапустити deployment з міткою 'app=nginx'kubectl rollout restart deployment --selector=app=nginx
Параметри
-h, --help
Довідка rollout
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Переглянути попередні версії та конфігурації розгортання.
kubectl rollout history(TYPE NAME | TYPE/NAME)[flags]
Приклади
# Переглянути історію розгортання deploymentkubectl rollout history deployment/abc
# Переглянути деталі daemonset ревізії 3kubectl rollout history daemonset/abc --revision=3
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, який потрібно отримати з сервера.
-h, --help
Довідка history
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--revision int
Переглянути деталі, включаючи podTemplate вказаної ревізії
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Призупинені ресурси не будуть узгоджуватися контролером. Щоб відновити роботу призупиненого ресурсу, скористайтеся "kubectl rollout resume". Наразі призупинення підтримується лише у deployment.
kubectl rollout pause RESOURCE
Приклади
# Позначити deployment nginx як призупинений# Будь-який поточний стан deployment продовжить свою роботу; нові оновлення# deployment не матимуть ефекту, доки deployment призупиненоkubectl rollout pause deployment/nginx
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--field-manager string Типово: "kubectl-rollout"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, який потрібно отримати з сервера.
-h, --help
Довідка pause
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
# Перезапустити всі deployment у просторі імен test-namespacekubectl rollout restart deployment -n test-namespace
# Перезапустіть deploymentkubectl rollout restart deployment/nginx
# Перезапустити набір демонівkubectl rollout restart daemonset/abc
# Перезапустити deployment з міткою app=nginxkubectl rollout restart deployment --selector=app=nginx
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--field-manager string Типово: "kubectl-rollout"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, який потрібно отримати з сервера.
-h, --help
Довідка restart
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Призупинені ресурси не будуть узгоджуватися контролером. Відновивши ресурс, ми дозволимо йому знову бути узгодженим. Наразі лише deployments підтримують відновлення.
kubectl rollout resume RESOURCE
Приклади
# Відновити роботу призупиненого deploymentkubectl rollout resume deployment/nginx
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--field-manager string Типово: "kubectl-rollout"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, який потрібно отримати з сервера.
-h, --help
Довідка resume
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Стандартно "rollout status" буде стежити за статусом останнього розгортання, доки воно не завершиться. Якщо ви не бажаєте чекати на завершення розгортання, ви можете використати --watch=false. Зауважте, що якщо у проміжку між ними розпочнеться нове розгортання, то "rollout status" продовжуватиме стежити за останньою ревізією. Якщо ви хочете привʼязатися до певної ревізії і перервати процес, якщо його буде перенесено на іншу ревізію, скористайтеся --revision=N, де N — ревізія, за якою ви хочете стежити.
kubectl rollout status (TYPE NAME | TYPE/NAME)[flags]
Приклади
# Перегляд статусу розгортання deploymentkubectl rollout status deployment/nginx
Параметри
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, який потрібно отримати з сервера.
-h, --help
Довідка status
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--revision int
Закріпити за певною ревізією для показу її статусу. Стандартно дорівнює 0 (остання ревізія).
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--timeout duration
Час очікування перед прийнятям рішення про відмову видалення, нуль означає визначення тайм-ауту за розміром обʼєкту
-w, --watch Типово: true
Відстежувати статус розгортання, доки воно не завершиться.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl rollout undo (TYPE NAME | TYPE/NAME)[flags]
# Відкотитися до попередньої версії deploymentkubectl rollout undo deployment/abc
# Відкотитися до ревізії 3 daemonsetkubectl rollout undo daemonset/abc --to-revision=3# Перевірити відкат до попередньої версії за допомогою dry-runkubectl rollout undo --dry-run=server deployment/abc
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, який потрібно отримати з сервера.
-h, --help
Довідка undo
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--to-revision int
Ревізія для відкату. Стандартно 0 (остання ревізія).
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl run NAME --image=image [--env="key=value"][--port=port][--dry-run=server|client][--overrides=inline-json][--command] -- [COMMAND][args...]
Приклади
# Запустити pod nginxkubectl run nginx --image=nginx
# Запустити pod hazelcast і дозволити контейнеру відкривати порт 5701kubectl run hazelcast --image=hazelcast/hazelcast --port=5701# Запустити pod hazelcast і встановити змінні середовища "DNS_DOMAIN=cluster" та "POD_NAMESPACE=default" у контейнеріkubectl run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"# Запустити pod hazelcast і встановити мітки "app=hazelcast" та "env=prod" у контейнеріkubectl run hazelcast --image=hazelcast/hazelcast --labels="app=hazelcast,env=prod"# Імітація запуску; вивести відповідні обʼєкти API без їх створенняkubectl run nginx --image=nginx --dry-run=client
# Запустити pod nginx, але перевантажити spec частковим набором значень, розібраних з JSONkubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }'# Запустити pod busybox і тримати його на передньому плані, не перезапускати його, якщо він завершитьсяkubectl run -i -t busybox --image=busybox --restart=Never
# Запустити pod nginx, використовуючи стандартну команду, але використовуючи власні аргументи (arg1 .. argN) для цієї командиkubectl run nginx --image=nginx -- <arg1> <arg2> ... <argN>
# Запустити pod nginx, використовуючи іншу команду та власні аргументиkubectl run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
Параметри
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--annotations strings
Анотації для застосування до pod.
--attach
Якщо значення true, дочекайтеся запуску Pod, а потім приєднайтеся до нього так, ніби було викликано команду 'kubectl attach ...'. Стандартно має значення false, якщо не задано параметр '-i/--stdin', у цьому випадку значення буде true. За допомогою '--restart=Never' повертається код завершення процесу контейнера.
Має бути "background", "orphan" або "foreground". Вибирає стратегію каскадного видалення для залежних елементів (наприклад, Pods, створених ReplicationController). Стандартно — background.
--command
Якщо присутні істинні та додаткові аргументи, використовуйте їх як поле 'command' у контейнері, а не поле 'args', яке використовується стандартно.
--detach-keys string Default: "ctrl-p,ctrl-q"
Перевизначити послідовність клавіш для відключення контейнера.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--env strings
Змінні оточення для установки в контейнері.
--expose --port
Якщо значення true, створить сервіс ClusterIP, асоційований з podʼом. Потрібен --port.
--field-manager string Типово: "kubectl-run"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
імʼя файлу для заміни ресурсу.
--force
Якщо true, негайно видалити ресурси з API і обійти належне видалення. Зверніть увагу, що негайне видалення деяких ресурсів може призвести до неузгодженості або втрати даних і потребує підтвердження.
--grace-period int Default: -1
Період часу в секундах, який дається ресурсу для належного завершення роботи. Ігнорується, якщо значення відʼємне. Встановлюється у 1 для негайного завершення роботи. Може бути встановлено у 0, тільки якщо --force має значення true (примусове видалення).
-h, --help
Довідка run
--image string
Назва образу контейнера для запуску.
--image-pull-policy string
Політика отримання образів для контейнера. Якщо залишити порожнім, це значення не буде вказано клієнтом і буде використано сервером стандартна поведінка.
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
-l, --labels string
Мітки через кому для застосування до pod. Перевизначить попередні значення.
--leave-stdin-open
Якщо pod запущено в інтерактивному режимі або за допомогою stdin, залиште stdin відкритим після завершення першого приєднання. Типово, stdin буде закрито після завершення першого приєднання.
Метод, який використовується для перевизначення згенерованого обʼєкта: json, merge або strategic.
--overrides string
Вбудоване перевизначення JSON для згенерованого обʼєкта. Якщо він не порожній, то використовується для перевизначення згенерованого обʼєкта. Вимагає, щоб обʼєкт надавав дійсне поле apiVersion.
--pod-running-timeout duration Типово: 1m0s
Тривалість часу (наприклад, 5s, 2m або 3h, більше нуля) для очікування, поки не запрацює хоча б один Pod
--port string
Порт, який експонує цей контейнер.
--privileged
Якщо true, запустити контейнер у привілейованому режимі.
-q, --quiet
Якщо true, не виводити повідомлення.
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--restart string Типово: "Always"
Політика перезапуску Pod. Підтримувані значення: [Always, OnFailure, Never]
--rm
Якщо значення true, видалити pod після його виходу. Діє лише при приєднанні до контейнера, наприклад, за допомогою '--attach' або '-i/--stdin'.
--save-config
Якщо значення true, конфігурація поточного обʼєкта буде збережена в його анотації. В іншому випадку, анотацію буде збережено без змін. Цей прапорець корисно встановити, якщо ви хочете застосувати kubectl до цього обʼєкта у майбутньому.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
-i, --stdin
Залишати stdin відкритим на контейнері в pod, навіть якщо до нього нічого не приєднано.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--timeout duration
Час очікування перед прийнятям рішення про відмову видалення, нуль означає визначення таймауту залежно від розміру обʼєкта
-t, --tty
Призначити TTY для контейнера в pod.
--wait
Якщо true, очікувати, поки ресурси зникнуть, перш ніж повернутися. Очікує фіналізаторів.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Встановлення нового розміру для deployment, replica set, replication controller
Огляд
Встановлення нового розміру для deployment, replica set, replication controller або stateful set.
Scale також дозволяє користувачам вказати одну або декілька передумов для дії масштабування.
Якщо вказано параметр --current-replicas або --resource-version, його буде перевірено перед спробою масштабування, і буде гарантовано, що передумови буде виконано, коли масштабування буде надіслано на сервер.
kubectl scale [--resource-version=version][--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME)
Приклади
# Масштабувати replica set з назвою 'foo' до 3kubectl scale --replicas=3 rs/foo
# Масштабувати ресурс, визначений типом та назвою, вказаними у "foo.yaml", до 3kubectl scale --replicas=3 -f foo.yaml
# Якщо поточний розмір deployment з назвою mysql дорівнює 2, масштабувати mysql до 3kubectl scale --current-replicas=2 --replicas=3 deployment/mysql
# Масштабування декількох контролерів реплікаціїkubectl scale --replicas=5 rc/example1 rc/example2 rc/example3
# Масштабувати stateful set з назвою 'web' до 3kubectl scale --replicas=3 statefulset/web
Параметри
--all
Вибрати всі ресурси у просторі імен вказаних типів ресурсів.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--current-replicas int Типово: -1
Передумова для поточного розміру. Вимагає, щоб поточний розмір ресурсу відповідав цьому значенню для масштабування. -1 ( стандартно) для відсутності умови.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, якому потрібно задати новий розмір.
-h, --help
Довідка scale
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--replicas int
Нова бажана кількість реплік. Обовʼязково.
--resource-version string
Передумова для версії ресурсу. Вимагає, щоб поточна версія ресурсу відповідала цьому значенню для масштабування./p>
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--timeout duration
Час очікування перед прийнятям рішення про відмову видалення, нуль означає визначення тайм-ауту за розміром обʼєкту. Будь-які інші значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h).
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Ці команди допоможуть вам внести зміни до наявних ресурсів застосунку.
kubectl set SUBCOMMAND
Параметри
-h, --help
Довідка set
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl set subject — Оновити обліковий запис користувача, групи або сервісу у привʼязці ролі або привʼязці ролі кластера
11.2.40.1 - kubectl set env
Оновити змінні середовища у шаблоні Pod
Огляд
Оновити змінні середовища у шаблоні Pod.
Вивести перелік визначення змінних середовища в одному або декількох Pod, шаблонах Pod. Додати, оновити або видалити визначення змінних середовища контейнера в одному або декількох шаблонах Pod (в рамках контролерів реплікації або конфігурацій deployment). Переглянути або змінити визначення змінних середовища у всіх контейнерах у вказаних Pod або шаблонах Pod, або тільки тих, що відповідають шаблону.
Якщо передано "--env -", змінні середовища можуть бути прочитані зі STDIN за допомогою стандартного синтаксису env.
Перелік можливих ресурсів містить (незалежно від регістру):
kubectl set env RESOURCE/NAME KEY_1=VAL_1 ... KEY_N=VAL_N
Приклади
# Оновити deployment 'registry' новою змінною середовищаkubectl set env deployment/registry STORAGE_DIR=/local
# Вивести перелік змінних середовища, визначених в deployment 'sample-build'kubectl set env deployment/sample-build --list
# Вивести перелік змінних середовища, визначених у всіх podʼахkubectl set env pods --all --list
# Вивести змінений deployment у форматі YAML, не змінюючи обʼєкт на серверіkubectl set env deployment/sample-build STORAGE_DIR=/data -o yaml
# Оновити всі контейнери у всіх контролерах реплікації в проєкті, додавши змінну середовища ENV=prodkubectl set env rc --all ENV=prod
# Імпортувати змінні середовища з secretkubectl set env --from=secret/mysecret deployment/myapp
# Імпортувати змінні середовища з config map з префіксомkubectl set env --from=configmap/myconfigmap --prefix=MYSQL_ deployment/myapp
# Імпортувати конкретні ключі з config mapkubectl set env --keys=my-example-key --from=configmap/myconfigmap deployment/myapp
# Видалити змінну середовища ENV з контейнера 'c1' у всіх deploymentkubectl set env deployments --all --containers="c1" ENV-
# Видалити змінну середовища ENV з файлу визначення deployment на диску та# оновити конфігурацію deployment на серверіkubectl set env -f deploy.json ENV-
# Встановити деякі змінні середовища з локальної оболонки у конфігурацію deployment на серверіenv | grep RAILS_ | kubectl set env -e - deployment/registry
Параметри
--all
Якщо true, вибрати всі ресурси в просторі імен вказаних типів ресурсів
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
-c, --containers string Типово: "*"
Назви контейнерів у вибраних шаблонах pod для зміни, можна використовувати підстановочні знаки
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
-e, --env strings
Вкажіть пару ключ-значення для змінної оточення, яку потрібно встановити у кожному контейнері.
--field-manager string Типово: "kubectl-set"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, для оновлення env.
--from string
Імʼя ресурсу, з якого потрібно підʼєднати змінні оточення.
-h, --help
Довідка env
--keys strings
Список ключів через кому для імпорту з вказаного ресурсу
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--list
Якщо встановлено, виводити оточення та будь-які зміни у стандартному форматі. Цей прапорець буде вилучено, коли ми матимемо kubectl view env.
--local
Якщо значення true, set env НЕ звʼязуватиметься з api-serverʼом, а виконуватиметься локально.
Якщо true, дозволити перезапис оточення, інакше відхилити оновлення, які перезаписують існуюче оточення.
--prefix string
Префікс для додавання до імен змінних
-R, --recursive
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--resolve
Якщо true, показувати посилання на secret або configmap під час виведення списку змінних
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl set — встановлення певних властивостей для обʼєктів
11.2.40.2 - kubectl set image
Оновити наявні образи з шаблону Podʼа
Огляд
Оновити наявні образи контейнерів ресурсів.
Можливі ресурси включають (не чутливі до регістру):
kubectl set image (-f FILENAME | TYPE NAME)CONTAINER_NAME_1=CONTAINER_IMAGE_1 ... CONTAINER_NAME_N=CONTAINER_IMAGE_N
Приклади
# Встановити образ контейнера nginx в deployment як 'nginx:1.9.1', а образ контейнера busybox на 'busybox'kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
# Оновити образ контейнера nginx у всіх deployment та контролерах реплікації на 'nginx:1.9.1'kubectl set image deployments,rc nginx=nginx:1.9.1 --all
# Оновити образи всіх контейнерів у daemonset abc на 'nginx:1.9.1'kubectl set image daemonset abc *=nginx:1.9.1
# Вивести результат (у форматі yaml) оновлення образу контейнера nginx з локального файлу, без звернення до сервераkubectl set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yaml
Параметри
--all
Якщо true, вибрати всі ресурси в просторі імен вказаних типів ресурсів
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-set"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, для отримання ресурсів з сервера.
-h, --help
Довідка image
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--local
Якщо значення true, set image НЕ звʼязуватиметься з api-serverʼом, а виконуватиметься локально.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl set — встановлення певних властивостей для обʼєктів
11.2.40.3 - kubectl set resources
Оновити запити та ліміти обʼєктів з шаблону Podʼа
Огляд
Вказує вимоги до обчислювальних ресурсів (ЦП, памʼять) для будь-якого ресурсу, який визначає шаблон pod. Якщо pod успішно заплановано, йому гарантовано надається запитана кількість ресурсів, які він може використовувати до зазначених меж.
Для кожного обчислювального ресурсу, якщо межа вказана, а запит пропущено, стандартний запит буде дорівнювати межі.
Можливі ресурси включають (незалежно від регістру): Використовуйте "kubectl api-resources" для повного списку підтримуваних ресурсів.
kubectl set resources (-f FILENAME | TYPE NAME)([--limits=LIMITS & --requests=REQUESTS]
Приклади
# Встановити межі використання ЦП для контейнера nginx у deployment на "200m" та памʼяті на "512Mi"kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi
# Встановити запити та межі ресурсів для всіх контейнерів у deployment nginxkubectl set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi
# Видалити запити ресурсів для контейнерів у deployment nginxkubectl set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0# Вивести результат (у форматі yaml) оновлення меж використання ресурсів для контейнера nginx з локального файлу, без звернення до сервераkubectl set resources -f path/to/file.yaml --limits=cpu=200m,memory=512Mi --local -o yaml
Параметри
--all
Якщо true, вибрати всі ресурси в просторі імен вказаних типів ресурсів
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
-c, --containers string Типово: "*"
Назви контейнерів у вибраних шаблонах pod для зміни, стандартно вибрані всі контейнери, можна використовувати підстановочні знаки
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-set"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс, для отримання ресурсів з сервера.
-h, --help
Довідка resources
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--limits string
Вимоги до ресурсів для цього контейнера. Наприклад, 'cpu=100m,memory=256Mi'. Зверніть увагу, що серверні компоненти можуть призначати запити залежно від конфігурації сервера, наприклад, граничних діапазонів.
--local
Якщо значення true, set resources НЕ звʼязуватиметься з api-serverʼом, а виконуватиметься локально.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--requests string
Вимоги до ресурсів для цього контейнера. Наприклад, 'cpu=100m,memory=256Mi'. Зверніть увагу, що серверні компоненти можуть призначати запити залежно від конфігурації сервера, наприклад, граничних діапазонів.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl set — встановлення певних властивостей для обʼєктів
11.2.40.4 - kubectl set selector
Встановити селектор на ресурс
Огляд
Встановити селектор на ресурс. Зауважте, що новий селектор замінить старий, якщо ресурс вже мав селектор перед викликом команди 'set selector'.
Селектор повинен починатися з літери або цифри та може містити літери, цифри, дефіси, крапки та підкреслення, до 63 символів. Якщо вказано --resource-version, оновлення використовуватимуть цю версію ресурсу, інакше використовуватиметься наявна версія ресурсу. Примітка: зараз селектори можна встановлювати лише на обʼєкти типу Service.
kubectl set selector (-f FILENAME | TYPE NAME) EXPRESSIONS [--resource-version=version]
Приклади
# Встановіть мітки і селектор перед створенням пари deployment/servicekubectl create service clusterip my-svc --clusterip="None" -o yaml --dry-run=client | kubectl set selector --local -f - 'environment=qa' -o yaml | kubectl create -f -
kubectl create deployment my-dep --image=nginx -o yaml --dry-run=client | kubectl label --local -f - environment=qa -o yaml | kubectl create -f -
Параметри
--all
Якщо true, вибрати всі ресурси в просторі імен вказаних типів ресурсів
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-set"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс.
-h, --help
Довідка selector
--local
Якщо значення true, анотація НЕ звʼязуватиметься з api-сервером, а виконуватиметься локально.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--resource-version string
Якщо значення не порожнє, оновлення селекторів буде успішним, тільки якщо це поточна версія ресурсу для обʼєкта. Дійсно тільки при вказівці одного ресурсу.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl set — встановлення певних властивостей для обʼєктів
11.2.40.5 - kubectl set serviceaccount
Оновити службовий обліковий запис ресурсу
Огляд
Оновлення службового облікового запису ресурсів шаблону pod.
Можливі ресурси (нечутливі до регістру) можуть бути такими:
kubectl set serviceaccount (-f FILENAME | TYPE NAME) SERVICE_ACCOUNT
Приклади
# Встановити службовий обліковий запис nginx-deployment у serviceaccount1kubectl set serviceaccount deployment nginx-deployment serviceaccount1
# Вивести результат (у форматі YAML) оновленого deployment nginx з службовим обліковим записом з локального файлу, не звертаючись до сервера APIkubectl set sa -f nginx-deployment.yaml serviceaccount1 --local --dry-run=client -o yaml
Параметри
--all
Якщо true, вибрати всі ресурси в просторі імен вказаних типів ресурсів
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-set"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурс для отримання з сервера.
-h, --help
Довідка serviceaccount
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--local
Якщо значення true, set serviceaccount НЕ звʼязуватиметься з api-сервером, а виконуватиметься локально.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl set — встановлення певних властивостей для обʼєктів
11.2.40.6 - kubectl set subject
Оновлює user, group або service account в привʼязці ролей або кластерних ролях
Огляд
Оновлює user, group або service account в обʼєкті RoleBinding або ClusterRoleBinding.
kubectl set subject (-f FILENAME | TYPE NAME)[--user=username][--group=groupname][--serviceaccount=namespace:serviceaccountname][--dry-run=server|client|none]
Приклади
# Оновлення привʼязки кластерних ролей для serviceaccount1kubectl set subject clusterrolebinding admin --serviceaccount=namespace:serviceaccount1
# Оновлення привʼязки ролей для user1, user2 і group1kubectl set subject rolebinding admin --user=user1 --user=user2 --group=group1
# Вивести результат (у форматі YAML) оновлення субʼєктів привʼязки ролей локально, без звернення до сервераkubectl create rolebinding admin --role=admin --user=admin -o yaml --dry-run=client | kubectl set subject --local -f - --user=foo -o yaml
Параметри
--all
Якщо true, вибрати всі ресурси в просторі імен вказаних типів ресурсів
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-set"
Імʼя менеджера, що використовується для відстеження права власності на поле.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурси для оновлення.
--group strings
Групи для привʼязки до ролі.
-h, --help
Довідка subject
-k, --kustomize string
Обробити теку kustomization. Цей прапорець не можна використовувати разом з -f або -R.
--local
Якщо значення true, set subject НЕ звʼязуватиметься з api-сервером, а виконуватиметься локально.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--serviceaccount strings
Службові облікові записи для привʼязки до ролі.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--user strings
Імена користувачів для привʼязки до ролі.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl set — встановлення певних властивостей для обʼєктів
11.2.41 - kubectl taint
Оновлення taint на одному або декількох вузлах
Огляд
Оновлення taint на одному або декількох вузлах.
Taint складається з ключа, значення та ефекту. Як аргумент тут він має вигляд ключ=значення:ефект.
Ключ повинен починатися з літери або цифри і може містити літери, цифри, дефіси, крапки і підкреслення, до 253 символів.
За бажанням, ключ може починатися з префікса субдомену DNS і одного символу "/", наприклад, example.com/my-app.
Значення не є обовʼязковим. Якщо вказано, воно повинно починатися з літери або цифри і може містити літери, цифри, дефіси, крапки та символи підкреслення (до 63 символів).
Ефект має бути NoSchedule, PreferNoSchedule або NoExecute.
Наразі taint може бути застосовано лише до вузла.
kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N
Приклади
# Оновити вузол 'foo', додавши taint з ключем 'dedicated', значенням 'special-user' та ефектом 'NoSchedule'# Якщо taint з цим ключем та ефектом вже існує, його значення буде замінено на вказанеkubectl taint nodes foo dedicated=special-user:NoSchedule
# Видалити з вузла 'foo' taint з ключем 'dedicated' та ефектом 'NoSchedule', якщо він існуєkubectl taint nodes foo dedicated:NoSchedule-
# Видалити з вузла 'foo' всі taint з ключем 'dedicated'kubectl taint nodes foo dedicated-
# Додати taint з ключем 'dedicated' на вузли, що мають мітку myLabel=Xkubectl taint node -l myLabel=X dedicated=foo:PreferNoSchedule
# Додати до вузла 'foo' taint з ключем 'bar' без значенняkubectl taint nodes foo bar:NoSchedule
Параметри
--all
Вибрати всі вузли в кластері
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
--field-manager string Типово: "kubectl-taint"
Імʼя менеджера, що використовується для відстеження права власності на поле.
Якщо true, дозволити перезапис taint, інакше відхиляти оновлення taint, які перезаписують наявні taint.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--validate string[="strict"] Типово: "strict"
Повинно бути одним із: strict (або true), warn, ignore (або false). "true" або "strict" буде використовувати схему для перевірки вводу і відхилятиме запит, якщо він невірний. Буде виконана перевірка на стороні сервера, якщо ServerSideFieldValidation увімкнено на api-server, але якщо ні, то повернеться до менш надійної перевірки на стороні клієнта. "warn" попередить про невідомі або повторювані поля, не блокуючи запит, якщо на боці сервера API увімкнено перевірку полів, і буде поводитися як " ignore" у протилежному випадку. "false" або "ignore" не виконуватимуть жодної перевірки схеми, мовчки відкидаючі будь-які невідомі або дубльовані поля.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Ця команда надає огляд нещодавнього споживання ресурсів для вузлів і подів. Вона отримує метрики з Metrics Server, який агрегує ці дані з kubelet на кожному вузлі. Щоб ця команда працювала, сервер метрик повинен бути встановлений і працювати в кластері.
Показані метрики спеціально оптимізовані для рішень щодо автоматичного масштабування Kubernetes, таких як ті, що приймаються Horizontal Pod Autoscaler (HPA) та Vertical Pod Autoscaler (VPA). Через це значення можуть не збігатися з тими, що надаються стандартними інструментами ОС, такими як «top», оскільки метрики призначені для забезпечення стабільного сигналу для автомасштабувальників, а не для точної точності.
Для оперативного вибіркового контролю використання ресурсів (наприклад, щоб одразу визначити, які поди споживають найбільше ресурсів, або швидко оцінити навантаження на ваші вузли).
Розуміння поточних моделей споживання ресурсів.
Перевірка поведінки ваших конфігурацій HPA або VPA шляхом перегляду метрик, які вони використовують для прийняття рішень щодо масштабування.
Вона не призначена для заміни повнофункціональних рішень для моніторингу. Її основною метою є забезпечення сигналу з низькими накладними витратами для автомасштабувальників, а не створення ідеально точного інструменту моніторингу. Для отримання високоточних звітів, історичного аналізу, створення інформаційних панелей або сповіщень слід використовувати спеціальне рішення для моніторингу.
kubectl top [flags]
Параметри
-h, --help
Довідка top
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
kubectl top node — Показати використання ресурсів (процесор/памʼять) вузлами
kubectl top pod — Показувати використання ресурсів (процесора/памʼять) Podʼами
11.2.42.1 - kubectl top node
Показує використання ресурсів (CPU, памʼять) вузлами
Огляд
Показати використання ресурсів (процесор/памʼять) вузлами.
Команда top-node дозволяє переглядати використання ресурсів вузлами кластера.
kubectl top node [NAME | -l label]
Приклади
# Показати метріки для всіх вузлівShow metrics for all nodeskubectl top node
# Показати метріки для вузла NODE_NAMEkubectl top node NODE_NAME
Параметри
-h, --help
Довідка node
--no-headers
Якщо присутній, то виводити без заголовків.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-capacity
Вивести ресурси вузлів на основі Capacity замість Allocatable (стандартно) для вузлів.
--show-swap
Виводить інформацію про ресурси вузла повʼязані зі своп-памʼяттю.
--sort-by string
Якщо поле не порожнє, відсортувати список ресурсів за вказаним полем. Поле може мати значення 'cpu' або 'memory'.
--use-protocol-buffers Типово: true
Дозволяє використовувати протокол-буфери для доступу до API Metrics.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl top — Показ використання ресурсів (CPU/памʼять)
11.2.42.2 - kubectl top pod
Показує використання ресурсів (CPU, памʼять) pod'ами
Огляд
Показувати використання ресурсів (процесора/памʼять) pod'ами
Команда 'top pod' дозволяє вам переглядати використання ресурсів (процесора/памʼяті) podʼами.
Через затримку конвеєра метрик, вони можуть бути недоступні протягом декількох хвилин з моменту створення podʼів.
kubectl top pod [NAME | -l label]
Приклади
# Показати метрики для всіх podʼів у стандартному просторі іменkubectl top pod
# Показати метрики для всіх podʼів у вказаному просторі іменkubectl top pod --namespace=NAMESPACE
# Показати метрики для вказаного podʼа та його контейнерівkubectl top pod POD_NAME --containers
# Показати метрики для podʼів, визначених міткою name=myLabelkubectl top pod -l name=myLabel
Параметри
-A, --all-namespaces
Якщо вказано, вивести перелік запитуваних обʼєктів у всіх просторах назв. Простір назв у поточному контексті ігнорується, навіть якщо вказано --namespace.
--containers
Якщо є, показати використання контейнерів в межах pod.
--field-selector string
Селектор (запит поля) для фільтрації підтримує '=', '==' і '!=' (наприклад, --field-selector key1=value1,key2=value2). Сервер підтримує лише обмежену кількість запитів до полів кожного типу.
-h, --help
Довідка pod
--no-headers
Якщо присутній, то виводити без заголовків.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-swap
Виводить інформацію про ресурси вузла повʼязані зі своп-памʼяттю.
--sort-by string
Якщо поле не порожнє, відсортувати список ресурсів за вказаним полем. Поле може мати значення 'cpu' або 'memory'.
--sum
Вивести сумарне використання ресурсів
--use-protocol-buffers Типово: true
Дозволяє використовувати протокол-буфери для доступу до API Metrics.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Дивіться також
kubectl top — Показ використання ресурсів (CPU/памʼять)
11.2.43 - kubectl uncordon
Позначає вузол як готовий для планування
Огляд
Позначає вузол як готовий для планування.
kubectl uncordon NODE
Приклади
# Позначити вузол "foo" як готовий для плануванняkubectl uncordon foo
Параметри
--dry-run string[="unchanged"] Типово: "none"
Має бути "none", "server" або "client". Якщо це стратегія client, вивести лише обʼєкт, який міг би бути надісланим, не надсилаючи його. Якщо це стратегія server, надіслати запит на стороні сервера без збереження ресурсу.
-h, --help
Довідка uncordon
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==', '!=', 'in', 'notin' (наприклад, -l key1=value1,key2=value2,key3 in (value3)). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Вивести інформацію про версії клієнта та сервера для поточного контексту.
kubectl version [flags]
Приклади
# Вивести версії клієнта та сервера для поточного контекстуkubectl version
Параметри
--client
Якщо true, показує лише клієнтську версію (server не вимагається).
-h, --help
Довідка version
-o, --output string
Формат виводу. Один з: (json, yaml).
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Очікувати на певний стан одного чи кількох ресурсів
Огляд
Очікувати на певний стан одного чи кількох ресурсів.
Команда бере кілька ресурсів і чекає, доки у полі стану кожного з них не зʼявиться вказана умова.
Крім того, команда може чекати на створення або видалення заданого набору ресурсів, вказавши ключове слово "create" чи "delete" як значення прапорця --for.
Успішне повідомлення буде виведено у stdout із зазначенням того, що вказану умову було виконано. Ви можете скористатися опцією -o, щоб змінити місце виведення.
# Очікувати, поки Pod "busybox1" не міститиме умови статусу типу "Ready"kubectl wait --for=condition=Ready pod/busybox1
# Типове значення умови статусу є true; ви можете очікувати на інші значення після знаку рівності (порівнюється після простого складання Unicode, яке є загальнішою формою нечутливості до регістру)kubectl wait --for=condition=Ready=false pod/busybox1
# Очікувати, поки Pod "busybox1" не міститиме фази статусу "Running"kubectl wait --for=jsonpath='{.status.phase}'=Running pod/busybox1
# Очікувати, поки Pod "busybox1" не буде в стані Readykubectl wait --for='jsonpath={.status.conditions[?(@.type=="Ready")].status}=True' pod/busybox1
# Очікувати, поки сервіс "loadbalancer" не матиме ingresskubectl wait --for=jsonpath='{.status.loadBalancer.ingress}' service/loadbalancer
# Очікувати створення секретного "busybox1" з таймаутом у 30сkubectl create secret generic busybox1
kubectl wait --for=create secret/busybox1 --timeout=30s
# Очікувати, поки Pod "busybox1" не буде видалено, з таймаутом 60с, після виконання команди "delete"kubectl delete pod/busybox1
kubectl wait --for=delete pod/busybox1 --timeout=60s
# Очікувати, поки Pod "busybox1" не буде створено ТА він не досягне стану "Ready"kubectl wait --for=condition=Ready --for=create pod/busybox1
# Очікувати, поки Pod "busybox1" не досягне стану "Ready" АБО його контейнери не повідомлять про стан готовності "False"until kubectl wait pod/busybox1 --for=condition=Ready --timeout=1s 2>/dev/null ||\
kubectl wait pod/busybox1 --for=condition=ContainersReady=False --timeout=1s 2>/dev/null;\
doecho"Checking conditions..."; sleep 1;done
Параметри
--all
Якщо true, вибрати всі ресурси в просторі імен вказаних типів ресурсів
-A, --all-namespaces
Якщо вказано, вивести перелік запитуваних обʼєктів у всіх просторах імен. Простір імен у поточному контексті ігнорується, навіть якщо вказано --namespace.
--allow-missing-template-keys Типово: true
Якщо true, ігнорувати будь-які помилки в шаблонах, коли в шаблоні відсутнє поле або ключ map. Застосовується лише до форматів виводу golang та jsonpath.
--field-selector string
Селектор (запит поля) для фільтрації підтримує '=', '==' і '!=' (наприклад, --field-selector key1=value1,key2=value2). Сервер підтримує лише обмежену кількість запитів до полів кожного типу.
-f, --filename strings
Імʼя файлу, теки або URL до файлів, що ідентифікують ресурси.
--for strings
Умова для очікування: [create|delete|condition=condition-name[=condition-value]|jsonpath='{JSONPath expression}'=[JSONPath value]]. Стандартне значення condition-value дорівнює true. Значення умови порівнюються після простого згортання регістру Unicode, що є більш загальною формою нечутливості до регістру. Підтримується кілька умов, які об'єднуються за допомогою логічного AND у послідовному порядку. Якщо передано --for=create, воно завжди очікується першим.
-h, --help
Довідка wait
--local
Якщо значення true, НЕ звʼязуватиметься з api-сервером, а виконуватиметься локально.
Рекурсивно обробити теку, вказану у -f, --filename. Корисно, якщо ви хочете керувати повʼязаними маніфестами, організованими в одній теці.
-l, --selector string
Селектор (запит на мітки) для фільтрації, що підтримує '=', '==' і '!=' (наприклад, -l key1=value1,key2=value2). Обʼєкти, щоб мати збіг, повинні задовольняти усім зазначеним обмеженням міток.
--show-managed-fields
Якщо true, зберігати managedFields при виводі обʼєктів у форматі JSON або YAML.
--template string
Рядок шаблону або шлях до файлу шаблону для використання з -o=go-template, -o=go-template-file. Формат шаблону — golang-шаблони [http://golang.org/pkg/text/template/#pkg-overview].
--timeout duration Типово: 30s
Час очікування перед прийняттям рішення про відмову видалення, нуль означає визначення тайм-ауту за розміром обʼєкту
Успадковані батьківські параметри
--as string
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен.
--as-group strings
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп.
--as-uid string
UID, який використовується для операції.
--as-user-extra strings
Додаткові параметри користувача, які слід використовувати для операції. Цей прапорець можна повторювати, щоб вказати кілька значень для одного і того ж ключа.
--cache-dir string Типово: "$HOME/.kube/cache"
Типове розташування теки кешу
--certificate-authority string
Шлях до файлу сертифіката для центра сертифікації
--client-certificate string
Шлях до файлу клієнтського сертифіката для TLS
--client-key string
Шлях до файлу ключа клієнта для TLS
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
--disable-compression
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--kuberc string
Шлях до файлу kuberc, який буде використовуватися для налаштувань. Цю функцію можна вимкнути, експортувавши функцію KUBECTL_KUBERC=false або вимкнувши функцію KUBERC=off.
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Ця сторінка містить перелік загальновживаних команд та прапорців kubectl.
Примітка:
Ці інструкції призначені для Kubernetes v1.36. Для перевірки версії скористайтесь командою kubectl version.
Автозавершення команд kubeclt
BASH
source <(kubectl completion bash)# встановлення автозавершення для bash в поточному терміналі, пакунок bash-completion повинен бути встановлений.echo"source <(kubectl completion bash)" >> ~/.bashrc # додавання автозавершення для bash в профіль bash для постіного використання
Ви також можете використовувати зручне скорочення для kubectl, яке також працює з автозавершенням:
aliask=kubectl
complete -o default -F __start_kubectl k
ZSH
source <(kubectl completion zsh)# встановлення автозавершення для zsh в поточному терміналіecho'[[ $commands[kubectl] ]] && source <(kubectl completion zsh)' >> ~/.zshrc # додавання автозавершення для zsh в профіль zsh для постіного використання
FISH
Примітка:
Вимагається версія kubectl 1.23 або вище.
echo'kubectl completion fish | source'> ~/.config/fish/completions/kubectl.fish&&source ~/.config/fish/completions/kubectl.fish
-A замість --all-namespaces
Додавання --all-namespaces трапляється досить часто, тому вам слід знати скорочення для --all-namespaces:
kubectl -A
Контекст та конфігурація kubectl
Встановіть, з яким кластером Kubernetes kubectl спілкується та змінює інформацію про конфігурацію. Див. документацію Автентифікація між кластерами за допомогою kubeconfig для детальної інформації про конфігураційний файл.
kubectl config view # Показати обʼєднані налаштування kubeconfig.# використовувати декілька файлів kubeconfig одночасно та переглядати обʼєднані конфігураціїKUBECONFIG=~/.kube/config:~/.kube/config2
kubectl config view
# показати обʼєднані налаштування kubeconfig, необроблені дані сертифікатів та експоновані секретиkubectl config view --raw
# отримання пароля для користувача e2ekubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'# отримання сертифіката для користувача e2ekubectl config view --raw -o jsonpath='{.users[?(.name == "e2e")].user.client-certificate-data}'| base64 -d
kubectl config view -o jsonpath='{.users[].name}'# показати першого користувачаkubectl config view -o jsonpath='{.users[*].name}'# отримати список користувачівkubectl config get-contexts # показати список контекстівkubectl config get-contexts -o name # отримати всі імена контекстівkubectl config current-context # показати поточний контекстkubectl config use-context my-cluster-name # встановити стандартний контекст у my-cluster-namekubectl config set-cluster my-cluster-name # встановити запис кластера у kubeconfig# налаштувати URL проксі-сервера для запитів, зроблених цим клієнтом у kubeconfigkubectl config set-cluster my-cluster-name --proxy-url=my-proxy-url
# додати нового користувача до kubeconf з підтримкою базової автентифікаціїkubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
# постійно зберігати простір імен для всіх наступних команд kubectl у цьому контекстіkubectl config set-context --current --namespace=ggckad-s2
# встановити контекст, використовуючи конкретне імʼя користувача та простір іменkubectl config set-context gce --user=cluster-admin --namespace=foo \
&& kubectl config use-context gce
kubectl config unset users.foo # видалити користувача foo# скорочення для налаштування/показу контексту/простору імен (працює тільки для bash та сумісних з bash оболонок, поточний контекст має бути встановлений перед використанням kn для налаштування простору імен)aliaskx='f() { [ "$1" ] && kubectl config use-context $1 || kubectl config current-context ; } ; f'aliaskn='f() { [ "$1" ] && kubectl config set-context --current --namespace $1 || kubectl config view --minify | grep namespace | cut -d" " -f6 ; } ; f'
Kubectl apply
apply керує застосунками через файли, що визначають ресурси Kubernetes. Ця команда створює та оновлює ресурси в кластері, виконуючи команду kubectl apply. Це рекомендований спосіб керування застосунками Kubernetes в операційному середовищі. Дивіться Kubectl Book.
Створення обʼєктів
Маніфести Kubernetes можна визначати у форматах YAML або JSON. Можна використовувати розширення файлів .yaml, .yml та .json.
kubectl apply -f ./my-manifest.yaml # створити ресурс(и)kubectl apply -f ./my1.yaml -f ./my2.yaml # створити з декількох файлівkubectl apply -f ./dir # створити ресурс(и) з усіх манифестів у теціkubectl apply -f https://example.com/manifest.yaml # створити ресурс(и) з URL (Примітка: це приклад домену і не містить дійсного манифесту)kubectl create deployment nginx --image=nginx # запустити один екземпляо nginx# створити завдання, яке виводить "Hello World"kubectl create job hello --image=busybox:1.28 -- echo"Hello World"# створити CronJob, який виводить "Hello World" кожну хвилинуkubectl create cronjob hello --image=busybox:1.28 --schedule="*/1 * * * *" -- echo"Hello World"kubectl explain pods # отримати документацію для манифестів pod# створити декілька YAML обʼєктів зі stdin {#creating-objects}kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep
spec:
containers:
- name: busybox
image: busybox:1.28
args:
- sleep
- "1000000"
---
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep-less
spec:
containers:
- name: busybox
image: busybox:1.28
args:
- sleep
- "1000"
EOF# створити секрет з декількома ключамиkubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: $(echo -n "s33msi4" | base64 -w0)
username: $(echo -n "jane" | base64 -w0)
EOF
Перегляд і пошук ресурсів
# Отримати команди з базовим виводомkubectl get services # Вивід усіх сервісів у просторі іменkubectl get pods --all-namespaces # Вивід усіх Podʼів у всіх просторах іменkubectl get pods -o wide # Вивід усіх Podʼів у поточному просторі імен, з детальною інформацієюkubectl get deployment my-dep # Вивід конкретного deploymentkubectl get pods # Вивід усіх Podʼів у просторі іменkubectl get pod my-pod -o yaml # Отримати Pod в фоматі YAML# Опис команд з докладним виводомkubectl describe nodes my-node
kubectl describe pods my-pod
# Вивід сервісів, відсортованих за назвоюkubectl get services --sort-by=.metadata.name
# Вивід Podʼів, відсортованих за кількістю перезапусківkubectl get pods --sort-by='.status.containerStatuses[0].restartCount'# Вивід PersistentVolumes, відсортованих за ємністюkubectl get pv --sort-by=.spec.capacity.storage
# Отримати мітки version усіх Podʼів з міткою app=cassandrakubectl get pods --selector=app=cassandra -o \
jsonpath='{.items[*].metadata.labels.version}'# Отримати значення ключа з крапками, напр. 'ca.crt'kubectl get configmap myconfig \
-o jsonpath='{.data.ca\.crt}'# Отримати значення, закодоване у base64, з дефісами замість підкресленьkubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'# Отримати всі робочі вузли (використовувати селектор для виключення результатів з міткою# з назвою 'node-role.kubernetes.io/control-plane')kubectl get node --selector='!node-role.kubernetes.io/control-plane'# Отримати всі запущені Podʼи у просторі іменkubectl get pods --field-selector=status.phase=Running
# Отримати ExternalIP усіх вузлівkubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'# Вивід імен Podʼів, що належать певному RC# Команда "jq" корисна для перетворень, які занадто складні для jsonpath, її можна знайти на https://jqlang.github.io/jq/sel=${$(kubectl get rc my-rc --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')%?}echo$(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})# Показати мітки для всіх Podʼів (або будь-якого іншого обʼєкта Kubernetes, що підтримує мітки)kubectl get pods --show-labels
# Перевірити, які вузли готовіJSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'\
&& kubectl get nodes -o jsonpath="$JSONPATH"| grep "Ready=True"# Перевірити, які вузли готові з custom-columnskubectl get node -o custom-columns='NODE_NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].status'# Вивести розкодовані секрети без зовнішніх інструментівkubectl get secret my-secret -o go-template='{{range $k,$v := .data}}{{"### "}}{{$k}}{{"\n"}}{{$v|base64decode}}{{"\n\n"}}{{end}}'# Вивід усіх секретів, які зараз використовуються Podʼомkubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name'| grep -v null | sort | uniq
# Вивід всіх containerID initContainer усіх Podʼів# Корисно при очищенні зупинених контейнерів, уникаючи видалення initContainer.kubectl get pods --all-namespaces -o jsonpath='{range .items[*].status.initContainerStatuses[*]}{.containerID}{"\n"}{end}'| cut -d/ -f3
# Вивід подій, відсортованих за часовою позначкоюkubectl get events --sort-by=.metadata.creationTimestamp
# Вивід всіх попереджувальних подійkubectl events --types=Warning
# Порівняти поточний стан кластера зі станом, в якому б кластер знаходився, якби було застосовано маніфест.kubectl diff -f ./my-manifest.yaml
# Створити дерево всіх ключів, розділених крапками, що повертаються для вузлів# Корисно при пошуку ключа у складній вкладеній структурі JSONkubectl get nodes -o json | jq -c 'paths|join(".")'# Створити всіх ключів, розділених крапками, що повертаються для Podʼів тощоkubectl get pods -o json | jq -c 'paths|join(".")'# Вивести ENV для всіх Podʼів, за умови, що у вас є типовий контейнер для Podʼів, типовий простір імен і підтримка команди `env`.# Корисно при виконанні будь-якої підтримуваної команди для всіх Podʼів, не тільки `env`for pod in $(kubectl get po --output=jsonpath={.items..metadata.name});doecho$pod&& kubectl exec -it $pod -- env;done# Отримати субресурс status для deploymentkubectl get deployment nginx-deployment --subresource=status
Оновлення ресурсів
kubectl set image deployment/frontend www=image:v2 # Rolling update контейнерів "www" в deployment "frontend", оновлення образуkubectl rollout history deployment/frontend # Перегляд історії deployment, включаючи ревізіюkubectl rollout undo deployment/frontend # Відкат до попереднього deploymentkubectl rollout undo deployment/frontend --to-revision=2# Відкат до конкретної ревізіїkubectl rollout status -w deployment/frontend # Спостереження за статусом rolling update deployment "frontend" до завершенняkubectl rollout restart deployment/frontend # Rolling restart deployment "frontend"cat pod.json | kubectl replace -f - # Заміна Pod на основі JSON, переданого через stdin# Примусова заміна, видалення та повторне створення ресурсу. Це призведе до простою сервісу.kubectl replace --force -f ./pod.json
# Створення сервісу для реплікованого nginx, який працює на порту 80 і підключається до контейнерів на порту 8000kubectl expose rc nginx --port=80 --target-port=8000# Оновлення версії (теґа) образу одноконтейнерного Podʼа до v4kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/'| kubectl replace -f -
kubectl label pods my-pod new-label=awesome # Додавання міткиkubectl label pods my-pod new-label- # Видалення міткиkubectl label pods my-pod new-label=new-value --overwrite # Перезапис поточного значенняkubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq # Додавання анотаціїkubectl annotate pods my-pod icon-url- # Видалення анотаціїkubectl autoscale deployment foo --min=2 --max=10# Автомасштабування deployment "foo"
Накладання патчів на ресурси
# Часткове оновлення вузлаkubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'# Оновлення образу контейнера; spec.containers[*].name обовʼязково, тому що це ключ для злиттяkubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'# Оновлення образу контейнера за допомогою json patch з позиційними масивамиkubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'# Вимкнення livenessProbe у deployment за допомогою json patch з позиційними масивамиkubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]'# Додавання нового елементу до позиційного масивуkubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'# Оновлення кількості реплік deployment шляхом накладання патчу на його субресурс scalekubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'
Редагування ресурсів
Ви можете змінювати ресурси, використовуючи ваш улюблений редактор:
kubectl edit svc/docker-registry # Редагування service з назвою docker-registryKUBE_EDITOR="nano" kubectl edit svc/docker-registry # Використання альтернативного рекактора
Масштабування ресурсів
kubectl scale --replicas=3 rs/foo # Масштабування replicaset з назвою 'foo' до 3kubectl scale --replicas=3 -f foo.yaml # Масштабування ресурсу вказанеого у "foo.yaml" до 3kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Якщо deployment з назвою mysql має поточний розмір — 2, масштабувати mysql до 3kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Масштабувати кілька контролерів реплікації
Видалення ресурсів
kubectl delete -f ./pod.json # Вилучити Pod використовуючи тип та назву, вказані в pod.jsonkubectl delete pod unwanted --now # Вилучити Pod негайно, без його належного завершенняkubectl delete pod,service baz foo # Вилучити Podʼи та сервіси з назвами "baz" та "foo"kubectl delete pods,services -l name=myLabel # Вилучити Podʼи та сервіси з міткою name=myLabelkubectl -n my-ns delete pod,svc --all # Вилучити всі Podʼи та сервіси в просторі імен my-ns,# Вилучити всі Podʼи, що збігаються з шаблоном awk pattern1 або pattern2kubectl get pods -n mynamespace --no-headers=true| awk '/pattern1|pattern2/{print $1}'| xargs kubectl delete -n mynamespace pod
Взаємодія з працюючими Podʼами
kubectl logs my-pod # вивести логи Podʼа (stdout)kubectl logs -l name=myLabel # вивести логи Podʼів з міткою name=myLabel (stdout)kubectl logs my-pod --previous # вивести логи Podʼа (stdout) для попереднього варіанта контейнераkubectl logs my-pod -c my-container # вивести логи контейнера в Podʼі (stdout, випадок з декількома контейнерами)kubectl logs -l name=myLabel -c my-container # вивести логи контейнера в Podʼі з міткою name=myLabel (stdout)kubectl logs my-pod -c my-container --previous # вивести логи контейнера в Podʼі (stdout, випадок з декількома контейнерами) для попереднього варіанта контейнераkubectl logs -f my-pod # транслювати логи Podʼа (stdout)kubectl logs -f my-pod -c my-container # транслювати логи контейнера в Podʼі (stdout, випадок з декількома контейнерами)kubectl logs -f -l name=myLabel --all-containers # транслювати всі логи Podʼів з міткою name=myLabel (stdout)kubectl run -i --tty busybox --image=busybox:1.28 -- sh # Запустити Pod як інтерактивну оболонкуkubectl run nginx --image=nginx -n mynamespace # Запустити один екземпляр Podʼа nginx в просторі імен mynamespacekubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
# Згенерувати специфікацію для запуску Podʼа nginx і записати її у файл pod.yamlkubectl attach my-pod -i # Підʼєднатися до працюючого контейнераkubectl port-forward my-pod 5000:6000 # Слухати порт 5000 на локальній машині і пересилати на порт 6000 на Podʼі my-podkubectl exec my-pod -- ls / # Виконати команду в існуючому Podʼі (випадок з 1 контейнером)kubectl exec --stdin --tty my-pod -- /bin/sh # Інтерактивний доступ до оболонки працюючого Podʼа (випадок з 1 контейнером)kubectl exec my-pod -c my-container -- ls / # Виконати команду в існуючому Podʼі (випадок з декількома контейнерами)kubectl debug my-pod -it --image=busybox:1.28 # Створити інтерактивну налагоджувальну сесію в існуючому Podʼі і відразу підʼєднатися до неїkubectl debug node/my-node -it --image=busybox:1.28 # Створити інтерактивну налагоджувальну сесію на вущлі і відразу підʼєднатися до неїkubectl top pod # Показати метрики для всіх Podʼів в стандартному просторі іменkubectl top pod POD_NAME --containers # Показати метрики для заданого Podʼа та його контейнерівkubectl top pod POD_NAME --sort-by=cpu # Показати метрики для заданого Podʼа і сортувати їх за 'cpu' або 'memory'
Копіювання файлів та тек до і з контейнерів
kubectl cp /tmp/foo_dir my-pod:/tmp/bar_dir # Скопіювати локальну теку /tmp/foo_dir до /tmp/bar_dir у віддаленому Podʼі в поточному просторі іменkubectl cp /tmp/foo my-pod:/tmp/bar -c my-container # Скопіювати локальний файл /tmp/foo до /tmp/bar у віддаленому Podʼі в конкретному контейнеріkubectl cp /tmp/foo my-namespace/my-pod:/tmp/bar # Скопіювати локальний файл /tmp/foo до /tmp/bar у віддаленому Podʼі в просторі імен my-namespacekubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Скопіювати /tmp/foo з віддаленого Podʼа до /tmp/bar локально
Примітка:
kubectl cp потребує наявності бінарного файлу 'tar' у вашому образі контейнера. Якщо 'tar' відсутній, kubectl cp завершиться з помилкою. Для розширених випадків використання, таких як символічні посилання, розширення шаблонів або збереження режимів файлів, розгляньте можливість використання kubectl exec.
tar cf - /tmp/foo | kubectl exec -i -n my-namespace my-pod -- tar xf - -C /tmp/bar # Скопіювати локальний файл /tmp/foo до /tmp/bar у віддаленому Podʼі в просторі імен my-namespacekubectl exec -n my-namespace my-pod -- tar cf - /tmp/foo | tar xf - -C /tmp/bar # Скопіювати /tmp/foo з віддаленого Podʼа до /tmp/bar локально
Взаємодія з Deployment та Service
kubectl logs deploy/my-deployment # Вивести логи Podʼа для Deployment (одноконтейнерний випадок)kubectl logs deploy/my-deployment -c my-container # Вивести логи Podʼа для Deployment (багатоконтейнерний випадок)kubectl port-forward svc/my-service 5000# Слухати на локальному порту 5000 і переадресувати на порт 5000 на Service бекендkubectl port-forward svc/my-service 5000:my-service-port # Слухати на локальному порту 5000 і переадресувати на порт цільового Service з імʼям <my-service-port>kubectl port-forward deploy/my-deployment 5000:6000 # Слухати на локальному порту 5000 і переадресувати на порт 6000 на Podʼі, створеному <my-deployment>kubectl exec deploy/my-deployment -- ls # Виконати команду в першому Podʼі та першому контейнері в Deployment (одноконтейнерний або багатоконтейнерний випадок)
Взаємодія з вузлами та кластером
kubectl cordon my-node # Позначити my-node як непридатний до плануванняkubectl drain my-node # Вивільнити my-node для підготовки до обслуговуванняkubectl uncordon my-node # Позначити my-node як придатний до плануванняkubectl top node # Показати метрики для всіх вузлівkubectl top node my-node # Показати метрики для певного вузлаkubectl cluster-info # Показати адреси майстра та сервісівkubectl cluster-info dump # Вивести поточний стан кластера у stdoutkubectl cluster-info dump --output-directory=/path/to/cluster-state # Вивести поточний стан кластера у /path/to/cluster-state# Переглянути наявні taint, які є на поточних вузлах.kubectl get nodes -o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect'# Якщо taint з таким ключем та ефектом вже існує, його значення замінюється, як зазначено.kubectl taint nodes foo dedicated=special-user:NoSchedule
kubectl api-resources --namespaced=true# Всі ресурси, які просторово обмеженіkubectl api-resources --namespaced=false# Всі ресурси, які не є просторово обмеженимиkubectl api-resources -o name # Усі ресурси з простим виведенням (тільки назва ресурсу)kubectl api-resources -o wide # Усі ресурси з розширеним виведенням (так званий "wide" формат)kubectl api-resources --verbs=list,get # Усі ресурси, які підтримують запити "list" та "get"kubectl api-resources --api-group=extensions # Усі ресурси в API групі "extensions"
Форматування виводу
Щоб вивести деталі у вікні термінала у певному форматі, додайте прапорець -o (або --output) до відповідної команди kubectl.
Формат виводу
Опис
-o=custom-columns=<spec>
Вивести таблицю, використовуючи список власних стовпців, розділених комами
-o=custom-columns-file=<filename>
Вивести таблицю, використовуючи шаблон власних стовпців з файлу <filename>
Вивести поля, визначені за допомогою шаблону на основі golang з файлу<filename>
-o=json
Вивести API обʼєкт у форматі JSON
-o=jsonpath=<template>
Вивести поля, визначені за допомогою виразу jsonpath
-o=jsonpath-file=<filename>
Вивести поля, визначені за допомогою виразу jsonpath з файлу <filename>
-o=kyaml (бета)
Вивести API обʼєкт у форматі KYAML. KYAML є діалектом YAML, специфічним для Kubernetes, і може бути оброблений як YAML.
-o=name
Вивести лише назву ресурсу і нічого більше
-o=wide
Вивести в текстовому форматі з додатковою інформацією, включаючи імʼя вузла для Podʼів
-o=yaml
Вивести API обʼєкт у форматі YAML
Приклади використання -o=custom-columns:
# Усі образи, що працюють в кластеріkubectl get pods -A -o=custom-columns='DATA:spec.containers[*].image'# Усі образи, що працюють в просторі імен: default, згруповані по Podkubectl get pods --namespace default --output=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image"# Усі образи, за винятком "registry.k8s.io/coredns:1.6.2"kubectl get pods -A -o=custom-columns='DATA:spec.containers[?(@.image!="registry.k8s.io/coredns:1.6.2")].image'# Усі поля metadata незалежно від назвиkubectl get pods -A -o=custom-columns='DATA:metadata.*'
Рівні деталізації виводу та налагодження для kubectl
Деталізація виводу в kubectl контролюється за допомогою прапорця -v або --v, за яким слідує ціле число, що представляє рівень логування. Загальні конвенції щодо логування Kubernetes та повʼязані рівні описані тут.
Рівень деталізації
Опис
--v=0
Загалом корисно, щоб цей рівень завжди був видимим для оператора кластера.
--v=1
Прийнятний стандартний рівень логування, якщо вам не потрібна висока деталізація.
--v=2
Корисна стабільна інформація про сервіс та важливі повідомлення логу, які можуть корелювати зі значними змінами в системі. Рекомендований стандартний рівень логування для більшості систем.
--v=3
Розширена інформація про зміни.
--v=4
Рівень логування для налагодження.
--v=5
Рівень логування для налагодження з трасуванням.
--v=6
Показати запитані ресурси.
--v=7
Показати заголовки HTTP-запитів.
--v=8
Показати вміст HTTP-запитів.
--v=9
Показати вміст HTTP-запитів без обрізання вмісту.
Що далі
Дивіться огляд kubectl та його роль в екосистемі Kubernetes.
Інструмент командного рядка для взаємодії з кластерами Kubernetes, панеллю управління, за допомогою API Kubernetes. Використовуйте його для розгортання застосунків, перегляду ресурсів та управління робочими навантаженнями.
CIDR, відкриті в фаєврволі GCE для трафіку L4 LB та перевірок стану
--cluster string
Назва файлу kubeconfig кластера, який слід використовувати
--context string
Назва контексту kubeconfig, який слід використовувати
-h, --help
Довідка kubectl
--insecure-skip-tls-verify
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними
--kubeconfig string
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів.
--log-backtrace-at traceLocation Default: :0
коли логування попадаж в рядок file:N, видавати trace стека
--log-dir string
Якщо не порожньо, записати лог-файли в цю теку
--log-file string
Якщо не порожньо, використовувати цей файл
--log-file-max-size uint Типово: 1800
Визначає максимальний розмір, до якого може вирости файл логу. Одиниця виміру — мегабайти. Якщо значення дорівнює 0, максимальний розмір файлу необмежений.
--log-flush-frequency duration Типово: 5s
Максимальна кількість секунд між очищеннями журналу
--logtostderr Типово: true
писати лог в standard error, а не у файл
--match-server-version
Вимагає, щоб версія сервера відповідала версії клієнта
-n, --namespace string
Якщо присутній, простір імен для цього CLI-запиту
--one-output
Якщо true, записувати логи лише до їхнього власного рівня важливості (замість того, щоб записувати до кожного нижчого рівня важливості)
--password string
Пароль для базової автентифікації на API-сервері
--profile string Типово: "none"
Імʼя профілю для захоплення. Одне із (none|cpu|heap|goroutine|threadcreate|block|mutex)
--profile-output string Типово: "profile.pprof"
Імʼя файлу, в який записується профіль
--request-timeout string Типово: "0"
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів.
-s, --server string
Адреса та порт сервера API Kubernetes
--skip-headers
Якщо true, уникати префіксів заголовків у повідомленнях логу
--skip-log-headers
Якщо true, уникати заголовків при відкритті файлів логів
--stderrthreshold severity Типово: 2
логи, що дорівнюють або перевищують цей поріг, потрапляють до stderr
--tls-server-name string
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером
--token string
Токен на предʼявника для автентифікації на API-сервері
--user string
Імʼя користувача kubeconfig, яке слід використовувати
--username string
Імʼя користувача для базової автентифікації на API-сервері
-v, --v Level
число рівня повноти записів логу
--version version[=true]
Вивести інформацію про версію та вийти
--vmodule moduleSpec
список параметрів pattern=N, розділених комами, для файл-фільтрованого логування.
--warnings-as-errors
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу
Змінні оточення
KUBECONFIG
Шлях до файлу конфігурації kubectl ("kubeconfig"). Типово: "$HOME/.kube/config"
KUBECTL_EXPLAIN_OPENAPIV3
Вмикає чи вимикає використання нового джерела даних OpenAPIv3 для викликів `kubectl explain`. OpenAPIV3 типово увімкнено з версії Kubernetes 1.24.
KUBECTL_ENABLE_CMD_SHADOW
Якщо встановлено true, зовнішні втулки можна використовувати як субкоманди для вбудованих команд, якщо субкоманда не існує. На альфа-стадії ця функція може бути використана лише для команди create (наприклад, kubectl create networkpolicy).
KUBECTL_PORT_FORWARD_WEBSOCKETS
Якщо встановлено true, команда kubectl port-forward спробує передавати дані, використовуючи протокол веб-сокетів. Якщо перехід до веб-сокетів не вдасться, команди повернуться до використання поточного протоколу SPDY.
KUBECTL_REMOTE_COMMAND_WEBSOCKETS
Якщо встановлено true, команди kubectl exec, cp та attach спробують передавати дані, використовуючи протокол веб-сокетів. Якщо перехід до веб-сокетів не вдасться, команди повернуться до використання поточного протоколу SPDY.
KUBECTL_KUBERC
Коли встановлено true, файл kuberc береться до уваги для визначення налаштувань користувача.
KUBECTL_KYAML
Якщо встановлено значення true, kubectl може створювати вихідний формат YAML, що є специфічним для Kubernetes.
kubectl version — Вивести інформацію про клієнтську та серверну версії
kubectl wait — Експериментально: Чекати на конкретну умову для одного або кількох ресурсів
11.6 - Підтримка JSONPath
Kubectl підтримує шаблони JSONPath як вихідний формат.
Шаблон JSONPath складається з виразів JSONPath, які заключені в фігурні дужки { та }. Kubectl використовує вирази JSONPath для фільтрації конкретних полів у JSON-обʼєкті та форматування виводу. Окрім оригінального синтаксису шаблону JSONPath, дійсні наступні функції та синтаксис:
Використовуйте подвійні лапки для цитування тексту всередині виразів JSONPath.
Використовуйте оператори range, end для ітерації списків.
Використовуйте відʼємні індекси зрізу для кроку назад через список. Відʼємні індекси не "обгортають" список і є дійсними, поки \( ( - index + listLength ) \ge 0 \).
Примітка:
Оператор $ є необовʼязковим, оскільки вираз завжди починається стандартно з обʼєкта кореня.
Результат обʼєкта виводиться як його функція String().
Приклади використання kubectl та виразів JSONPath:
kubectl get pods -o json
kubectl get pods -o=jsonpath='{@}'kubectl get pods -o=jsonpath='{.items[0]}'kubectl get pods -o=jsonpath='{.items[0].metadata.name}'kubectl get pods -o=jsonpath="{.items[*]['metadata.name', 'status.capacity']}"kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'kubectl get pods -o=jsonpath='{.items[0].metadata.labels.kubernetes\.io/hostname}'
Або за допомогою "my_pod" і "my_namespace" (налаштуйте ці назви відповідно до вашого середовища):
kubectl get pod/my_pod -n my_namespace -o=jsonpath='{@}'kubectl get pod/my_pod -n my_namespace -o=jsonpath='{.metadata.name}'kubectl get pod/my_pod -n my_namespace -o=jsonpath='{.status}'
Примітка:
У Windows потрібно подвійні лапки для будь-якого шаблону JSONPath, що містить пробіли (не одинарні лапки, як показано вище для bash). Це означає, що потрібно використовувати одинарні лапки або екрановані подвійні лапки для будь-яких літералів у шаблоні. Наприклад:
kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.startTime}{'\n'}{end}"kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{\"\t\"}{.status.startTime}{\"\n\"}{end}"
Регулярні вирази в JSONPath
JSONPath регулярні вирази не підтримуються. Якщо ви хочете використовувати регулярні вирази, ви можете скористатися інструментом, таким як jq.
# kubectl не підтримує регулярні вирази для JSONpath виводу# Наступна команда не працюєkubectl get pods -o jsonpath='{.items[?(@.metadata.name=~/^test$/)].metadata.name}'# Наступна команда досягає бажаного результатуkubectl get pods -o json | jq -r '.items[] | select(.metadata.name | test("test-")).metadata.name'
11.7 - kubectl для користувачів Docker
Ви можете використовувати інструмент командного рядка Kubernetes kubectl для взаємодії з сервером API. Використання kubectl є простим, якщо ви знайомі з інструментом командного рядка Docker. Однак, існує декілька відмінностей між командами Docker і командами kubectl. У наступних розділах показано субкоманду Docker та опис еквівалентної команди kubectl.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
55c103fa1296 nginx "nginx -g 'daemon of…" 9 seconds ago Up 9 seconds 0.0.0.0:80->80/tcp nginx-app
kubectl:
# запуск pod з nginxkubectl create deployment --image=nginx nginx-app
deployment.apps/nginx-app created
# додати env до nginx-appkubectl set env deployment/nginx-app DOMAIN=cluster
deployment.apps/nginx-app env updated
Примітка:
Команди kubectl виводять тип і назву створеного або зміненого ресурсу, які потім можна використовувати у наступних командах. Ви можете експонувати новий Service після створення Deployment.
# експонування порта через servicekubectl expose deployment nginx-app --port=80 --name=nginx-http
service "nginx-http" exposed
За допомогою kubectl ви можете створити Deployment, щоб переконатися, що N Podʼів працюють під управлінням nginx, де N — це кількість реплік, вказана у специфікації, типово дорівнює 1. Ви також можете створити Service з селектором, який відповідає міткам Podʼів. Докладні відомості наведено у статті Використання Service для доступу до застосунку у кластері.
Стандартно образи запускаються у фоновому режимі, подібно до docker run -d .... Щоб запустити щось на передньому плані, скористайтеся kubectl run для створення Pod:
kubectl run [-i][--tty] --attach <name> --image=<image>
На відміну від docker run ..., якщо ви вкажете --attach, то приєднаєте stdin, stdout і stderr. Ви не можете контролювати, які саме потоки буде приєднано (docker -a ...). Щоб відʼєднатися від контейнера, ви можете використатись комбінацією клавіш Ctrl+P, а потім Ctrl+Q.
docker ps
Для виводу переліку того, що працює, скористайтеся командою kubectl get:
docker:
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14636241935f ubuntu:16.04 "echo test" 5 seconds ago Exited (0) 5 seconds ago cocky_fermi
55c103fa1296 nginx "nginx -g 'daemon of…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp nginx-app
kubectl:
kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-app-8df569cb7-4gd89 1/1 Running 0 3m
ubuntu 0/1 Completed 0 20s
docker attach
Щоб приєднати процес, який вже запущено у контейнері, див. kubectl attach.
docker:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
55c103fa1296 nginx "nginx -g 'daemon of…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp nginx-app
docker attach 55c103fa1296
...
kubectl:
kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-app-5jyvm 1/1 Running 0 10m
kubectl attach -it nginx-app-5jyvm
...
Щоб відʼєднатися від контейнера, ви можете скористатись комбінацією клавіш Ctrl+P, а потім Ctrl+Q.
docker exec
Щоб виконати команду у контейнері, див. kubectl exec.
docker:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
55c103fa1296 nginx "nginx -g 'daemon of…" 6 minutes ago Up 6 minutes 0.0.0.0:80->80/tcp nginx-app
docker exec 55c103fa1296 cat /etc/hostname
55c103fa1296
kubectl:
kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-app-5jyvm 1/1 Running 0 10m
Існує невелика різниця між Podʼами та контейнерами; стандартно Podʼи не завершують роботу, якщо їхні процеси завершуються. Замість цього вони перезапускають процес. Це схоже на параметр запуску docker --restart=always з однією суттєвою відмінністю. У docker вивід для кожного виклику процесу обʼєднується, а у Kubernetes кожен виклик є окремим. Щоб переглянути результати попереднього запуску у Kubernetes, зробіть так:
Щоб зупинити і видалити запущений процес, див. kubectl delete.
docker:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9ec34d98787 nginx "nginx -g 'daemon of" 22 hours ago Up 22 hours 0.0.0.0:80->80/tcp, 443/tcp nginx-app
docker stop a9ec34d98787
a9ec34d98787
docker rm a9ec34d98787
a9ec34d98787
kubectl:
kubectl get deployment nginx-app
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-app 1/1 1 1 2m
kubectl get po -l app=nginx-app
NAME READY STATUS RESTARTS AGE
nginx-app-2883164633-aklf7 1/1 Running 0 2m
kubectl delete deployment nginx-app
deployment "nginx-app" deleted
kubectl get po -l app=nginx-app
# Нічого не повертає
Примітка:
Якщо ви використовуєте kubectl, ви не можете видалити безпосередньо сам pod. Спочатку слід вилучити Deployment, якому належить цей pod. Якщо ви видалите безпосередньо сам Pod, то у Deployment буде перестворено цей Pod.
docker login
У kubectl немає прямого аналога docker login. Якщо вас цікавить використання Kubernetes з приватним реєстром, див. Використання приватного реєстру.
docker version
Щоб отримати версії клієнта і сервера, див. kubectl version.
docker:
docker version
Client version: 1.7.0
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 0baf609
OS/Arch (client): linux/amd64
Server version: 1.7.0
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 0baf609
OS/Arch (server): linux/amd64
Kubernetes master is running at https://203.0.113.141
KubeDNS is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/kube-dns/proxy
kubernetes-dashboard is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
Grafana is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
Heapster is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy
InfluxDB is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy
11.8 - Правила використання kubectl
Рекомендовані правила використання kubectl.
Використання kubectl у багаторазових скриптах
Для стабільного виводу у скрипті:
Використовуйте одну з машинно-орієнтованих форм виводу, таких як -o name, -o json, -o yaml, -o go-template, або -o jsonpath.
Повністю вказуйте версію. Наприклад, jobs.v1.batch/myjob. Це гарантує, що kubectl не використовуватиме свою стандартну версію, яка може змінюватися з часом.
Не покладайтеся на контекст, налаштування або інші неявні стани.
Субресурси
Ви можете використовувати аргумент --subresource для команд kubectl, таких як get, patch, edit, apply та replace для отримання та оновлення субресурсів для всіх ресурсів, які їх підтримують. В Kubernetes версії 1.36 підтримуються лише субресурси status, scale та resize.
Для kubectl edit, субресурс scale не підтримується. Якщо ви використовуєте --subresource з kubectl edit і вказуєте scale як субресурс, команда викличе помилку.
Контракт API для субресурсу ідентичний до повного ресурсу. Оновлюючи субресурс status до нового значення, майте на увазі, що субресурс може бути потенційно узгоджений контролером до іншого значення.
Рекомендації
kubectl run
Для того, щоб kubectl run відповідав принципу інфраструктури як код:
Присвойте образу версію зі специфічним теґом і не переносіть цей теґ на нову версію. Наприклад, використовуйте :v1234, v1.2.3, r03062016-1-4, а не :latest (Для отримання додаткової інформації дивіться Поради щодо конфігурації Kubernetes).
Перевірте в скрипті наявність образу з великою кількістю параметрів.
Перейдіть до файлів конфігурації, перевірених у контролі вихідного коду, для отримання можливостей, які є необхідними, але не можуть бути виражені за допомогою прапорців kubectl run.
Ви можете використовувати прапорець --dry-run=client, щоб переглянути обʼєкт, який буде відправлений до вашого кластера, без реального його надсилання.
kubectl proxy
Увага:
Перегляд ненадійних точок доступу подів або сервісів через kubectl proxy є небезпечним, оскільки обслуговуваний вміст має неявний доступ до API Kubernetes за допомогою облікових даних проксі. Будьте обережні та уникайте доступу до ненадійних точок доступу під час використання привілейованих облікових даних.
Щоб зменшити ризик:
Уникайте перегляду ненадійних подів або сервісів через kubectl proxy.
Використовуйте --reject-methods='POST,PUT,PATCH,DELETE', щоб обмежити проксі лише операціями читання, коли вам потрібно лише переглядати ресурси.
Використовуйте --reject-paths, щоб обмежити, які шляхи API проксі відкриває.
Не запускайте kubectl proxy з обліковими даними cluster-admin, якщо це не необхідно.
kubectl apply
Ви можете використовувати kubectl apply для створення або оновлення ресурсів. Для отримання додаткової інформації про використання kubectl apply для оновлення ресурсів, дивіться Kubectl Book.
11.9 - Налаштування користувача для kubectl (kuberc)
СТАН ФУНКЦІОНАЛУ:Kubernetes 1.34 [beta]
Файл конфігурації Kubernetes kuberc дозволяє вам визначити параметри для kubectl, такі як стандартні параметри та аліаси команд. На відміну від файлу kubeconfig, файл конфігурації kubercне містить відомостей про кластер, імен користувачів або паролів.
В Linux/POSIX системах стандартне розташування цього файлу конфігурації — $HOME/.kube/kuberc. У Windows стадартний шлях подібний до %USERPROFILE%\.kube\kuberc. Ви можете вказати kubectl, щоб він шукав конфігурацію в іншому шляху, використовуючи аргумент командного рядка --kuberc. Ви також можете встановити змінну середовища KUBERC.
Файл kuberc, що використовує формат kubectl.config.k8s.io/v1beta1, дозволяє вам визначити наступні типи налаштувань користувача:
Aliases — дозволяють створювати коротші версії ваших улюблених команд, за бажанням встановлюючи параметри та аргументи.
Defaults — дозволяють налаштовувати стандартні значення параметрів для ваших улюблених команд.
У конфігурації kuberc секція aliases дозволяє вам визначити власні скорочення для команд kubectl, за бажанням з попередньо встановленими аргументами та прапорцями командного рядка.
Наступний приклад визначає аліас kubectl getn для команди kubectl get, додатково вказуючи формат виводу JSON: --output=json.
В цьому прикладі були використані такі налаштування:
name — Імʼя аліасу не повинно збігатися з вбудованими командами.
command — Вкажіть вбудовану команду, яку буде виконувати ваш аліас. Це включає підтримку підкоманд, таких як create role.
options — Вкажіть стандартне значення для параметрів. Якщо ви явно вкажете параметр під час виконання kubectl, значення, яке ви надасте, матиме пріоритет над стандартним значенням , визначеним у kuberc.
З цим аліасом виконання kubectl getn pods стандартно виведе JSON. Однак, якщо ви виконаєте kubectl getn pods -oyaml, вивід буде у форматі YAML.
Цей приклад розширює попередній, вводячи секцію prependArgs, яка дозволяє вставляти довільні аргументи безпосередньо після команди kubectl та її підкоманди (якщо така є).
В цьому прикладі були використані такі налаштування:
name — Імʼя аліасу не повинно збігатися з вбудованими командами.
command — Вкажіть вбудовану команду, яку буде виконувати ваш аліас. Це включає підтримку підкоманд, таких як create role.
options — Вкажіть стандартне значення для параметрів. Якщо ви явно вкажете параметр під час виконання kubectl, значення, яке ви надасте, матиме пріоритет над стандартним значенням, визначеним у kuberc.
prependArgs — Вкажіть явний аргумент, який буде розміщено відразу після команди. Тут це буде перетворено на kubectl get namespace test-ns --output json.
appendArgs
Цей приклад представляє механізм, подібний до додавання аргументів, але в цей раз ми будемо додавати аргументи в кінець команди kubectl.
В цьому прикладі були використані такі налаштування:
name — Імʼя аліасу не повинно збігатися з вбудованими командами.
command — Вкажіть вбудовану команду, яку буде виконувати ваш аліас. Це включає підтримку підкоманд, таких як create role.
options — Вкажіть стандартне значення для параметрів. Якщо ви явно вкажете параметр під час виконання kubectl, значення, яке ви надасте, матиме пріоритет над стандартним значенням, визначеним у kuberc.
appendArgs — Вкажіть явні аргументи, які будуть розміщені в кінці команди. Тут це буде перетворено на kubectl run test-pod --namespace test-ns --image busybox -- custom-arg.
defaults
У рамках конфігурації kuberc секція defaults дозволяє вказати стандартні значення для аргументів командного рядка.
Цей приклад робить інтерактивне видалення стандартним режимом для виклику kubectl delete:
В цьому прикладі були використані такі налаштування:
command — Вбудована команда, це включає підтримку підкоманд, таких як create role.
options — Вкажіть стандартні значення для параметрів. Якщо ви явно вкажете параметр під час виконання kubectl, значення, яке ви надасте, матиме пріоритет над стандартним значенням, визначеним у kuberc.
З цим налаштуванням, виконання kubectl delete pod/test-pod стандартно запитуватиме підтвердження. Однак, kubectl delete pod/test-pod --interactive=false обійде підтвердження.
Політика втулків для облікових даних
СТАН ФУНКЦІОНАЛУ:Kubernetes v1.35 [beta]
Редактори kubeconfig можуть вказати виконуваний втулок, який буде використовуватися для отримання облікових даних для автентифікації клієнта в кластері. У конфігурації kuberc ви можете встановити політику виконання для таких втулків за допомогою двох полів верхнього рівня. Обидва поля є необовʼязковими.
credentialPluginPolicy
Ви можете налаштувати політику для втулків облікових даних, використовуючи опціональне поле credentialPluginPolicy. Для цього поля існує три допустимі значення:
"AllowAll"
Коли політика встановлена на "AllowAll", не буде жодних обмежень щодо того, які втулки можуть працювати. Ця поведінка ідентична поведінці версій Kubernetes до 1.35.
"DenyAll"
Коли політика встановлена на "DenyAll", жодні втулки exec не будуть дозволені до запуску.
"Allowlist"
Коли політика встановлена на "Allowlist", користувач може вибірково дозволяти виконання втулків для введення облікових даних. Коли політика встановлена на "Allowlist", ви повинні також вказати поле credentialPluginAllowlist (також на верхньому рівні). Це поле описано нижче.
Примітка:
Для збереження зворотної сумісності невизначена або порожня credentialPluginPolicy ідентична явному встановленню політики на "AllowAll".
credentialPluginAllowlist
Примітка:
Встановлення цього поля, коли credentialPluginPolicy не є Allowlist (включно з випадками, коли це поле відсутнє або порожнє), вважається помилкою конфігурації.
Поле credentialPluginAllowlist визначає список наборів критеріїв (наборів вимог) для дозволу на виконання втулків облікових даних. Кожен набір вимог буде перевірятися по черзі; як тільки втулок відповідатиме всім вимогам хоча б одного набору, йому буде дозволено виконуватися. Тобто загальний результат застосування allowlist до втулка my-binary-plugin є логічним АБО рішеннями, прийнятими для кожного елемента в списку.
Як приклад, розглянемо таку конфігурацію списку дозволених втулків:
В наведеному вище прикладі allowlist дозволить втулки з командами "foo", "bar", АБО "baz".
Примітка:
Щоб набір вимог був дійсним, він повинен мати принаймні одне поле, яке не є порожнім і явно вказане. Якщо всі поля порожні або не вказані, це вважається помилкою конфігурації, і втулок не буде дозволений до виконання. Те саме стосується поля credentialPluginAllowlist, якщо воно не вказане або явно вказане як порожній список. Це зроблено для того, щоб запобігти ситуаціям, коли користувач неправильно вводить ключ credentialPluginAllowlist, думаючи, що вказав список дозволених, хоча насправді цього не зробив.
command визначає імʼя втулка для перевірки повноважень, який може бути виконаний. Воно може бути вказане як базова назва бажаного втулка або повний шлях. Якщо вказано як базова назва, рішення, прийняте цим полем, буде "allow", якщо виконується одна з двох наступних умов:
Поле command точно дорівнює полю command втулка.
Розпізнавання повного шляху виконується як для allowlist command, так і для command втулка, і результати збігаються.
Якщо вказано повний шлях, рішення, прийняте цим полем, є "allow", якщо виконується одна з наступних умов:
Поле command точно дорівнює полю command втулка (тобто command втулка також є повним шляхом).
Розпізнавання повного шляху виконується для поля command втулка, і поле command allowlist точно збігається.
Що стосується визначення повного шляху, згаданого раніше на цій сторінці, ні символічні посилання, ні глобальні шаблони пошуку оболонки не визначаються.
Наприклад, розглянемо запис у allowlist з command/usr/local/bin/my-binary, де /usr/local/bin/my-binary є символічним посиланням на /this/is/a/target. Якщо command, вказаний у kubeconfig, є /this/is/a/target, він не буде дозволений. Щоб це працювало, потрібно явно додати /this/is/a/target до allowlist. З іншого боку, якщо kubeconfig має command як /usr/local/bin/my-binary, то allowlist дозволить його запуск.
Примітка:
Поки kuberc знаходиться у бета-версії, name може використовуватися як псевдонім для command у записах allowlist. Починаючи з Kubernetes 1.36, name застаріває на користь command. Надання обохname та command в одному записі allowlist вважається помилкою, оскільки це налаштування є критично важливим для безпеки. Поле name буде повністю видалено, коли kuberc досягне GA.
Приклад
Наступний приклад показує політику "Allowlist" з її списком дозволених елементів:
Керування політикою втулків облікових даних за допомогою kubectl kuberc set
Замість того, щоб редагувати файл kuberc безпосередньо, ви можете використовувати kubectl kuberc set, щоб налаштувати політику втулків облікових даних з командного рядка.
# Встановити політику для заборони всіх втулків облікових данихkubectl kuberc set --section credentialplugin --policy DenyAll
# Встановити політику для дозволу всіх втулків облікових данихkubectl kuberc set --section credentialplugin --policy AllowAll
# Дозволити лише конкретні втулки облікових данихkubectl kuberc set --section credentialplugin \
--policy Allowlist \
--allowlist-entry command=my-trusted-binary \
--allowlist-entry command=my-other-trusted-binary
У цьому прикладі були використані такі прапорці:
--section credentialplugin - Вибір секції конфігурації втулків облікових даних.
--policy - Обовʼязково. Встановіть політику на AllowAll, DenyAll або Allowlist.
--allowlist-entry - Обовʼязково, коли --policy=Allowlist. Вкажіть втулок, який потрібно дозволити, використовуючи коми для розділення key=value пар. Наразі підтримується лише ключ command (наприклад, command=<binary-name>), але формат передбачає майбутні додавання, такі як перевірка дайджесту або відкритого ключа. Повторіть цей прапорець, щоб дозволити кілька втулків.
Запропоновані defaults
Розробники kubectl рекомендують використовувати kuberc із такими стандартними defaults:
Увага:
Якщо ви використовуєте провайдера керованого Kubernetes, перевірте документацію провайдера щодо того, які втулки exec потрібні у вашому середовищі, і замість цього використовуйте політику "Allowlist".
Якщо після встановлення політики "DenyAll", як показано нижче, виникнуть проблеми, перегляньте повідомлення про помилки kubectl, щоб зʼясувати, які втулки не вдалося запустити, і порівняйте їх з документацією вашого провайдера. Нарешті, змініть політику на "Allowlist" і додайте необхідні втулки в поле credentialPluginAllowlist.
apiVersion:kubectl.config.k8s.io/v1beta1kind:Preferencedefaults:# (1) стандартно server-side apply- command:applyoptions:- name:server-sidedefault:"true"# (2) стандартно інтерактивне видалення- command:deleteoptions:- name:interactivedefault:"true"# Перед вибором DenyAll ознайомтеся з наведеною вище приміткою про провайдерів керованих інстансівcredentialPluginPolicy:DenyAll
В цьому прикладі були використані такі налаштування:
Стандартно інтерактивне видалення щоразу, коли викликається kubectl delete, щоб запобігти випадковому видаленню ресурсів з кластера.
Запуск виконуваних втулків для облікових даних буде заборонено.
Вимкнення kuberc
Щоб тимчасово вимкнути функціональність kuberc, встановіть змінну середовища KUBERC зі значенням off:
exportKUBERC=off
або вимкніть функціональну можливість:
exportKUBECTL_KUBERC=false
Це може бути корисно для усунення несправностей, якщо ваш kuberc спричиняє проблеми.
12 - Кодування
12.1 - Довідник KYAML
KYAML — це безпечніший і менш неоднозначний піднабір YAML, який спочатку був представлений у Kubernetes v1.34 (альфа) і є стандартно увімкненим у v1.35 (бета). KYAML, розроблений спеціально для Kubernetes, вирішує типові проблеми YAML, такі як чутливість до пробілів і неявне примусове перетворення типів, зберігаючи при цьому повну сумісність з наявними парсерами та інструментами YAML.
Цей довідник описує синтаксис KYAML.
Початок роботи з KYAML
Залежність YAML від відступів та неявного примусового перетворення типів часто призводить до помилок конфігурації, особливо в конвеєрах CI/CD та системах шаблонів, таких як Helm. KYAML усуває ці проблеми, застосовуючи явну синтаксичну структуру, що робить конфігурації більш надійними та простішими для налагодження.
Основна структура
KYAML використовує синтаксис flow style з {} для обʼєктів і [] для масивів. Усі рядкові значення повинні бути в подвійних лапках.
Функціональні можливості — це набір пар ключ=значення, які описують функції Kubernetes. Ви можете увімкнути або вимкнути ці функції, використовуючи прапорець командного рядка --feature-gates на кожному компоненті Kubernetes.
Як увімкнути функціональні можливості
Щоб увімкнути або вимкнути функціональну можливість для певного компонента Kubernetes, використовуйте прапорець --feature-gates.
Цей прапорець приймає список пар ключ=значення, розділених комами, де кожен ключ є назвою функціональної можливості, а кожне значення є або true (увімкнути), або false (вимкнути).
Кожен компонент Kubernetes підтримує тільки ті функціональні можливості, які відповідають його функціям. Використовуйте <component> -h, щоб отримати список доступних функціональних можливостей для конкретного компонента.
Функціональні можливості для стабільних або застарілих функцій
Функціональні можливості для стабільних або застарілих функцій
Властивість
Стандартно
Стадія
Починаючи з
До
AllowDNSOnlyNodeCSR
false
Deprecated
1.31
–
AllowInsecureKubeletCertificateSigningRequests
false
Deprecated
1.31
–
AnonymousAuthConfigurableEndpoints
false
Alpha
1.31
1.31
AnonymousAuthConfigurableEndpoints
true
Beta
1.32
1.33
AnonymousAuthConfigurableEndpoints
true
GA
1.34
–
AnyVolumeDataSource
false
Alpha
1.18
1.23
AnyVolumeDataSource
true
Beta
1.24
1.32
AnyVolumeDataSource
true
GA
1.33
–
APIServerTracing
false
Alpha
1.22
1.26
APIServerTracing
true
Beta
1.27
1.33
APIServerTracing
true
GA
1.34
–
AuthorizeNodeWithSelectors
false
Alpha
1.31
1.31
AuthorizeNodeWithSelectors
true
Beta
1.32
1.33
AuthorizeNodeWithSelectors
true
GA
1.34
–
AuthorizeWithSelectors
false
Alpha
1.31
1.31
AuthorizeWithSelectors
true
Beta
1.32
1.33
AuthorizeWithSelectors
true
GA
1.34
–
BtreeWatchCache
true
Beta
1.32
1.32
BtreeWatchCache
true
GA
1.33
–
ChangeContainerStatusOnKubeletRestart
false
Deprecated
1.35
–
ConsistentListFromCache
false
Alpha
1.28
1.30
ConsistentListFromCache
true
Beta
1.31
1.33
ConsistentListFromCache
true
GA
1.34
–
CPUManagerPolicyOptions
false
Alpha
1.22
1.22
CPUManagerPolicyOptions
true
Beta
1.23
1.32
CPUManagerPolicyOptions
true
GA
1.33
–
CRDValidationRatcheting
false
Alpha
1.28
1.29
CRDValidationRatcheting
true
Beta
1.30
1.32
CRDValidationRatcheting
true
GA
1.33
–
CronJobsScheduledAnnotation
true
Beta
1.28
1.31
CronJobsScheduledAnnotation
true
GA
1.32
–
CSIServiceAccountTokenSecrets
true
Beta
1.35
1.35
CSIServiceAccountTokenSecrets
true
GA
1.36
–
CustomResourceFieldSelectors
false
Alpha
1.30
1.30
CustomResourceFieldSelectors
true
Beta
1.31
1.31
CustomResourceFieldSelectors
true
GA
1.32
–
DeclarativeValidation
true
Beta
1.33
1.35
DeclarativeValidation
true
GA
1.36
–
DeclarativeValidationTakeover
false
Beta
1.33
1.35
DeclarativeValidationTakeover
false
Deprecated
1.36
–
DisableAllocatorDualWrite
false
Alpha
1.31
1.32
DisableAllocatorDualWrite
false
Beta
1.33
1.33
DisableAllocatorDualWrite
true
GA
1.34
–
DisableNodeKubeProxyVersion
false
Alpha
1.29
1.30
DisableNodeKubeProxyVersion
true
Beta
1.31.0
1.31.0
DisableNodeKubeProxyVersion
false
Deprecated
1.31.1
–
DisableNodeKubeProxyVersion
false
Deprecated
1.32
1.32
DisableNodeKubeProxyVersion
true
Deprecated
1.33
–
DRAAdminAccess
false
Alpha
1.32
1.33
DRAAdminAccess
true
Beta
1.34
1.35
DRAAdminAccess
true
GA
1.36
–
DRAPrioritizedList
false
Alpha
1.33
1.33
DRAPrioritizedList
true
Beta
1.34
1.35
DRAPrioritizedList
true
GA
1.36
–
DynamicResourceAllocation
false
Alpha
1.30
1.31
DynamicResourceAllocation
false
Beta
1.32
1.33
DynamicResourceAllocation
true
GA
1.34
1.34
DynamicResourceAllocation
true
GA
1.35
–
ElasticIndexedJob
true
Beta
1.27
1.30
ElasticIndexedJob
true
GA
1.31
–
ExecProbeTimeout
true
GA
1.20
–
ExternalServiceAccountTokenSigner
false
Alpha
1.32
1.33
ExternalServiceAccountTokenSigner
true
Beta
1.34
1.35
ExternalServiceAccountTokenSigner
true
GA
1.36
–
GitRepoVolumeDriver
false
Deprecated
1.33
–
ImageMaximumGCAge
false
Alpha
1.29
1.29
ImageMaximumGCAge
true
Beta
1.30
1.34
ImageMaximumGCAge
true
GA
1.35
–
ImageVolume
false
Alpha
1.31
1.32
ImageVolume
false
Beta
1.33
1.34
ImageVolume
true
Beta
1.35
1.35
ImageVolume
true
GA
1.36
–
InformerResourceVersion
false
Alpha
1.30
1.34
InformerResourceVersion
true
GA
1.35
–
InPlacePodVerticalScaling
false
Alpha
1.27
1.32
InPlacePodVerticalScaling
true
Beta
1.33
1.34
InPlacePodVerticalScaling
true
GA
1.35
–
InPlacePodVerticalScalingAllocatedStatus
false
Alpha
1.32
1.32
InPlacePodVerticalScalingAllocatedStatus
false
Deprecated
1.33
–
JobBackoffLimitPerIndex
false
Alpha
1.28
1.28
JobBackoffLimitPerIndex
true
Beta
1.29
1.32
JobBackoffLimitPerIndex
true
GA
1.33
–
JobManagedBy
false
Alpha
1.30
1.31
JobManagedBy
true
Beta
1.32
1.34
JobManagedBy
true
GA
1.35
–
JobPodReplacementPolicy
false
Alpha
1.28
1.28
JobPodReplacementPolicy
true
Beta
1.29
1.33
JobPodReplacementPolicy
true
GA
1.34
–
JobSuccessPolicy
false
Alpha
1.30
1.30
JobSuccessPolicy
true
Beta
1.31
1.32
JobSuccessPolicy
true
GA
1.33
–
KMSv1
true
Deprecated
1.28
1.28
KMSv1
false
Deprecated
1.29
–
KubeletCgroupDriverFromCRI
false
Alpha
1.28
1.30
KubeletCgroupDriverFromCRI
true
Beta
1.31
–
KubeletCgroupDriverFromCRI
true
GA
1.34
–
KubeletFineGrainedAuthz
false
Alpha
1.32
1.32
KubeletFineGrainedAuthz
true
Beta
1.33
1.35
KubeletFineGrainedAuthz
true
GA
1.36
–
KubeletPodResourcesDynamicResources
false
Alpha
1.27
1.33
KubeletPodResourcesDynamicResources
true
Beta
1.34
1.35
KubeletPodResourcesDynamicResources
true
GA
1.36
–
KubeletPodResourcesGet
false
Alpha
1.27
1.33
KubeletPodResourcesGet
true
Beta
1.34
1.35
KubeletPodResourcesGet
true
GA
1.36
–
KubeletPSI
false
Alpha
1.33
1.33
KubeletPSI
true
Beta
1.34
1.35
KubeletPSI
true
GA
1.36
–
KubeletTracing
false
Alpha
1.25
1.26
KubeletTracing
true
Beta
1.27
1.33
KubeletTracing
true
GA
1.34
–
LogarithmicScaleDown
false
Alpha
1.21
1.21
LogarithmicScaleDown
true
Beta
1.22
1.30
LogarithmicScaleDown
true
GA
1.31
–
MatchLabelKeysInPodAffinity
false
Alpha
1.29
1.30
MatchLabelKeysInPodAffinity
true
Beta
1.31
1.32
MatchLabelKeysInPodAffinity
true
GA
1.33
–
MemoryManager
false
Alpha
1.21
1.21
MemoryManager
true
Beta
1.22
1.31
MemoryManager
true
GA
1.32
–
MultiCIDRServiceAllocator
false
Alpha
1.27
1.30
MultiCIDRServiceAllocator
false
Beta
1.31
1.32
MultiCIDRServiceAllocator
true
GA
1.33
–
MutableCSINodeAllocatableCount
false
Alpha
1.33
1.33
MutableCSINodeAllocatableCount
false
Beta
1.34
1.34
MutableCSINodeAllocatableCount
true
Beta
1.35
1.35
MutableCSINodeAllocatableCount
true
GA
1.36
–
MutatingAdmissionPolicy
false
Alpha
1.30
1.33
MutatingAdmissionPolicy
false
Beta
1.34
1.35
MutatingAdmissionPolicy
true
GA
1.36
–
NFTablesProxyMode
false
Alpha
1.29
1.30
NFTablesProxyMode
true
Beta
1.31
1.32
NFTablesProxyMode
true
GA
1.33
–
NodeInclusionPolicyInPodTopologySpread
false
Alpha
1.25
1.25
NodeInclusionPolicyInPodTopologySpread
true
Beta
1.26
1.32
NodeInclusionPolicyInPodTopologySpread
true
GA
1.33
–
NodeLogQuery
false
Alpha
1.27
1.29
NodeLogQuery
false
Beta
1.30
1.35
NodeLogQuery
true
GA
1.36
–
NodeSwap
false
Alpha
1.22
1.27
NodeSwap
false
Beta
1.28
1.29
NodeSwap
true
Beta
1.30
1.33
NodeSwap
true
GA
1.34
–
OrderedNamespaceDeletion
false
Beta
1.30
1.32
OrderedNamespaceDeletion
true
Beta
1.33
1.33
OrderedNamespaceDeletion
true
GA
1.34
–
PodIndexLabel
true
Beta
1.28
1.31
PodIndexLabel
true
GA
1.32
–
PodLifecycleSleepAction
false
Alpha
1.29
1.29
PodLifecycleSleepAction
true
Beta
1.30
1.33
PodLifecycleSleepAction
true
GA
1.34
–
PodLifecycleSleepActionAllowZero
false
Alpha
1.32
1.32
PodLifecycleSleepActionAllowZero
true
Beta
1.33
1.33
PodLifecycleSleepActionAllowZero
true
GA
1.34
–
PodObservedGenerationTracking
false
Alpha
1.33
1.33
PodObservedGenerationTracking
true
Beta
1.34
1.34
PodObservedGenerationTracking
true
GA
1.35
–
PodSchedulingReadiness
false
Alpha
1.26
1.26
PodSchedulingReadiness
true
Beta
1.27
1.29
PodSchedulingReadiness
true
GA
1.30
–
PreferSameTrafficDistribution
false
Alpha
1.33
1.33
PreferSameTrafficDistribution
true
Beta
1.34
1.34
PreferSameTrafficDistribution
true
GA
1.35
–
ProcMountType
false
Alpha
1.12
1.30
ProcMountType
false
Beta
1.31
1.32
ProcMountType
true
Beta
1.33
1.35
ProcMountType
true
GA
1.36
–
RecoverVolumeExpansionFailure
false
Alpha
1.23
1.31
RecoverVolumeExpansionFailure
true
Beta
1.32
1.33
RecoverVolumeExpansionFailure
true
GA
1.34
–
RecursiveReadOnlyMounts
false
Alpha
1.30
1.30
RecursiveReadOnlyMounts
true
Beta
1.31
1.32
RecursiveReadOnlyMounts
true
GA
1.33
–
RelaxedDNSSearchValidation
false
Alpha
1.32
1.32
RelaxedDNSSearchValidation
true
Beta
1.33
1.33
RelaxedDNSSearchValidation
true
GA
1.34
–
RelaxedEnvironmentVariableValidation
false
Alpha
1.30
1.31
RelaxedEnvironmentVariableValidation
true
Beta
1.32
1.33
RelaxedEnvironmentVariableValidation
true
GA
1.34
–
ResilientWatchCacheInitialization
true
Beta
1.31
1.33
ResilientWatchCacheInitialization
true
GA
1.34
–
RetryGenerateName
false
Alpha
1.30
1.30
RetryGenerateName
true
Beta
1.31
1.31
RetryGenerateName
true
GA
1.32
–
SchedulerQueueingHints
true
Beta
1.28
1.28
SchedulerQueueingHints
false
Beta
1.29
1.31
SchedulerQueueingHints
true
Beta
1.32
1.33
SchedulerQueueingHints
true
GA
1.34
–
SELinuxChangePolicy
false
Alpha
1.32
1.32
SELinuxChangePolicy
true
Beta
1.33
1.35
SELinuxChangePolicy
true
GA
1.36
–
SELinuxMountReadWriteOncePod
false
Alpha
1.25
1.26
SELinuxMountReadWriteOncePod
false
Beta
1.27
1.27
SELinuxMountReadWriteOncePod
true
Beta
1.28
1.35
SELinuxMountReadWriteOncePod
true
GA
1.36
–
SeparateCacheWatchRPC
true
Beta
1.28
1.32
SeparateCacheWatchRPC
false
Deprecated
1.33
–
SeparateTaintEvictionController
true
Beta
1.29
1.33
SeparateTaintEvictionController
true
GA
1.34
–
ServiceAccountTokenJTI
false
Alpha
1.29
1.29
ServiceAccountTokenJTI
true
Beta
1.30
1.31
ServiceAccountTokenJTI
true
GA
1.32
–
ServiceAccountTokenNodeBinding
false
Alpha
1.29
1.30
ServiceAccountTokenNodeBinding
true
Beta
1.31
1.32
ServiceAccountTokenNodeBinding
true
GA
1.33
–
ServiceAccountTokenNodeBindingValidation
false
Alpha
1.29
1.29
ServiceAccountTokenNodeBindingValidation
true
Beta
1.30
1.31
ServiceAccountTokenNodeBindingValidation
true
GA
1.32
–
ServiceAccountTokenPodNodeInfo
false
Alpha
1.29
1.29
ServiceAccountTokenPodNodeInfo
true
Beta
1.30
1.31
ServiceAccountTokenPodNodeInfo
true
GA
1.32
–
ServiceTrafficDistribution
false
Alpha
1.30
1.30
ServiceTrafficDistribution
true
Beta
1.31
1.32
ServiceTrafficDistribution
true
GA
1.33
–
SidecarContainers
false
Alpha
1.28
1.28
SidecarContainers
true
Beta
1.29
1.32
SidecarContainers
true
GA
1.33
–
StatefulSetAutoDeletePVC
false
Alpha
1.23
1.26
StatefulSetAutoDeletePVC
true
Beta
1.27
1.31
StatefulSetAutoDeletePVC
true
GA
1.32
–
StatefulSetStartOrdinal
false
Alpha
1.26
1.26
StatefulSetStartOrdinal
true
Beta
1.27
1.30
StatefulSetStartOrdinal
true
GA
1.31
–
StorageNamespaceIndex
true
Beta
1.30
1.32
StorageNamespaceIndex
true
Deprecated
1.33
–
StreamingCollectionEncodingToJSON
true
Beta
1.33
1.33
StreamingCollectionEncodingToJSON
true
GA
1.34
–
StreamingCollectionEncodingToProtobuf
true
Alpha
1.33
1.33
StreamingCollectionEncodingToProtobuf
true
GA
1.34
–
StrictCostEnforcementForVAP
false
Beta
1.30
1.31
StrictCostEnforcementForVAP
true
GA
1.32
–
StrictCostEnforcementForWebhooks
false
Beta
1.31
1.31
StrictCostEnforcementForWebhooks
true
GA
1.32
–
StructuredAuthenticationConfiguration
false
Alpha
1.29
1.29
StructuredAuthenticationConfiguration
true
Beta
1.30
1.33
StructuredAuthenticationConfiguration
true
GA
1.34
–
StructuredAuthorizationConfiguration
false
Alpha
1.29
1.29
StructuredAuthorizationConfiguration
true
Beta
1.30
1.31
StructuredAuthorizationConfiguration
true
GA
1.32
–
TopologyAwareHints
false
Alpha
1.21
1.22
TopologyAwareHints
false
Beta
1.23
1.23
TopologyAwareHints
true
Beta
1.24
1.32
TopologyAwareHints
true
GA
1.33
–
TopologyManagerPolicyOptions
false
Alpha
1.26
1.27
TopologyManagerPolicyOptions
true
Beta
1.28
1.31
TopologyManagerPolicyOptions
true
GA
1.32
–
UserNamespacesSupport
false
Alpha
1.28
1.29
UserNamespacesSupport
false
Beta
1.30
1.32
UserNamespacesSupport
true
Beta
1.33
1.35
UserNamespacesSupport
true
GA
1.36
–
VolumeAttributesClass
false
Alpha
1.29
1.30
VolumeAttributesClass
false
Beta
1.31
1.33
VolumeAttributesClass
true
GA
1.34
1.35
VolumeAttributesClass
true
GA
1.36
–
WatchFromStorageWithoutResourceVersion
false
Beta
1.30
1.32
WatchFromStorageWithoutResourceVersion
false
Deprecated
1.33
–
WindowsHostNetwork
true
Alpha
1.26
1.32
WindowsHostNetwork
false
Deprecated
1.33
–
WinDSR
false
Alpha
1.14
1.32
WinDSR
true
Beta
1.33
1.33
WinDSR
true
GA
1.34
–
WinOverlay
false
Alpha
1.14
1.19
WinOverlay
true
Beta
1.20
1.33
WinOverlay
true
GA
1.34
–
Використання функцій
Стадії функцій
Кожна функція може бути в стані Alpha, Beta або GA (загальнодоступна).
Alpha означає:
Функція є типово вимкненою.
Функція може містити помилки. Увімкнення функції може призвести до непередбачуваної поведінки.
Підтримка функції може бути припинена в будь-який момент без попередження.
API може змінюватися в несумісний спосіб в майбутніх випусках без попередження.
Рекомендується використовувати функцію в кластерах з коротким терміном життя через значний ризик помилок та відсутність довгострокової підтримки.
Beta означає:
Зазвичай функція є типово увімкненою. Бета API групи є типово вимкненими.
Функція є добре протестованою. Увімкнення функції вважається безпечним.
Підтримка загального функціонала не буде припинена, хоча деталі можуть змінюватися.
Схема та/або семантика обʼєктів можуть змінюватися несумісними способами в наступному бета або стабільному випуску. Коли це станеться, ми надамо інструкції для переходу на наступну версію. Це може вимагати видалення, редагування та повторного створення API обʼєктів. Процес редагування може потребувати певних зусиль. Це може вимагати простою для застосунків, які залежать від функції.
Рекомендується використовувати лише для некритичних для бізнесу випадків через можливість несумісних змін у наступних випусках. Якщо у вас є кілька кластерів, які можуть бути оновлені незалежно, ви можете послабити це обмеження.
Примітка:
Будь ласка, спробуйте Beta функції та надайте про них відгуки! Після виходу з бета-версії, можливо, буде недоцільно вносити більше змін.
Функція в стані Загальна доступність (GA) також називається стабільною функцією. Це означає:
Функція завжди увімкнена; ви не можете її вимкнути.
Відповідний перемикач функціональної можливості більше не потрібен.
Стабільні версії функцій зʼявлятимуться у випущеному програмному забезпеченні для багатьох наступних версій.
Перелік функціональних можливостей
Кожна функціональна можливість створена для вмикання/вимикання певної функції.
AllowDNSOnlyNodeCSR
Дозволяє kubelet запитувати сертифікат без будь-якого доступного Node IP, лише з DNS-іменами.
AllowInsecureKubeletCertificateSigningRequests
Ввімкнення перевірки допуску вузла CertificateSigningRequests для підписувачів kubelet. Якщо ви не вимкнете цю функціональну можливість, Kubernetes вимагатиме, щоб нові сертифікати kubelet мали commonName, що відповідає system:node:$nodeName.
AllowParsingUserUIDFromCertAuth
Коли цю функцію увімкнено, атрибут імені субʼєкта 1.3.6.1.4.1.57683.2 у сертифікаті X.509 буде оброблятися як UID користувача під час автентифікації сертифіката.
AllowUnsafeMalformedObjectDeletion
Дозволяє оператору кластера визначати пошкоджені ресурси за допомогою операції list, а також вводить опцію ignoreStoreReadErrorWithClusterBreakingPotential, яку оператор може встановити для виконання небезпечної та примусової операції delete таких пошкоджених ресурсів за допомогою API Kubernetes.
Ця функціональна можливість дозволяє серверу API покращити продуктивність: сервер API може використовувати окремі goroutines (легкі потоки, керовані середовищем виконання Go) для обслуговування запитів watch.
AtomicFIFO
Реалізація черги FIFO мовою Go для клієнтів, яка використовує атомарні операції, щоб гарантувати, що події, які надходять пакетами (наприклад, від виклику ListAndWatch), обробляються одним блоком. Це відрізняється від попередньої реалізації, яка обробляла такі події по черзі, що могло призвести до тимчасової невідповідності внутрішнього кешу та сервера API. Цю функцію можна вмикати або вимикати в kube-controller-manager та будь-якому контролері, написаному на Go для клієнтів.
AuthorizeNodeWithSelectors
Дозволяє авторизатору вузла використовувати детальну авторизацію за допомогою селекторів.
AuthorizePodWebsocketUpgradeCreatePermission
Коли функціональна можливість AuthorizePodWebsocketUpgradeCreatePermission має значення true, клієнти повинні мати дозвіл на створення (create) субресурсів Podʼів, навіть якщо їх створення ініціюється за допомогою WebSocket.
Запит на оновлення зʼєднання відбувається для кожного з наступних субресурсів: pods/exec, pods/attach та pods/portforward. Ця функція усуває прогалину в безпеці, спричинену переходом на новий протокол: тоді як запити SPDY використовують HTTP POST (що природно узгоджується з дозволом create RBAC), протокол WebSocket вимагає запиту HTTP GET для встановлення зʼєднання. Щоб виправити цей недолік, тепер застосовується синтетична перевірка RBAC, щоб гарантувати, що оновлення WebSocket суворо дотримуються дозволу create, що відповідає чинній моделі безпеки SPDY.
Ви можете вимкнути цю функцію, якщо у вас є діючі клієнти або власні інструменти, які покладаються на попередню поведінку, а саме, якщо вони підключаються через WebSockets, але на даний момент не мають дозволу create RBAC.
Якщо увімкнено, сервер API замінить застарілий watch cache на основі HashMap на реалізацію на основі BTree. Ця заміна може призвести до покращення продуктивності.
Вмикає старий спосіб запису для оновлення статусу контейнера ready після того, як kubelet виявляє перезапуск.
Ця функція була введена, щоб дозволити вам повернути поведінку до раніше використовуваного стандартного значення. Якщо вас влаштовує стандартна поведінка, вам не потрібно вмикати цю функцію.
ClearingNominatedNodeNameAfterBinding
Дозволяє очищати .status.nominatedNodeName щоразу, коли Podʼи привʼязуються до вузлів.
Увімкнення механізму узгодження маршруту на основі спостереження (замість узгодження через фіксований інтервал) у бібліотеці cloud-controller-manager.
CloudControllerManagerWebhook
Вмикання веб-хуків у менеджері хмарних контролерів.
ClusterTrustBundle
Ця функціональна можливість існує в Kubernetes API server та controller manager.
Використовуючи kube-apiserver, вона дозволяє підтримку ClusterTrustBundle.
Щоб використовувати API ClusterTrustBundle у вашому кластері, потрібно увімкнути цю функціональну можливість і також увімкнути відповідну альфа-групу API за допомогою аргументу командного рядка --runtime-config для kube-apiserver.
У Kubernetes controller manager вона використовується для керування публікацією ClusterTrustBundle для підписувача kubernetes.io/kube-apiserver-serving.
Увімкнення точки доступу flagz компонента. Докладнішу інформацію наведено у zpages.
ComponentStatusz
Вмикає точку доступу statusz компонента. Докладнішу інформацію наведено у zpages.
ConcurrentWatchObjectDecode
Вмикає одночасне декодування обʼєктів watch. Це потрібно для того, щоб уникнути голодування кешу watch API-сервера, коли встановлений вебхук перетворення.
ConsistentListFromCache
Покращує продуктивність API сервера Kubernetes, обслуговуючи узгоджені запити list безпосередньо з кешу спостереження, що підвищує масштабованість та скорочує час відгуку. Для узгодженого списку з кешу Kubernetes потрібна новіша версія etcd (v3.4.31+ або v3.5.13+), яка містить виправлення для функції запиту на прогрес спостереження. Якщо надана стара версія etcd, Kubernetes автоматично визначить це і повернеться до обслуговування узгоджених читань з etcd. Сповіщення про прогрес забезпечують узгодженість кешу спостереження з etcd, одночасно зменшуючи потребу у витратних читаннях кворуму з etcd.
Дозволяє імперсонацію, яка обмежується конкретними запитами, та яка не є всеосяжною.
ContainerCheckpoint
Вмикає kubelet checkpoint API. Дивіться Kubelet Checkpoint API для більш детальної інформації.
ContainerRestartRules
Дозволяє налаштувати політику перезапуску контейнерів та правила перезапуску. Докладні відомості наведено у статті Правила перезапуску контейнерів.
ContainerStopSignals
Дозволяє використовувати сигнал StopSignal життєвого циклу для контейнерів для налаштування власних сигналів за допомогою яких може бути зупинено роботу контейнера.
ContextualLogging
Вмикає додаткові деталі у виведенні логів компонентів Kubernetes, які підтримують контекстне ведення логів.
ControllerManagerReleaseLeaderElectionLockOnExit
Дозволяє kube-controller-manager активно звільняти блокування вибору лідера під час зміни лідера, замість того, щоб чекати закінчення терміну дії блокування. Це дозволяє швидше обрати нового лідера.
CoordinatedLeaderElection
Вмикає поведінку, що підтримує API LeaseCandidate, а також забезпечує детерміноване обрання лідера для панелі управління Kubernetes.
CPUManagerPolicyAlphaOptions
Дозволяє тонко налаштовувати політики CPUManager, експериментальні, альфа-опції якості. Ця функціональна можливість захищає групу опцій CPUManager, які мають рівень якості альфа. Ці функціональні можливості ніколи не будуть переведені у бета-версію або стабільну версію.
CPUManagerPolicyBetaOptions
Дозволяє тонко налаштовувати політики CPUManager, експериментальні, бета-опції якості. Ця функціональна можливість захищає групу опцій CPUManager, які мають рівень якості бета. Ці функціональні можливості ніколи не будуть переведені у стабільну версію.
CPUManagerPolicyOptions
Дозволяє тонко налаштовувати політики CPUManager.
CRDObservedGenerationTracking
Дозволяє відстежувати спостережену генерацію в умовах CRD. Встановлення значення false призведе до того, що в умовах CRD спостережена генерація буде видалена.
CRDValidationRatcheting
Ввімкнути оновлення власних ресурсів, щоб вони містили порушення їхньої схеми OpenAPI, якщо частини ресурсу, що порушують оновлення не змінилися. Докладніші відомості наведено у статті Проковзування валідації.
CRIListStreaming
Дозволяє потокові RPC для операцій list CRI (ListContainers, ListPodSandbox, ListImages). Коли увімкнено, kubelet використовує серверні потокові RPC (наприклад, StreamContainers, StreamPodSandboxes), які дозволяють середовищу виконання контейнерів розділяти результати на кілька відповідей, обходячи обмеження розміру повідомлення gRPC у 16 МіБ. Це дозволяє отримувати список контейнерів на вузлах з тисячами контейнерів без збоїв. Якщо середовище виконання контейнерів не підтримує потокові RPC, kubelet повертається до унарних RPC.
CronJobsScheduledAnnotation
Встановіть час запланованого завдання як анотацію для завдань, створених від імені CronJob.
CrossNamespaceVolumeDataSource
Вмикає використання перехресного простору назв джерела даних тома щоб дозволити вам вказувати простір імен джерела у полі dataSourceRef у PersistentVolumeClaim.
CSIServiceAccountTokenSecrets
Дозволяє драйверам CSI підключатися для отримання токенів службових облікових записів від kubelet через спеціальне поле секретів у NodePublishVolumeRequest замість поля volume_context.
CSIVolumeHealth
Вмикає підтримку моніторингу стану справності томів CSI на вузлі.
Вмикає selectableFields в API CustomResourceDefinition, щоб дозволити фільтрацію запитів list, watch та deletecollection для власних ресурсів.
DeclarativeValidation
Вмикає декларативну валідацію внутрішніх API Kubernetes. Якщо увімкнено, для API з правилами декларативної перевірки (визначеними за допомогою IDL-теґів у коді Go) буде виконано як згенерований код декларативної перевірки, так і оригінальний код перевірки, написаний вручну. Результати порівнюються, і про будь-які розбіжності повідомляється за допомогою метрики declarative_validation_mismatch_total. Користувачеві повертається лише результат валідації, написаний вручну (наприклад: фактична валідація у шляху запиту). Оригінальна рукописна перевірка залишається авторитетною перевіркою, коли її увімкнено, але це можна змінити, якщо увімкнути функціональну можливість DeclarativeValidationBeta на додачу до цієї. Ця функціональна можливість працює лише на kube-apiserver.
DeclarativeValidationBeta
Ця функціональна можливість діє як глобальний вимикач безпеки для правил валідації на стадії бета (+k8s:beta). Вона дозволяє адміністраторам кластера вимикати застосування валідацій на стадії бета, якщо виявлено регресії, повертаючи їх у режим Shadow.
У режимі Shadow декларативна валідація виконується, а невідповідності з рукописною валідацією реєструються як метрики, але помилки не відхиляють запити. Рукописна валідація залишається авторитетною та застосовується.
Логіка управління ресурсами за допомогою WithDeclarativeEnforcement():
Стандартні теги (без префікса): Завжди застосовується (ігнорує цей вимикач).
Бета-теги (+k8s:beta): Застосовується, коли цей вимикач увімкнено (зазвичай), інакше в режимі Shadow.
Альфа-теги (+k8s:alpha): Завжди в режимі Shadow.
Ця функціональна можливість не має ефекту, якщо головна функціональна можливість DeclarativeValidation вимкнена.
Якщо увімкнено, разом з функціональною можливістю DeclarativeValidation, помилки декларативної перевірки повертаються безпосередньо користувачеві, замінюючи помилки ручної перевірки для правил, які мають декларативну реалізацію. Якщо вимкнено (і увімкнено DeclarativeValidation), завжди повертаються помилки перевірки, написані вручну, що фактично переводить декларативну перевірку у режим перевірки mismatch validation mode, який відстежує відповіді API, але не впливає на них. Цей режим mismatch validation mode дозволяє відстежувати метрики declarative_validation_mismatch_total та declarative_validation_panic_total, які є деталями реалізації для більш безпечного розгортання, пересічному користувачеві не потрібно взаємодіяти з ними безпосередньо. Ця функціональна можливість працює лише на kube-apiserver. Примітка: Хоча декларативна валідація має на меті функціональну еквівалентність з рукописною валідацією, точний опис повідомлень про помилки може відрізнятися між цими двома підходами.
DeploymentReplicaSetTerminatingReplicas
Увімкнення нового поля стану .status.terminatingReplicas у Deployments і ReplicaSets для відстежування завершених podʼів.
DetectCacheInconsistency
Вмикає виявлення неузгодженості кеша в сервері API.
DisableAllocatorDualWrite
Ви можете увімкнути функціональну можливість MultiCIDRServiceAllocator. Сервер API підтримує міграцію зі старих розподільників bitmap ClusterIP на нові розподільники IPAddress.
Сервер API виконує подвійний запис на обидва розподільники. Ця функція вимикає подвійний запис на нові розподільники ClusterIP; ви можете увімкнути цю функцію, якщо ви завершили відповідний етап міграції.
DisableCPUQuotaWithExclusiveCPUs
Коли функціональна можливвість DisableCPUQuotaWithExclusiveCPUs увімкнена ( стандартно), Kubernetes не застосовує квоту на використання CPU для Podʼів, які використовують [Guaranteed](/docs/concepts/workloads/pods/pod-qos/# guaranteed) Клас QoS.
Ви можете вимкнути функцію DisableCPUQuotaWithExclusiveCPUs, щоб відновити попередню поведінку.
DisableNodeKubeProxyVersion
Вимикає встановлення поля kubeProxyVersion вузла.
DRAAdminAccess
Вмикає підтримку запиту доступу адміністратора у ResourceClaim або ResourceClaimTemplate. Доступ адміністратора надає доступ до використовуваних пристроїв і може включати додаткові дозволи, коли пристрій стає доступним у контейнері. Починаючи з Kubernetes v1.33, лише користувачі, яким дозволено створювати обʼєкти ResourceClaim або ResourceClaimTemplate у просторах імен, позначених resource.kubernetes.io/admin-access: “true" (з урахуванням регістру) можуть використовувати поле adminAccess. Це гарантує, що користувачі, які не мають прав адміністратора, не зможуть зловживати функцією. Починаючи з Kubernetes v1.34, цю мітку було оновлено на resource.kubernetes.io/admin-access: "true".
DRAConsumableCapacity
Дозволяє спільне використання пристрою в декількох ResourceClaims або запитах.
Крім того, якщо пристрій підтримує спільне використання, його ресурсом (ємністю) можна керувати за допомогою визначеної політики спільного використання.
DRADeviceBindingConditions
Дозволяє підтримку DeviceBindingConditions у полях, повʼязаних з DRA. Це дозволяє проводити ретельні перевірки готовності пристроїв та процеси підключення перед фазою привʼязки.
Дозволяє використовувати поля атрибутів типу список (bools, ints, strings, versions) для пристроїв у ResourceSlice, що дозволяє пристрою оголошувати кілька значень для одного атрибуту.
Коли увімкнено, matchAttribute використовує семантику перетину множин (множини значень атрибутів для всіх вибраних пристроїв повинні мати непорожній перетин), а distinctAttribute використовує семантику попарної роздільності (множини не повинні мати спільних значень). Скаляри залишаються сумісними з попередніми версіями, розглядаються як одноелементні множини.
Також додає допоміжну функцію includes() до виразів селектора пристроїв CEL, яка працює як зі скалярами, так і з атрибутами типу список.
Для отримання додаткової інформації див. Атрибути типу список у документації з динамічного розподілу ресурсів.
DRANodeAllocatableResources
Дозволяє kube-scheduler враховувати ресурси Node Allocatable (такі як CPU, памʼять та hugepages), керовані Dynamic Resource Allocation (DRA), у своєму стандартному обліку ресурсів вузла.
Коли увімкнено, драйвери DRA можуть використовувати поле nodeAllocatableResourceMappings на пристроях ResourceSlice, щоб вказати, як їхні пристрої споживають ресурси Node Allocatable. Це дозволяє планувальнику поєднувати ці розподіли DRA зі стандартними запитами Pod. Також це відкриває поле status.nodeAllocatableResourceClaimStatuses у API Pod для відстеження результативних розподілів ресурсів.
Увімкнути підтримку запиту Пристрої, що розділяються на розділи для DRA. Це дозволяє драйверам оголошувати декілька пристроїв, які зіставляються з тими самими ресурсами фізичного пристрою.
DRAPrioritizedList
Дозволяє вказати пріоритетний список альтернативних пристроїв, які можуть бути виділені для запиту в ResourceClaim, якщо бажаний альтернативний пристрій недоступний.
DRAResourceClaimDeviceStatus
Вмикає підтримку поля ResourceClaim.status.devices та встановлення цього статусу з драйверів DRA. Для цього потрібно увімкнути функціональну можливість DynamicResourceAllocation.
DRAResourceClaimGranularStatusAuthorization
Вмикає підтримку детальної авторизації оновлень статусу ResourceClaim. Ця функція вимагає додаткових детальних прав доступу при зміні конкретних полів у об'єктах статусу ResourceClaim.
DRAResourcePoolStatus
Вмикає API ResourcePoolStatusRequest для запиту наявності пристроїв у ресурсних пулах DRA. Коли функція увімкнена, користувачі можуть створювати обʼєкти ResourcePoolStatusRequest, щоб отримати моментальний знімок наявності пристроїв (загальна кількість, виділені, доступні та недоступні пристрої) для конкретного драйвера та, за бажанням, для конкретного пулу. Контролер у kube-controller-manager обробляє ці одноразові запити та заповнює статус інформацією про пул.
DRASchedulerFilterTimeout
Дозволяє припинити роботу фільтра для кожного вузла в планувальнику через певний час ( стандартно 10 секунд, можна налаштувати в конфігурації втулка DynamicResources).
DRAWorkloadResourceClaims
Вмикає підтримку ресурсів PodGroup з Workload API для запитів пристроїв через Динамічне виділення ресурсів, які можуть бути спільно використані їхніми учасниками Pods.
DynamicResourceAllocation
Дозволяє підтримувати ресурси з власними параметрами та життєвим циклом які не залежать від Pod. Розподілом ресурсів займається планувальник Kubernetes використовуючи "структуровані параметри".
ElasticIndexedJob
Дозволяє масштабувати індексовані завдання шляхом зміни параметрів spec.completions та spec.parallelism таким чином, щоб spec.completions == spec.parallelism. Детальніше див. у документації про еластичні індексовані завдання.
Вмикає підтримку kubelet для отримання подій життєвого циклу контейнера з container runtime через розширення до CRI. (PLEG, скорочення від "Pod lifecycle event generator" — генератор подій життєвого циклу Pod). Щоб ця функція була корисною, вам також потрібно увімкнути підтримку подій життєвого циклу контейнера у кожному середовищі виконання контейнерів, що працює у вашому кластері. Якщо середовище виконання контейнера не оголошує про підтримку подій життєвого циклу контейнера, то kubelet автоматично перемикається на застарілий загальний механізм PLEG, навіть якщо ви увімкнули цю функціональну можливість.
ExecProbeTimeout
Переконайтеся, що kubelet дотримується таймаутів exec probe. Ця функція існує на випадок, якщо будь-яке з ваших робочих навантажень залежить від виправленої помилки, коли Kubernetes ігнорував тайм-аути exec probe. Дивіться проби готовності.
ExtendWebSocketsToKubelet
Коли ввімкнено ExtendWebSocketsToKubelet і вузол kubelet повідомляє про підтримку, потоки exec/attach/portforward проксіруються безпосередньо до kubelet, а не перетворюються чи тунелюються на сервері API. Важливо, що ті самі обробники перекладу та тунелювання потоків, що використовуються на сервері API, тепер налаштовані ідентично в kubelet — логіка просто переміщена ближче до середовища виконання контейнера. Ця функція залежить від переходу NodeDeclaredFeatures у бета-версію, щоб оголошення можливостей kubelet було надійним у промислових кластерах.
ExternalServiceAccountTokenSigner
Увімкніть параметр --service-account-signing-endpoint, щоб kube-apiserver використовував зовнішнього підписувача для підписання токенів та керування ключами для перевірки токенів.
GangScheduling
Увімкнення втулка GangScheduling у kube-scheduler, який реалізує алгоритм планування «все або нічого». Для вираження вимог використовується Workload API.
GenericWorkload
Увімкнення підтримки Workload API для вираження вимог до планування на рівні робочого навантаження.
Коли ця функція увімкнена, Podʼи можуть посилатися на конкретну групу подів і використовувати це для впливу на спосіб їх планування.
GitRepoVolumeDriver
Визначає, чи підтримується втулок томів gitRepo. Втулок томів gitRepo стандартно вимкнений, починаючи з версії 1.33. Це дає користувачам можливість увімкнути його.
GracefulNodeShutdown
Вмикає підтримку відповідного завершення роботи у kubelet. Під час вимкнення системи kubelet намагатиметься виявити подію вимкнення і завершити роботу Podʼів, запущених на вузлі, відповідним чином. Докладніші відомості наведено у статті Відповідне вимикання вузла.
GracefulNodeShutdownBasedOnPodPriority
Дозволяє kubelet перевіряти пріоритети Pod під час відповідного завершення роботи вузла.
HostnameOverride
Дозволяє встановлювати будь-який FQDN як імʼя хоста пода.
HPAConfigurableTolerance
Дозволяє встановити поріг толерантності для метрики HorizontalPodAutoscaleer.
HPAScaleToZero
Дозволяє встановлювати minReplicas у 0 для ресурсів HorizontalPodAutoscaler при використанні власних або зовнішніх метрик.
ImageMaximumGCAge
Вмикає поле конфігурації kubelet imageMaximumGCAge, що дозволяє адміністратору вказати вік, після якого образ буде викинуто у смітник.
ImageVolume
Дозволити використання джерела тому image у Pod. За допомогою цього джерела томів ви можете змонтувати образ контейнера як том лише для читання.
InformerResourceVersion
Дозвольте клієнтам використовувати виклик LastSyncResourceVersion() на інформерах, що дозволить їм виконувати дії на основі поточної версії ресурсу. Коли ця опція вимкнена, LastSyncResourceVersion() виконується успішно, але повертає порожній рядок. Використовується kube-controller-manager для StorageVersionMigration.
InOrderInformers
Примушує інформерів передавати впорядковані події потоку спостереження, замість неупорядкованих.
InPlacePodLevelResourcesVerticalScaling
Дозволяє вертикальне масштабування ресурсів для Podʼів на місці (наприклад, зміна запитів/обмежень на рівні Podʼів щодо CPU або памʼяті для запущених Podʼів без необхідності їх перезапуску). Детальніше див. документацію про вертикальне масштабування ресурсів на рівні Podʼів на місці.
InPlacePodVerticalScaling
Дозволяє вертикальне масштабування Podʼів на місці.
InPlacePodVerticalScalingAllocatedStatus
Вмикає поле allocatedResources у статусі контейнера. Ця функція вимагає, щоб також було увімкнено можливість InPlacePodVerticalScaling.
InPlacePodVerticalScalingExclusiveCPUs
Вмикає зміну розміру ресурсу для контейнерів у Guaranteed podʼах з цілочисельними запитами на CPU. Застосовується лише у вузлах з увімкненими функціями InPlacePodVerticalScaling та CPUManager, а політика CPUManager має значення static.
InPlacePodVerticalScalingExclusiveMemory
Дозволяє змінювати розмір ресурсів для контейнерів у Guaranteed Podʼах, коли політика диспетчера памʼяті встановлена на "Static". Застосовується тільки до вузлів із увімкненими функціями InPlacePodVerticalScaling та диспетчером памʼяті.
JobBackoffLimitPerIndex
Дозволяє вказати максимальну кількість повторних спроб для кожного індексу в проіндексованих завданнях.
JobManagedBy
Дозволяє делегувати узгодження обʼєкта Job зовнішньому контролеру.
JobPodReplacementPolicy
Дозволяє вказувати заміну для Podʼів, що завершуються, в Job
JobSuccessPolicy
Дозволяє користувачам вказувати, коли Job може бути визнаний успішним на основі набору успішних Podʼів.
Вмикає виявлення параметра конфігурації драйвера cgroup kubelet з CRI. Ця функціональна можливість тепер увімкнена для всіх кластерів. Однак вона працює лише на вузлах, де є рушій виконання контейнерів CRI, який підтримує виклик CRI RuntimeConfig. Якщо CRI підтримує цю функцію, kubelet ігнорує параметр конфігурації cgroupDriver (або застарілий аргумент командного рядка --cgroup-driver). Якщо рушій виконання контейнерів не підтримує його, kubelet повертається до використання драйвера, налаштованого за допомогою параметра конфігурації cgroupDriver. Kubelet перестане повертатися до цієї конфігурації в Kubernetes 1.36. Таким чином, користувачі повинні оновити свій рушій виконання контейнерів CRI до версії, яка підтримує виклик CRI RuntimeConfig до цього часу. Адміністратори можуть використовувати метрику kubelet_cri_losing_support, щоб дізнатися, чи є вузли в їхньому кластері, які втратять підтримку в 1.36. Наступні версії CRI підтримують цей виклик CRI:
Дозволяє підтримувати конфігуровані максимальні значення backoff для кожного вузла для перезапуску контейнерів у стані CrashLoopBackOff. Для більш детальної інформації перевірте поле crashLoopBackOff.maxContainerRestartPeriod у kubelet config file.
Розширює ресурси gRPC точки доступу Podʼа kubelet, щоб включити ресурси, виділені в ResourceClaims через API DynamicResourceAllocation. Див. звіт про виділення ресурсів для отримання додаткової інформації, інформацією про доступні ресурси, що дозволяє клієнтам належним чином відстежувати вільні обчислювальні ресурси на вузлі.
KubeletPodResourcesDynamicResources
Розширює кінцеві точки [API gRPC для моніторингу ресурсів pod](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/ kubelet List і Get, щоб включити ресурси, виділені в ResourceClaims за допомогою Динамічного розподілу ресурсів.
Нижче наведено приклад метрик GPU, що демонструє, як цей API використовується NVIDIA dcgm-exporter для збору метрик GPU на кожен под, виділених драйвером NVIDIA DRA:
Вмикає точку доступу Get gRPC в kubeletʼах для ресурсів Pod. Цей API доповнює звіт про розподіл ресурсів.
KubeletPSI
Вмикає метрики kubelet для виведення інформації Pressure Stall Information (PSI) у Summary API та метриках Prometheus.
KubeletSeparateDiskGC
Функція розділеної файлової системи образів дозволяє kubelet виконувати збір сміття образів (шарів лише для читання) та/або контейнерів (шарів для запису), розгорнутих на окремих файлових системах.
KubeletServiceAccountTokenForCredentialProviders
Дозволяє kubelet надсилати токен службового облікового запису, привʼязаного до podʼа, для якого отримується образ, до втулка постачальника облікових даних.
KubeletTracing
Додавання підтримки розподіленого трасування в kubelet. Якщо увімкнено, інтерфейс CRI kubelet та автентифіковані http-сервери використовуються для генерації відрізків трасування OpenTelemetry. Дивіться Трасування для системних компонентів Kubernetes для більш детальної інформації.
ListFromCacheSnapshot
Дозволяє серверу API створювати знімки для сховища кешу спостереження і використовувати їх для обслуговування LIST-запитів.
LocalStorageCapacityIsolationFSQuotaMonitoring
Якщо LocalStorageCapacityIsolation увімкнено для локального ефемерного сховища, резервна файлова система для томів emptyDir підтримує квоти проєктів і UserNamespacesSupport увімкнено, квоти проєктів використовуються для моніторингу споживання сховища томів emptyDir, а не шляхом проходу файловою системою, що забезпечує кращу продуктивність і точність.
LogarithmicScaleDown
Вмикає напіввипадковий вибір Podʼів для виселення при зменшенні масштабу контролера на основі логарифмічного обʼєднання міток часу Podʼів.
LoggingAlphaOptions
Дозволяє тонко налаштовувати експериментальні, альфа-якості параметрів логування.
LoggingBetaOptions
Дозволяє тонко налаштовувати експериментальні, бета-якості параметрів логування.
ManifestBasedAdmissionControlConfig
Вмикає завантаження вебхуків допуску та політик допуску на основі CEL з статичних файлів маніфестів на диску через поле staticManifestsDir у AdmissionConfiguration. Ці політики активні з моменту запуску API-сервера, зберігаються при недоступності etcd і можуть захищати ресурси допуску на основі API від модифікації.
Вмикає обʼєднання селекторів, побудованих з matchLabelKeys, у labelSelectorобмеженнях поширення топології Pod. Цю функцію можна увімкнути, коли функція matchLabelKeys увімкнена за допомогою прапорця функції MatchLabelKeysInPodTopologySpread.
MaxUnavailableStatefulSet
Дозволяє встановити поле maxUnavailable для rolling update strategy набору StatefulSet. Поле визначає максимальну кількість Podʼів, які можуть бути недоступні під час оновлення.
MemoryManager
Дозволяє встановити спорідненість памʼяті для контейнера на основі топології NUMA.
MemoryQoS
Вмикає захист памʼяті та обмеження використання памʼяті на pod/контейнер за допомогою контролера памʼяті cgroup v2. Встановлює memory.high для обмеження на Burstable pods, а також опціонально встановлює memory.min/memory.low для багаторівневого захисту памʼяті, коли memoryReservationPolicy встановлено на TieredReservation.
MultiCIDRServiceAllocator
Відстежуйте розподіл IP-адрес для IP кластера сервісів за допомогою обʼєктів IPAddress.
MutableCSINodeAllocatableCount
Робить поле .spec.drivers[*].allocatable.count у CSINode змінним. Також увімкнено поле CSIDriver nodeAllocatableUpdatePeriodSeconds.
Це дозволяє періодично оновлювати звітну ємність томів, що виділяються для вузла, запобігаючи застряганню подівів зі збереженням стану через застарілу інформацію, на яку покладається планувальник kube-scheduler.
MutablePodResourcesForSuspendedJobs
Вмикає можливість виправлення шаблонів подів для призупинених завдань, щоб змінити запити або обмеження для ресурсів інфраструктури.
Вмикає можливість виправлення шаблонів подів для призупинених завдань, щоб змінити директиви планування подів.
MutatingAdmissionPolicy
Вмикає підтримку MutatingAdmissionPolicy, що дозволяє CEL використовувати мутації під час контролю допуску.
У версіях Kubernetes v1.30 та v1.31 ця функціональна можливість існувала, але не мала жодного ефекту.
NativeHistograms
Вмикає компоненти Kubernetes для експорту метрик у форматі Prometheus Native Histogram для підвищення ефективності та точності розподілу кошиків. Див. Нативні гістограми для отримання додаткової інформації.
Дозволяє вузлам повідомляти про підтримувані функції через їх .status. Це дозволяє планувальнику та контролеру допуску запобігати операціям на вузлах, які не мають функцій, необхідних для подів. Див. Функції, оголошені вузлом.
NodeInclusionPolicyInPodTopologySpread
Вмикає використання nodeAffinityPolicy та nodeTaintsPolicy в Обмеження поширення топології Podʼів при обчисленні відхилення розповсюдження топології вузлів.
NodeLogQuery
Дозволяє запитувати логи сервісів вузла за допомогою точки доступу /logs.
NodeSwap
Дозволяє kubelet виділяти памʼять підкачки для робочих навантажень Kubernetes на вузлі. Має використовуватися з KubeletConfiguration.failSwapOn, встановленим у false. За більш детальною інформацією зверніться до swap memory
NominatedNodeNameForExpectation
Коли ця опція увімкнена, kube-scheduler використовує .status.nominatedNodeName, щоб вказати, де буде прив’язаний Pod. Поле .status.nominatedNodeName встановлюється, коли kube-scheduler запускає витіснення подів або передбачає, що фаза WaitOnPermit або PreBinding триватиме відносно довго. Інші компоненти можуть читати та використовувати .status.nominatedNodeName, але не повинні встановлювати його.
Коли ця опція вимкнена, kube-scheduler встановлює .status.nominatedNodeName лише перед запуском витіснення.
OpenAPIEnums
Дозволяє заповнювати поля "enum" схем OpenAPI у специфікації, що повертається від сервера API.
OpportunisticBatching
Вмикає повторне використання результатів планування з попереднього циклу планування для еквівалентних подів.
OrderedNamespaceDeletion
Під час видалення простору імен ресурси podʼів будуть видалені перед рештою ресурсів.
PersistentVolumeClaimUnusedSinceTime
Коли увімкнено, контролер захисту PVC додає стан Unused до PersistentVolumeClaims, що відстежує, чи PVC наразі використовується будь-яким не Podʼом в термінальній стадії. Поле lastTransitionTime умови фіксує, коли PVC востаннє переходив між станом використання та невикористання.
PodAndContainerStatsFromCRI
Налаштуйте kubelet на збір статистики контейнерів і Podʼів під час виконання CRI-контейнера, а не на збір статистики з cAdvisor. Починаючи з версії 1.26, це також включає збір метрик з CRI та надсилання їх за допомогою /metrics/cadvisor (замість того, щоб cAdvisor відправляв їх безпосередньо).
PodCertificateRequest
Вмикає обʼєкти PodCertificateRequest та джерела томів podCertificate, що проєцюються.
PodDeletionCost
Вмикає функцію Pod Deletion Cost, яка дозволяє користувачам впливати на порядок зменшення масштабу ReplicaSet.
Вмикає kubelet Pod Info gRPC API. Див. Kubelet Pod Info gRPC API для отримання додаткової інформації.
PodLevelResourceManagers
Вмикає Pod-level resource managers: можливість для менеджерів топології, CPU та памʼяті використовувати інформацію з .spec.resources для виконання вирівнювання NUMA для всього поду та гнучкого управління ресурсами для контейнерів у цьому поді.
PodLevelResources
Вмикає Pod level resources: можливість визначати запити та ліміти ресурсів на рівні Podʼа, а не лише для контейнерів.
PodLifecycleSleepAction
Вмикає дію sleep в хуках життєвого циклу контейнера (preStop та postStart).
Дозволяє отримувати конкретні потоки логів (або stdout, або stderr) з потоків логів контейнера, використовуючи API Pod.
PodObservedGenerationTracking
Дозволяє kubelet встановлювати observedGeneration у статусі Podʼів, а також дозволяє іншим компонентам встановлювати observedGeneration в станах Podʼів. Ця функція дозволяє відобразити metadata.generation Podʼу на момент запису статусу або стану. Зберігання цієї інформації допомагає уникнути ризиків, повʼязаних із втраченими оновленнями.
Вмикає втулок доступу PodTopologyLabels. Докладні відомості наведено у статті Мітки топології podʼів.
PortForwardWebsockets
Дозволити потокове передавання WebSocket підпротоколу portforward (port-forward) від клієнтів, які запитують версію v2 (v2.portforward.k8s.io) підпротоколу.
PreferSameTrafficDistribution
Дозволяє використовувати значення PreferSameZone та PreferSameNode у полі Service trafficDistribution.
PreventStaticPodAPIReferences
Відмовляє в допуску Podʼу, якщо статичні Pod'и посилаються на інші об'єкти API.
ProcMountType
Дозволяє керувати типом монтування proc для контейнерів, встановлюючи поле procMount Podʼа у securityContext.
QOSReserved
Дозволяє резервувати ресурси на рівні QoS, запобігаючи тим самим тому, щоб підсистеми на рівнях QoS нижчого рівня виходили за межі ресурсів, запитаних на рівнях QoS вищого рівня (наразі лише памʼять).
RecoverVolumeExpansionFailure
Дозволяє користувачам редагувати свої PVC до менших розмірів, щоб можна було відновити їх після попередніх збоїв під час розширення томів. Докладні відомості див. у статті Відновлення після збою під час розширення томів.
RecursiveReadOnlyMounts
Вмикає підтримку рекурсивних монтувань лише для читання. Докладні відомості наведено у статті монтування лише для читання.
ReduceDefaultCrashLoopBackOffDecay
Дозволяє зменшити як початкову затримку, так і максимальну затримку, що накопичується між перезапусками контейнерів для вузла для контейнерів у CrashLoopBackOff по всьому кластеру до 1s початкової затримки та 60s максимальної затримки.
RelaxedDNSSearchValidation
Послаблює перевірку на стороні сервера рядка пошуку DNS (.spec.dnsConfig.searches) для контейнерів. Наприклад, з цією увімкненою можливістю можна включити символ _ до рядка пошуку імен DNS.
RelaxedEnvironmentVariableValidation
Дозволити майже всі друковані символи ASCII у змінних оточення.
Ця функція дозволяє іменам обʼєктів Service починатися з цифри.
ReloadKubeletServerCertificateFile
Дозволяє TLS-серверу kubelet оновлювати свій сертифікат, якщо вказаний файл сертифіката змінено.
Ця функція корисна при вказівці tlsCertFile і tlsPrivateKeyFile в конфігурації kubelet. Функція gate не впливає на інші випадки, такі як використання TLS bootstrap.
RemoteRequestHeaderUID
Дозволяє серверу API приймати UID (ідентифікатори користувачів) через автентифікацію заголовка запиту. Це також змусить агрегатор API kube-apiserver додавати UID у стандартних заголовках під час пересилання запитів до серверів, що обслуговують агрегований API.
ResilientWatchCacheInitialization
Дозволяє відмовостійку ініціалізацію кешу watch, щоб уникнути перевантаження панелі управління.
ResourceHealthStatus
Вмикає поле allocatedResourcesStatus у файлі .status для Pod. У полі буде показано додаткові відомості для кожного контейнера у Pod, а також інформацію про стан кожного пристрою, призначеного для Pod.
Починаючи з v1.36 (beta), звіт про стан включає необовʼязкове поле message, яке надає додатковий контекст у зрозумілій для людини формі про стан справності, наприклад, деталі помилок або причини відмови.
Дозволяє вказати RestartAllContainers як дію в контейнері restartPolicyRules. Коли вихід контейнера відповідає правилу з цією дією, весь Pod припиняється і перезапускається на місці.
RestartAllContainersOnContainerExits залежить від обох функціональних можливостей ContainerRestartRules та NodeDeclaredFeatures. Якщо залежні функціональні можливості не ввімкнені, запуск kubelet може завершитися невдачею.
Дозволяє повторити спробу створення обʼєкта, коли API server очікується, що сервер API server згенерує name. Якщо цю можливість увімкнено, запити з використанням generateName будуть автоматично повторюватися, якщо панель управління виявить конфлікт імен з наявним обʼєктом, але не більше 8 спроб.
RetryGenerateName
Дозволяє повторити спробу створення обʼєкта, коли очікується, що API server створить name.
Коли цю можливість увімкнено, запити з використанням generateName автоматично повторюються у випадку, якщо панель управління виявляє конфлікт імен з наявним обʼєктом, до обмеження у 8 спроб.
RotateKubeletServerCertificate
Вмикає ротацію серверного TLS-сертифікату в kubelet. Дивіться kubelet configuration для більш детальної інформації.
RuntimeClassInImageCriApi
Дозволяє витягувати зображення на основі класу виконання Podʼів, які посилаються на них.
SchedulerAsyncAPICalls
Змінює kube-scheduler, щоб зробити весь цикл планування вільним від блокуючих запитів до сервера API Kubernetes. Замість цього взаємодійте з API Kubernetes за допомогою асинхронного коду.
SchedulerAsyncPreemption
Дозволяє запуск деяких вибагливих операцій в межах планувальника, повʼязаних з випередженням, асинхронно. Асинхронна обробка випередження покращує загальну продуктивність планування Pod.
SchedulerPopFromBackoffQ
Покращує поведінку черги планування, виштовхуючи pod'и з backoffQ, коли activeQ порожній. Це дозволяє обробляти потенційно заплановані pod'и якнайшвидше, усуваючи штрафний ефект черги backoff.
SchedulerQueueingHints
Вмикає функцію покращення підказок планувальника, що дозволяє зменшити кількість марних перезапитів. Планувальник повторно спробує запланувати Podʼи, якщо щось зміниться у кластері, що може призвести до того, що Pod буде заплановано. Підказки щодо черги — це внутрішні сигнали, які дозволяють планувальнику відфільтрувати зміни у кластері, які мають відношення до незапланованого Podʼа, на основі попередніх спроб планування.
SELinuxChangePolicy
Вмикає поле spec.securityContext.seLinuxChangePolicy.
За допомогою цього поля можна відмовитися від застосування мітки SELinux до томів podʼів за допомогою параметрів монтування. Це потрібно, якщо один том, який підтримує монтування за допомогою параметрів монтування SELinux, використовується спільно з іншими томами, які мають різні мітки SELinux, наприклад, привілейованим і непривілейованим томами.
Увімкнення SELinuxChangePolicy вимагає увімкнення SELinuxMountReadWriteOncePod.
SELinuxMount
Прискорює запуск контейнера, дозволяючи kubelet монтувати томи для Pod безпосередньо з правильною міткою SELinux замість того, щоб рекурсивно змінювати кожен файл на томах. Це розширює можливості покращення продуктивності за допомогою SELinuxMountReadWriteOncePod, поширюючи реалізацію на всі томи.
Для увімкнення SELinuxMount потрібно, щоб було увімкнено SELinuxChangePolicy.
SELinuxMountReadWriteOncePod
Прискорює запуск контейнера, дозволяючи kubelet монтувати томи для Pod безпосередньо з правильною міткою SELinux замість того, щоб рекурсивно змінювати кожен файл на томах. Початкова реалізація була зосереджена на томах ReadWriteOncePod.
SeparateCacheWatchRPC
Дозволяє серверу API створювати спостереження в кеші на відділеному RPC. Це запобігає голодуванню кешу спостереження іншими спостереженнями.
SeparateTaintEvictionController
Дозволяє запускати контролер виселення на основі Taint, який виконує виселення на основі Taint, як окремий контролер (відокремлений від контролера життєвого циклу вузлів).
ServiceAccountNodeAudienceRestriction
Ця функціональна можливість використовується для обмеження аудиторії, для якої kubelet може запитувати токен службового облікового запису.
ServiceAccountTokenJTI
Контролює, чи вбудовуються JTI (UUID) у згенеровані токени службових облікових записів, і чи записуються ці JTI до логу аудиту Kubernetes для майбутніх запитів, зроблених цими токенами.
ServiceAccountTokenNodeBinding
Контролює, чи дозволяє сервер API привʼязувати токени службових облікових записів до обʼєктів Node.
ServiceAccountTokenNodeBindingValidation
Керує тим, чи буде apiserver перевіряти посилання на Node у токенах службових облікових записів.
ServiceAccountTokenPodNodeInfo
Керує тим, чи вбудовувати імʼя вузла та uid для повʼязаного з ним вузла при видачі токенів службових облікових записів, привʼязаних до обʼєктів Pod.
ServiceTrafficDistribution
Дозволяє використовувати необовʼязкове поле spec.trafficDistribution у Services. У цьому полі можна вказати параметри розподілу трафіку між точками доступу Service.
ShardedListAndWatch
Вмикає підтримку параметра shardSelector у запитах list та watch, що дозволяє клієнтам отримувати відфільтровану підмножину обʼєктів на основі хеш-діапазонів полів метаданих (наприклад, UID). Дивіться Фрагментований list та watch для отримання додаткової інформації.
SidecarContainers
Дозволяє встановлювати restartPolicy контейнера init в значення Always, щоб контейнер ставав sidecar-контейнером (контейнери init, які можна перезапустити). Дивіться Контейнери Sidecar та restartPolicy для отримання більш детальної інформації.
SizeBasedListCostEstimate
Дозволяє APF використовувати розмір обʼєктів для оцінки вартості запиту.
StaleControllerConsistencyDaemonSet
Вмикає поведінку всередині контролера DaemonSet, щоб забезпечити, що попередні записи в API-сервері спостерігаються перед продовженням додаткової синхронізації для того ж DaemonSet. Це запобігає використанню застарілого кешу, що може призвести до неправильних або помилкових оновлень DaemonSet.
StaleControllerConsistencyJob
Вмикає поведінку всередині контролера Job, щоб забезпечити, що попередні записи в API-сервері спостерігаються перед продовженням додаткової синхронізації для того ж Job. Це запобігає використанню застарілого кешу, що може призвести до неправильних або помилкових оновлень Job.
StaleControllerConsistencyReplicaSet
Вмикає поведінку всередині контролера ReplicaSet, щоб забезпечити, що попередні записи в API-сервері спостерігаються перед продовженням додаткової синхронізації для того ж ReplicaSet. Це запобігає використанню застарілого кешу, що може призвести до неправильних або помилкових оновлень ReplicaSet.
StaleControllerConsistencyStatefulSet
Вмикає поведінку всередині контролера StatefulSet, щоб забезпечити, що попередні записи в API-сервері спостерігаються перед продовженням додаткової синхронізації для того ж StatefulSet. Це запобігає використанню застарілого кешу, що може призвести до неправильних або помилкових оновлень StatefulSet.
StatefulSetAutoDeletePVC
Дозволяє використовувати необовʼязкове поле .spec.persistentVolumeClaimRetentionPolicy, що забезпечує контроль над видаленням PVC у життєвому циклі StatefulSet. Дивіться PersistentVolumeClaim retention для більш детальної інформації.
StatefulSetStartOrdinal
Дозволити налаштування порядкового номера старту у StatefulSet. Дивіться Початковий порядковий номер для більш детальної інформації.
StorageCapacityScoring
У версії 1.32 для підтримки сховищ зі статичним резервуванням використовувався елемент VolumeCapacityPriority. Починаючи з версії 1.33, новий елемент StorageCapacityScoring замінює старий елемент VolumeCapacityPriority з додатковою підтримкою сховищ з динамічним резервуванням. Коли StorageCapacityScoring увімкнено, втулок VolumeBinding у kube-scheduler розширено, щоб оцінювати вузли на основі місткості сховища на кожному з них. Ця функція застосовується до томів CSI, які підтримують Обсяг сховища, включно з локальним сховищем, яке підтримується драйвером CSI.
StorageNamespaceIndex
Вмикає індексатор простору імен для ресурсів, обмежених простором імен, в кеші сервера API для прискорення операцій list.
Дозволяє кодеру JSON сервера API кодувати колекції поелементно, а не всі одразу.
StreamingCollectionEncodingToProtobuf
Дозволяє кодеру API сервера Protobuf кодувати колекції поелементно, а не всі одразу.
StrictCostEnforcementForVAP
Застосовує сувору валідацію витрат CEL для ValidatingAdmissionPolicies.
StrictCostEnforcementForWebhooks
Застосовує сувору перевірку вартості CEL для matchConditions у вебхуків допуску.
StrictIPCIDRValidation
Використовує суворішу перевірку для полів, що містять IP-адреси та значення CIDR.
Зокрема, з увімкненою функціональною можливістю, октети в IPv4-адресах не повинні містити початкових 0, а IPv4-відображені значення IPv6 (наприклад, ::ffff:192.168.0.1) заборонені. Такі значення потенційно можуть спричинити проблеми з безпекою, коли різні компоненти інтерпретують один і той самий рядок як такий, що посилається на різні IP-адреси (як у CVE-2021-29923).
Це посилення стосується лише полів у вбудованих типах API, а не користувацьких типів ресурсів, значень у конфігураційних файлах Kubernetes або аргументів командного рядка.
Дозволяє використання Egress Selector у Structured Authentication Configuration.
StructuredAuthenticationConfigurationJWKSMetrics
Вмикає додаткові метрики для операцій JSON Web Key Set (JWKS) в автентифікаторах JWT, налаштованих за допомогою --authentication-config. Коли ця опція увімкнена, сервер API записує метрики про останній час отримання JWKS та хеш-значення відповіді JWKS. Детальніше див. довідку про метрики.
StructuredAuthorizationConfiguration
Вмикає структуровану конфігурацію авторизації, щоб адміністратори кластера могли вказати більше одного webhook авторизації в ланцюжку обробників серверів API.
Дозволяє використання systemd watchdog для моніторингу статусу справності kubelet. Див. Kubelet Systemd Watchdog для отримання додаткових відомостей.
TaintTolerationComparisonOperators
Дозволяє використовувати оператори числового порівняння (Lt та Gt) для толерантності.
TokenRequestServiceAccountUIDValidation
Це використовується для того, щоб переконатися, що UID, вказаний у TokenRequest, відповідає UID ServiceAccount, для якого запитується токен. Це допомагає запобігти зловживанню API TokenRequest, гарантуючи, що токени видаються тільки для правильного ServiceAccount.
TopologyAwareHints
Вмикає маршрутизацію з урахуванням топології на основі підказок топології у EndpointSlices. Див. статтю Підказки з урахуванням топології для отримання детальнішої інформації.
TopologyAwareWorkloadScheduling
Вмикає топологічно-орієнтоване планування для робочих навантажень.
TopologyManagerPolicyAlphaOptions
Дозволяє тонке налаштування політик менеджера топології, експериментальні варіанти з альфа-якістю. Ця функціональна можливість захищає групу параметрів менеджера топології, рівень якості яких є альфа. Ця функціональна можливість ніколи не перейде до бета-версії або стабільної версії.
TopologyManagerPolicyBetaOptions
Дозволяє тонке налаштування політик менеджера топології, експериментальні варіанти з бета-якістю. Ця функціональна можливість захищає групу параметрів менеджера топології, рівень якості яких є бета. Ця функціональна можливість ніколи не перейде до стабільної версії.
Дозволити WebSocket потік підпротоколу віддалених команд (exec, cp, attach) від клієнтів, які запитують версію 5 (v5) підпротоколу.
UnauthenticatedHTTP2DOSMitigation
Вмикає помʼякшення наслідків відмови в обслуговуванні (DoS) HTTP/2 для неавторизованих клієнтів. У версіях Kubernetes від 1.28.0 до 1.28.2 ця функція не включена.
UnknownVersionInteroperabilityProxy
Проксі-запити ресурсів до правильного однорангового kube-apiserver, коли існує декілька kube-апісерверів у різних версіях. Докладнішу інформацію наведено у статті Проксі змішаних версій.
UnlockWhileProcessingFIFO
Вмикає використання черги FIFO всередині client-go, яка розблокується під час обробки подій. Якщо не ввімкнено, черга утримує блокування протягом усього часу обробки подій, що може призвести до проблем з продуктивністю у сценаріях з високою пропускною здатністю. Цю функціональну можливість можна перемикати в kube-controller-manager та будь-якому контролері на основі client-go.
Ви можете ввімкнути цю функціональну можливість лише якщо функціональна можливість AtomicFIFO також увімкнена.
UserNamespacesHostNetworkSupport
Коли ця опція увімкнена, поди можуть одночасно використовувати як hostNetwork, так і Простори імен користувачів.
UserNamespacesSupport
Вмикання підтримки простору імен користувача для Podʼів.
VolumeAttributesClass
Вмикання підтримки класів VolumeAttributesClasses. Докладні відомості див. у статті Класи атрибутів томів.
VolumeLimitScaling
Вмикає масштабування обмеження томів для драйверів CSI. Це дозволяє планувальнику краще координувати роботу з кластерним автомасштабувальником для обмежень сховища. Дивіться Обмеження сховища для отримання додаткової інформації.
WatchCacheInitializationPostStartHook
Вмикає post-start-hook для ініціалізації watchcache як частину readyz (з таймаутом).
WatchFromStorageWithoutResourceVersion
Дозволяє watch без resourceVersion працювати зі сховища.
Дозволяє клієнту API запитувати потік даних замість отримання повного списку. Ця функціональність доступна в client-go і вимагає, щоб на сервері була ввімкнена функція WatchList. Якщо WatchList не підтримується на сервері, клієнт повернеться до стандартного запиту списку.
WindowsCPUAndMemoryAffinity
Додає підтримку спорідненості CPU та памʼяті до вузлів Windows за допомогою CPUManager, MemoryManager та менеджера топології.
WindowsGracefulNodeShutdown
Вмикає підтримку у kubelet підтримки належного завершення роботи вузла Windows. Під час вимкнення системи kubelet намагатиметься виявити подію вимкнення і належним чином завершити роботу podʼів, запущених на вузлі. Докладніші відомості наведено у статті Graceful Node Shutdown.
WindowsHostNetwork
Вмикає підтримку приєднання контейнерів Windows до мережевого простору імен хостів.
WinDSR
Дозволяє kube-proxy створювати DSR-балансувальники навантаження для Windows.
WinOverlay
Дозволяє kube-proxy працювати в режимі оверлею для Windows.
Коли увімкнено, якщо PodGroup не вдається запланувати, планувальник використовуватиме алгоритм випередження з урахуванням навантаження для вибору жертв для випередження замість стандартного алгоритму випередження Pod.
Починаючи з Kubernetes 1.24, нові бета-версії API стандартно не увімкнені. При увімкненні бета-версії вам також потрібно буде увімкнути всі повʼязані з цим API ресурси. Наприклад, щоб увімкнути певний ресурс, наприклад storage.k8s.io/v1beta1/csistoragecapacities, встановіть --runtime-config=storage.k8s.io/v1beta1/csistoragecapacities. Докладнішу інформацію про прапорці командного рядка наведено в Версіювання API.
Ця сторінка містить список функціональних можливостей воріт, які були видалені. Інформація на цій сторінці є довідковою. Вилучені функціональні можливості відрізняються від GA або застарілих тим, що вилучені функціональні можливості більше не розпізнається як дійсний функціональний елемент. Однак, GA'ed або застарілі функціональні ворота все ще розпізнаються відповідними компонентами Kubernetes, хоча вони не можуть спричинити жодних відмінностей у поведінці кластера.
У стовпчику "З" вказано реліз Kubernetes, у якому зʼявилася функція
або змінено стадію її випуску.
Стовпець "До", якщо він не порожній, містить останній випуск Kubernetes, у якому
ви все ще можете використовувати функціональні можливості. Якщо стадія функції "Deprecated"
або "GA", стовпець "До" вказує на випуск Kubernetes, з якого функцію було вилучено.
Feature Gates Removed
Властивість
Стандартно
Стадія
З
До
Accelerators
false
Alpha
1.6
1.10
Accelerators
–
Deprecated
1.11
1.11
AdmissionWebhookMatchConditions
false
Alpha
1.27
1.27
AdmissionWebhookMatchConditions
true
Beta
1.28
1.29
AdmissionWebhookMatchConditions
true
GA
1.30
1.32
AdvancedAuditing
false
Alpha
1.7
1.7
AdvancedAuditing
true
Beta
1.8
1.11
AdvancedAuditing
true
GA
1.12
1.27
AffinityInAnnotations
false
Alpha
1.6
1.7
AffinityInAnnotations
–
Deprecated
1.8
1.8
AggregatedDiscoveryEndpoint
false
Alpha
1.26
1.26
AggregatedDiscoveryEndpoint
true
Beta
1.27
1.29
AggregatedDiscoveryEndpoint
true
GA
1.30
1.32
AllowExtTrafficLocalEndpoints
false
Beta
1.4
1.6
AllowExtTrafficLocalEndpoints
true
GA
1.7
1.9
AllowInsecureBackendProxy
true
Beta
1.17
1.20
AllowInsecureBackendProxy
true
GA
1.21
1.25
AllowServiceLBStatusOnNonLB
false
Deprecated
1.29
1.34
APIListChunking
false
Alpha
1.8
1.8
APIListChunking
true
Beta
1.9
1.28
APIListChunking
true
GA
1.29
1.32
APIPriorityAndFairness
false
Alpha
1.18
1.19
APIPriorityAndFairness
true
Beta
1.20
1.28
APIPriorityAndFairness
true
GA
1.29
1.30
APISelfSubjectReview
false
Alpha
1.26
1.26
APISelfSubjectReview
true
Beta
1.27
1.27
APISelfSubjectReview
true
GA
1.28
1.29
AppArmor
true
Beta
1.4
1.30
AppArmor
true
GA
1.31
1.32
AppArmorFields
true
Beta
1.30
1.30
AppArmorFields
true
GA
1.31
1.32
AttachVolumeLimit
false
Alpha
1.11
1.11
AttachVolumeLimit
true
Beta
1.12
1.16
AttachVolumeLimit
true
GA
1.17
1.21
BalanceAttachedNodeVolumes
false
Alpha
1.11
1.21
BalanceAttachedNodeVolumes
false
Deprecated
1.22
1.22
BlockVolume
false
Alpha
1.9
1.12
BlockVolume
true
Beta
1.13
1.17
BlockVolume
true
GA
1.18
1.21
BoundServiceAccountTokenVolume
false
Alpha
1.13
1.20
BoundServiceAccountTokenVolume
true
Beta
1.21
1.21
BoundServiceAccountTokenVolume
true
GA
1.22
1.23
CloudDualStackNodeIPs
false
Alpha
1.27
1.28
CloudDualStackNodeIPs
true
Beta
1.29
1.29
CloudDualStackNodeIPs
true
GA
1.30
1.31
ComponentSLIs
false
Alpha
1.26
1.26
ComponentSLIs
true
Beta
1.27
1.31
ComponentSLIs
true
GA
1.32
1.34
ConfigurableFSGroupPolicy
false
Alpha
1.18
1.19
ConfigurableFSGroupPolicy
true
Beta
1.20
1.22
ConfigurableFSGroupPolicy
true
GA
1.23
1.25
ConsistentHTTPGetHandlers
true
GA
1.25
1.30
ControllerManagerLeaderMigration
false
Alpha
1.21
1.21
ControllerManagerLeaderMigration
true
Beta
1.22
1.23
ControllerManagerLeaderMigration
true
GA
1.24
1.26
CPUManager
false
Alpha
1.8
1.9
CPUManager
true
Beta
1.10
1.25
CPUManager
true
GA
1.26
1.32
CRIContainerLogRotation
false
Alpha
1.10
1.10
CRIContainerLogRotation
true
Beta
1.11
1.20
CRIContainerLogRotation
true
GA
1.21
1.22
CronJobControllerV2
false
Alpha
1.20
1.20
CronJobControllerV2
true
Beta
1.21
1.21
CronJobControllerV2
true
GA
1.22
1.23
CronJobTimeZone
false
Alpha
1.24
1.24
CronJobTimeZone
true
Beta
1.25
1.26
CronJobTimeZone
true
GA
1.27
1.28
CSIBlockVolume
false
Alpha
1.11
1.13
CSIBlockVolume
true
Beta
1.14
1.17
CSIBlockVolume
true
GA
1.18
1.21
CSIDriverRegistry
false
Alpha
1.12
1.13
CSIDriverRegistry
true
Beta
1.14
1.17
CSIDriverRegistry
true
GA
1.18
1.21
CSIInlineVolume
false
Alpha
1.15
1.15
CSIInlineVolume
true
Beta
1.16
1.24
CSIInlineVolume
true
GA
1.25
1.26
CSIMigration
false
Alpha
1.14
1.16
CSIMigration
true
Beta
1.17
1.24
CSIMigration
true
GA
1.25
1.26
CSIMigrationAWS
false
Alpha
1.14
1.16
CSIMigrationAWS
false
Beta
1.17
1.22
CSIMigrationAWS
true
Beta
1.23
1.24
CSIMigrationAWS
true
GA
1.25
1.26
CSIMigrationAWSComplete
false
Alpha
1.17
1.20
CSIMigrationAWSComplete
–
Deprecated
1.21
1.21
CSIMigrationAzureDisk
false
Alpha
1.15
1.18
CSIMigrationAzureDisk
false
Beta
1.19
1.22
CSIMigrationAzureDisk
true
Beta
1.23
1.23
CSIMigrationAzureDisk
true
GA
1.24
1.26
CSIMigrationAzureDiskComplete
false
Alpha
1.17
1.20
CSIMigrationAzureDiskComplete
–
Deprecated
1.21
1.21
CSIMigrationAzureFile
false
Alpha
1.15
1.20
CSIMigrationAzureFile
false
Beta
1.21
1.23
CSIMigrationAzureFile
true
Beta
1.24
1.25
CSIMigrationAzureFile
true
GA
1.26
1.29
CSIMigrationAzureFileComplete
false
Alpha
1.17
1.20
CSIMigrationAzureFileComplete
–
Deprecated
1.21
1.21
CSIMigrationGCE
false
Alpha
1.14
1.16
CSIMigrationGCE
false
Beta
1.17
1.22
CSIMigrationGCE
true
Beta
1.23
1.24
CSIMigrationGCE
true
GA
1.25
1.27
CSIMigrationGCEComplete
false
Alpha
1.17
1.20
CSIMigrationGCEComplete
–
Deprecated
1.21
1.21
CSIMigrationOpenStack
false
Alpha
1.14
1.17
CSIMigrationOpenStack
true
Beta
1.18
1.23
CSIMigrationOpenStack
true
GA
1.24
1.25
CSIMigrationOpenStackComplete
false
Alpha
1.17
1.20
CSIMigrationOpenStackComplete
–
Deprecated
1.21
1.21
CSIMigrationPortworx
false
Alpha
1.23
1.24
CSIMigrationPortworx
false
Beta
1.25
1.30
CSIMigrationPortworx
true
Beta
1.31
1.32
CSIMigrationPortworx
true
GA
1.33
1.35
CSIMigrationRBD
false
Alpha
1.23
1.27
CSIMigrationRBD
false
Deprecated
1.28
1.30
CSIMigrationvSphere
false
Alpha
1.18
1.18
CSIMigrationvSphere
false
Beta
1.19
1.24
CSIMigrationvSphere
true
Beta
1.25
1.25
CSIMigrationvSphere
true
GA
1.26
1.28
CSIMigrationvSphereComplete
false
Beta
1.19
1.21
CSIMigrationvSphereComplete
–
Deprecated
1.22
1.22
CSINodeExpandSecret
false
Alpha
1.25
1.26
CSINodeExpandSecret
true
Beta
1.27
1.28
CSINodeExpandSecret
true
GA
1.29
1.30
CSINodeInfo
false
Alpha
1.12
1.13
CSINodeInfo
true
Beta
1.14
1.16
CSINodeInfo
true
GA
1.17
1.22
CSIPersistentVolume
false
Alpha
1.9
1.9
CSIPersistentVolume
true
Beta
1.10
1.12
CSIPersistentVolume
true
GA
1.13
1.16
CSIServiceAccountToken
false
Alpha
1.20
1.20
CSIServiceAccountToken
true
Beta
1.21
1.21
CSIServiceAccountToken
true
GA
1.22
1.24
CSIStorageCapacity
false
Alpha
1.19
1.20
CSIStorageCapacity
true
Beta
1.21
1.23
CSIStorageCapacity
true
GA
1.24
1.27
CSIVolumeFSGroupPolicy
false
Alpha
1.19
1.19
CSIVolumeFSGroupPolicy
true
Beta
1.20
1.22
CSIVolumeFSGroupPolicy
true
GA
1.23
1.25
CSRDuration
true
Beta
1.22
1.23
CSRDuration
true
GA
1.24
1.25
CustomPodDNS
false
Alpha
1.9
1.9
CustomPodDNS
true
Beta
1.10
1.13
CustomPodDNS
true
GA
1.14
1.16
CustomResourceDefaulting
false
Alpha
1.15
1.15
CustomResourceDefaulting
true
Beta
1.16
1.16
CustomResourceDefaulting
true
GA
1.17
1.18
CustomResourcePublishOpenAPI
false
Alpha
1.14
1.14
CustomResourcePublishOpenAPI
true
Beta
1.15
1.15
CustomResourcePublishOpenAPI
true
GA
1.16
1.18
CustomResourceSubresources
false
Alpha
1.10
1.10
CustomResourceSubresources
true
Beta
1.11
1.15
CustomResourceSubresources
true
GA
1.16
1.18
CustomResourceValidation
false
Alpha
1.8
1.8
CustomResourceValidation
true
Beta
1.9
1.15
CustomResourceValidation
true
GA
1.16
1.18
CustomResourceValidationExpressions
false
Alpha
1.23
1.24
CustomResourceValidationExpressions
true
Beta
1.25
1.28
CustomResourceValidationExpressions
true
GA
1.29
1.30
CustomResourceWebhookConversion
false
Alpha
1.13
1.14
CustomResourceWebhookConversion
true
Beta
1.15
1.15
CustomResourceWebhookConversion
true
GA
1.16
1.18
DaemonSetUpdateSurge
false
Alpha
1.21
1.21
DaemonSetUpdateSurge
true
Beta
1.22
1.24
DaemonSetUpdateSurge
true
GA
1.25
1.26
DefaultHostNetworkHostPortsInPodTemplates
false
Deprecated
1.28
1.30
DefaultPodTopologySpread
false
Alpha
1.19
1.19
DefaultPodTopologySpread
true
Beta
1.20
1.23
DefaultPodTopologySpread
true
GA
1.24
1.25
DelegateFSGroupToCSIDriver
false
Alpha
1.22
1.22
DelegateFSGroupToCSIDriver
true
Beta
1.23
1.25
DelegateFSGroupToCSIDriver
true
GA
1.26
1.27
DevicePluginCDIDevices
false
Alpha
1.28
1.28
DevicePluginCDIDevices
true
Beta
1.29
1.30
DevicePluginCDIDevices
true
GA
1.31
1.33
DevicePlugins
false
Alpha
1.8
1.9
DevicePlugins
true
Beta
1.10
1.25
DevicePlugins
true
GA
1.26
1.27
DisableAcceleratorUsageMetrics
false
Alpha
1.19
1.19
DisableAcceleratorUsageMetrics
true
Beta
1.20
1.24
DisableAcceleratorUsageMetrics
true
GA
1.25
1.27
DisableCloudProviders
false
Alpha
1.22
1.28
DisableCloudProviders
true
Beta
1.29
1.30
DisableCloudProviders
true
GA
1.31
1.32
DisableKubeletCloudCredentialProviders
false
Alpha
1.23
1.28
DisableKubeletCloudCredentialProviders
true
Beta
1.29
1.30
DisableKubeletCloudCredentialProviders
true
GA
1.31
1.32
DownwardAPIHugePages
false
Alpha
1.20
1.20
DownwardAPIHugePages
false
Beta
1.21
1.21
DownwardAPIHugePages
true
Beta
1.22
1.26
DownwardAPIHugePages
true
GA
1.27
1.28
DRAControlPlaneController
false
Alpha
1.26
1.31
DryRun
false
Alpha
1.12
1.12
DryRun
true
Beta
1.13
1.18
DryRun
true
GA
1.19
1.27
DynamicAuditing
false
Alpha
1.13
1.18
DynamicAuditing
–
Deprecated
1.19
1.19
DynamicKubeletConfig
false
Alpha
1.4
1.10
DynamicKubeletConfig
true
Beta
1.11
1.21
DynamicKubeletConfig
false
Deprecated
1.22
1.25
DynamicProvisioningScheduling
false
Alpha
1.11
1.11
DynamicProvisioningScheduling
–
Deprecated
1.12
–
DynamicVolumeProvisioning
true
Alpha
1.3
1.7
DynamicVolumeProvisioning
true
GA
1.8
1.12
EfficientWatchResumption
false
Alpha
1.20
1.20
EfficientWatchResumption
true
Beta
1.21
1.23
EfficientWatchResumption
true
GA
1.24
1.32
EnableAggregatedDiscoveryTimeout
true
Deprecated
1.16
1.17
EnableEquivalenceClassCache
false
Alpha
1.8
1.12
EnableEquivalenceClassCache
–
Deprecated
1.13
1.23
EndpointSlice
false
Alpha
1.16
1.16
EndpointSlice
false
Beta
1.17
1.17
EndpointSlice
true
Beta
1.18
1.20
EndpointSlice
true
GA
1.21
1.24
EndpointSliceNodeName
false
Alpha
1.20
1.20
EndpointSliceNodeName
true
GA
1.21
1.24
EndpointSliceProxying
false
Alpha
1.18
1.18
EndpointSliceProxying
true
Beta
1.19
1.21
EndpointSliceProxying
true
GA
1.22
1.24
EndpointSliceTerminatingCondition
false
Alpha
1.20
1.21
EndpointSliceTerminatingCondition
true
Beta
1.22
1.25
EndpointSliceTerminatingCondition
true
GA
1.26
1.27
EphemeralContainers
false
Alpha
1.16
1.22
EphemeralContainers
true
Beta
1.23
1.24
EphemeralContainers
true
GA
1.25
1.26
EvenPodsSpread
false
Alpha
1.16
1.17
EvenPodsSpread
true
Beta
1.18
1.18
EvenPodsSpread
true
GA
1.19
1.21
ExpandCSIVolumes
false
Alpha
1.14
1.15
ExpandCSIVolumes
true
Beta
1.16
1.23
ExpandCSIVolumes
true
GA
1.24
1.26
ExpandedDNSConfig
false
Alpha
1.22
1.25
ExpandedDNSConfig
true
Beta
1.26
1.27
ExpandedDNSConfig
true
GA
1.28
1.29
ExpandInUsePersistentVolumes
false
Alpha
1.11
1.14
ExpandInUsePersistentVolumes
true
Beta
1.15
1.23
ExpandInUsePersistentVolumes
true
GA
1.24
1.26
ExpandPersistentVolumes
false
Alpha
1.8
1.10
ExpandPersistentVolumes
true
Beta
1.11
1.23
ExpandPersistentVolumes
true
GA
1.24
1.26
ExperimentalCriticalPodAnnotation
false
Alpha
1.5
1.12
ExperimentalCriticalPodAnnotation
false
Deprecated
1.13
1.16
ExperimentalHostUserNamespaceDefaulting
false
Beta
1.5
1.27
ExperimentalHostUserNamespaceDefaulting
false
Deprecated
1.28
1.29
ExternalPolicyForExternalIP
true
GA
1.18
1.22
GCERegionalPersistentDisk
true
Beta
1.10
1.12
GCERegionalPersistentDisk
true
GA
1.13
1.16
GenericEphemeralVolume
false
Alpha
1.19
1.20
GenericEphemeralVolume
true
Beta
1.21
1.22
GenericEphemeralVolume
true
GA
1.23
1.24
GRPCContainerProbe
false
Alpha
1.23
1.23
GRPCContainerProbe
true
Beta
1.24
1.26
GRPCContainerProbe
true
GA
1.27
1.28
HonorPVReclaimPolicy
false
Alpha
1.23
1.30
HonorPVReclaimPolicy
true
Beta
1.31
1.32
HonorPVReclaimPolicy
true
GA
1.33
1.35
HPAContainerMetrics
false
Alpha
1.20
1.26
HPAContainerMetrics
true
Beta
1.27
1.29
HPAContainerMetrics
true
GA
1.30
1.31
HugePages
false
Alpha
1.8
1.9
HugePages
true
Beta
1.10
1.13
HugePages
true
GA
1.14
1.16
HugePageStorageMediumSize
false
Alpha
1.18
1.18
HugePageStorageMediumSize
true
Beta
1.19
1.21
HugePageStorageMediumSize
true
GA
1.22
1.24
HyperVContainer
false
Alpha
1.10
1.19
HyperVContainer
false
Deprecated
1.20
1.20
IdentifyPodOS
false
Alpha
1.23
1.23
IdentifyPodOS
true
Beta
1.24
1.24
IdentifyPodOS
true
GA
1.25
1.26
ImmutableEphemeralVolumes
false
Alpha
1.18
1.18
ImmutableEphemeralVolumes
true
Beta
1.19
1.20
ImmutableEphemeralVolumes
true
GA
1.21
1.24
IndexedJob
false
Alpha
1.21
1.21
IndexedJob
true
Beta
1.22
1.23
IndexedJob
true
GA
1.24
1.25
IngressClassNamespacedParams
false
Alpha
1.21
1.21
IngressClassNamespacedParams
true
Beta
1.22
1.22
IngressClassNamespacedParams
true
GA
1.23
1.24
Initializers
false
Alpha
1.7
1.13
Initializers
–
Deprecated
1.14
1.14
InTreePluginAWSUnregister
false
Alpha
1.21
1.30
InTreePluginAzureDiskUnregister
false
Alpha
1.21
1.30
InTreePluginAzureFileUnregister
false
Alpha
1.21
1.30
InTreePluginGCEUnregister
false
Alpha
1.21
1.30
InTreePluginOpenStackUnregister
false
Alpha
1.21
1.30
InTreePluginPortworxUnregister
false
Alpha
1.23
1.35
InTreePluginRBDUnregister
false
Alpha
1.23
1.27
InTreePluginRBDUnregister
false
Deprecated
1.28
1.30
InTreePluginvSphereUnregister
false
Alpha
1.21
1.30
IPTablesOwnershipCleanup
false
Alpha
1.25
1.26
IPTablesOwnershipCleanup
true
Beta
1.27
1.27
IPTablesOwnershipCleanup
true
GA
1.28
1.29
IPv6DualStack
false
Alpha
1.15
1.20
IPv6DualStack
true
Beta
1.21
1.22
IPv6DualStack
true
GA
1.23
1.24
JobMutableNodeSchedulingDirectives
true
Beta
1.23
1.26
JobMutableNodeSchedulingDirectives
true
GA
1.27
1.28
JobPodFailurePolicy
false
Alpha
1.25
1.25
JobPodFailurePolicy
true
Beta
1.26
1.30
JobPodFailurePolicy
true
GA
1.31
1.32
JobReadyPods
false
Alpha
1.23
1.23
JobReadyPods
true
Beta
1.24
1.28
JobReadyPods
true
GA
1.29
1.30
JobTrackingWithFinalizers
false
Alpha
1.22
1.22
JobTrackingWithFinalizers
false
Beta
1.23
1.24
JobTrackingWithFinalizers
true
Beta
1.25
1.25
JobTrackingWithFinalizers
true
GA
1.26
1.28
KMSv2
false
Alpha
1.25
1.26
KMSv2
true
Beta
1.27
1.28
KMSv2
true
GA
1.29
1.31
KMSv2KDF
false
Beta
1.28
1.28
KMSv2KDF
true
GA
1.29
1.31
KubeletConfigFile
false
Alpha
1.8
1.9
KubeletConfigFile
–
Deprecated
1.10
1.10
KubeletCredentialProviders
false
Alpha
1.20
1.23
KubeletCredentialProviders
true
Beta
1.24
1.25
KubeletCredentialProviders
true
GA
1.26
1.28
KubeletPluginsWatcher
false
Alpha
1.11
1.11
KubeletPluginsWatcher
true
Beta
1.12
1.12
KubeletPluginsWatcher
true
GA
1.13
1.16
KubeletPodResources
false
Alpha
1.13
1.14
KubeletPodResources
true
Beta
1.15
1.27
KubeletPodResources
true
GA
1.28
1.29
KubeletPodResourcesGetAllocatable
false
Alpha
1.21
1.22
KubeletPodResourcesGetAllocatable
true
Beta
1.23
1.27
KubeletPodResourcesGetAllocatable
true
GA
1.28
1.29
KubeProxyDrainingTerminatingNodes
false
Alpha
1.28
1.30
KubeProxyDrainingTerminatingNodes
true
Beta
1.30
1.30
KubeProxyDrainingTerminatingNodes
true
GA
1.31
1.32
LegacyNodeRoleBehavior
false
Alpha
1.16
1.18
LegacyNodeRoleBehavior
true
Beta
1.19
1.20
LegacyNodeRoleBehavior
false
GA
1.21
1.22
LegacyServiceAccountTokenCleanUp
false
Alpha
1.28
1.28
LegacyServiceAccountTokenCleanUp
true
Beta
1.29
1.29
LegacyServiceAccountTokenCleanUp
true
GA
1.30
1.31
LegacyServiceAccountTokenNoAutoGeneration
true
Beta
1.24
1.25
LegacyServiceAccountTokenNoAutoGeneration
true
GA
1.26
1.28
LegacyServiceAccountTokenTracking
false
Alpha
1.26
1.26
LegacyServiceAccountTokenTracking
true
Beta
1.27
1.27
LegacyServiceAccountTokenTracking
true
GA
1.28
1.29
LoadBalancerIPMode
false
Alpha
1.29
1.30
LoadBalancerIPMode
true
Beta
1.30
1.31
LoadBalancerIPMode
true
GA
1.32
1.34
LocalStorageCapacityIsolation
false
Alpha
1.7
1.9
LocalStorageCapacityIsolation
true
Beta
1.10
1.24
LocalStorageCapacityIsolation
true
GA
1.25
1.26
MinDomainsInPodTopologySpread
false
Alpha
1.24
1.24
MinDomainsInPodTopologySpread
false
Beta
1.25
1.26
MinDomainsInPodTopologySpread
true
Beta
1.27
1.29
MinDomainsInPodTopologySpread
true
GA
1.30
1.31
MinimizeIPTablesRestore
false
Alpha
1.26
1.26
MinimizeIPTablesRestore
true
Beta
1.27
1.27
MinimizeIPTablesRestore
true
GA
1.28
1.29
MixedProtocolLBService
false
Alpha
1.20
1.23
MixedProtocolLBService
true
Beta
1.24
1.25
MixedProtocolLBService
true
GA
1.26
1.27
MountContainers
false
Alpha
1.9
1.16
MountContainers
false
Deprecated
1.17
1.17
MountPropagation
false
Alpha
1.8
1.9
MountPropagation
true
Beta
1.10
1.11
MountPropagation
true
GA
1.12
1.14
MultiCIDRRangeAllocator
false
Alpha
1.25
1.28
NamespaceDefaultLabelName
true
Beta
1.21
1.21
NamespaceDefaultLabelName
true
GA
1.22
1.23
NetworkPolicyEndPort
false
Alpha
1.21
1.21
NetworkPolicyEndPort
true
Beta
1.22
1.24
NetworkPolicyEndPort
true
GA
1.25
1.26
NetworkPolicyStatus
false
Alpha
1.24
1.27
NewVolumeManagerReconstruction
false
Alpha
1.25
1.26
NewVolumeManagerReconstruction
true
Beta
1.27
1.29
NewVolumeManagerReconstruction
true
GA
1.30
1.31
NodeDisruptionExclusion
false
Alpha
1.16
1.18
NodeDisruptionExclusion
true
Beta
1.19
1.20
NodeDisruptionExclusion
true
GA
1.21
1.22
NodeLease
false
Alpha
1.12
1.13
NodeLease
true
Beta
1.14
1.16
NodeLease
true
GA
1.17
1.23
NodeOutOfServiceVolumeDetach
false
Alpha
1.24
1.25
NodeOutOfServiceVolumeDetach
true
Beta
1.26
1.27
NodeOutOfServiceVolumeDetach
true
GA
1.28
1.31
NonPreemptingPriority
false
Alpha
1.15
1.18
NonPreemptingPriority
true
Beta
1.19
1.23
NonPreemptingPriority
true
GA
1.24
1.25
OpenAPIV3
false
Alpha
1.23
1.23
OpenAPIV3
true
Beta
1.24
1.26
OpenAPIV3
true
GA
1.27
1.28
PDBUnhealthyPodEvictionPolicy
false
Alpha
1.26
1.26
PDBUnhealthyPodEvictionPolicy
true
Beta
1.27
1.30
PDBUnhealthyPodEvictionPolicy
true
GA
1.31
1.32
PersistentLocalVolumes
false
Alpha
1.7
1.9
PersistentLocalVolumes
true
Beta
1.10
1.13
PersistentLocalVolumes
true
GA
1.14
1.16
PersistentVolumeLastPhaseTransitionTime
false
Alpha
1.28
1.28
PersistentVolumeLastPhaseTransitionTime
true
Beta
1.29
1.30
PersistentVolumeLastPhaseTransitionTime
true
GA
1.31
1.32
PodAffinityNamespaceSelector
false
Alpha
1.21
1.21
PodAffinityNamespaceSelector
true
Beta
1.22
1.23
PodAffinityNamespaceSelector
true
GA
1.24
1.25
PodDisruptionBudget
false
Alpha
1.3
1.4
PodDisruptionBudget
true
Beta
1.5
1.20
PodDisruptionBudget
true
GA
1.21
1.25
PodDisruptionConditions
false
Alpha
1.25
1.25
PodDisruptionConditions
true
Beta
1.26
1.30
PodDisruptionConditions
true
GA
1.31
1.33
PodHasNetworkCondition
false
Alpha
1.25
1.27
PodHostIPs
false
Alpha
1.28
1.28
PodHostIPs
true
Beta
1.29
1.30
PodHostIPs
true
GA
1.30
1.31
PodOverhead
false
Alpha
1.16
1.17
PodOverhead
true
Beta
1.18
1.23
PodOverhead
true
GA
1.24
1.25
PodPriority
false
Alpha
1.8
1.10
PodPriority
true
Beta
1.11
1.13
PodPriority
true
GA
1.14
1.18
PodReadinessGates
false
Alpha
1.11
1.11
PodReadinessGates
true
Beta
1.12
1.13
PodReadinessGates
true
GA
1.14
1.16
PodSecurity
false
Alpha
1.22
1.22
PodSecurity
true
Beta
1.23
1.24
PodSecurity
true
GA
1.25
1.27
PodShareProcessNamespace
false
Alpha
1.10
1.11
PodShareProcessNamespace
true
Beta
1.12
1.16
PodShareProcessNamespace
true
GA
1.17
1.19
PreferNominatedNode
false
Alpha
1.21
1.21
PreferNominatedNode
true
Beta
1.22
1.23
PreferNominatedNode
true
GA
1.24
1.25
ProbeTerminationGracePeriod
false
Alpha
1.21
1.21
ProbeTerminationGracePeriod
false
Beta
1.22
1.24
ProbeTerminationGracePeriod
true
Beta
1.25
1.27
ProbeTerminationGracePeriod
true
GA
1.28
1.28
ProxyTerminatingEndpoints
false
Alpha
1.22
1.25
ProxyTerminatingEndpoints
true
Beta
1.26
1.27
ProxyTerminatingEndpoints
true
GA
1.28
1.29
PVCProtection
false
Alpha
1.9
1.9
PVCProtection
–
Deprecated
1.10
1.10
ReadOnlyAPIDataVolumes
true
Beta
1.8
1.9
ReadOnlyAPIDataVolumes
–
GA
1.10
1.10
ReadWriteOncePod
false
Alpha
1.22
1.26
ReadWriteOncePod
true
Beta
1.27
1.28
ReadWriteOncePod
true
GA
1.29
1.30
RemainingItemCount
false
Alpha
1.15
1.15
RemainingItemCount
true
Beta
1.16
1.28
RemainingItemCount
true
GA
1.29
1.32
RemoveSelfLink
false
Alpha
1.16
1.19
RemoveSelfLink
true
Beta
1.20
1.23
RemoveSelfLink
true
GA
1.24
1.29
RequestManagement
false
Alpha
1.15
1.16
RequestManagement
–
Deprecated
1.17
1.17
ResourceLimitsPriorityFunction
false
Alpha
1.9
1.18
ResourceLimitsPriorityFunction
–
Deprecated
1.19
1.19
ResourceQuotaScopeSelectors
false
Alpha
1.11
1.11
ResourceQuotaScopeSelectors
true
Beta
1.12
1.16
ResourceQuotaScopeSelectors
true
GA
1.17
1.18
RetroactiveDefaultStorageClass
false
Alpha
1.25
1.25
RetroactiveDefaultStorageClass
true
Beta
1.26
1.27
RetroactiveDefaultStorageClass
true
GA
1.28
1.28
RootCAConfigMap
false
Alpha
1.13
1.19
RootCAConfigMap
true
Beta
1.20
1.20
RootCAConfigMap
true
GA
1.21
1.22
RotateKubeletClientCertificate
true
Beta
1.8
1.18
RotateKubeletClientCertificate
true
GA
1.19
1.21
RunAsGroup
true
Beta
1.14
1.20
RunAsGroup
true
GA
1.21
1.22
RuntimeClass
false
Alpha
1.12
1.13
RuntimeClass
true
Beta
1.14
1.19
RuntimeClass
true
GA
1.20
1.24
ScheduleDaemonSetPods
false
Alpha
1.11
1.11
ScheduleDaemonSetPods
true
Beta
1.12
1.16
ScheduleDaemonSetPods
true
GA
1.17
1.18
SCTPSupport
false
Alpha
1.12
1.18
SCTPSupport
true
Beta
1.19
1.19
SCTPSupport
true
GA
1.20
1.22
SeccompDefault
false
Alpha
1.22
1.24
SeccompDefault
true
Beta
1.25
1.26
SeccompDefault
true
GA
1.27
1.28
SecurityContextDeny
false
Alpha
1.27
1.29
SelectorIndex
false
Alpha
1.18
1.18
SelectorIndex
true
Beta
1.19
1.19
SelectorIndex
true
GA
1.20
1.25
ServerSideApply
false
Alpha
1.14
1.15
ServerSideApply
true
Beta
1.16
1.21
ServerSideApply
true
GA
1.22
1.31
ServerSideFieldValidation
false
Alpha
1.23
1.24
ServerSideFieldValidation
true
Beta
1.25
1.26
ServerSideFieldValidation
true
GA
1.27
1.31
ServiceAccountIssuerDiscovery
false
Alpha
1.18
1.19
ServiceAccountIssuerDiscovery
true
Beta
1.20
1.20
ServiceAccountIssuerDiscovery
true
GA
1.21
1.23
ServiceAppProtocol
false
Alpha
1.18
1.18
ServiceAppProtocol
true
Beta
1.19
1.19
ServiceAppProtocol
true
GA
1.20
1.22
ServiceInternalTrafficPolicy
false
Alpha
1.21
1.21
ServiceInternalTrafficPolicy
true
Beta
1.22
1.25
ServiceInternalTrafficPolicy
true
GA
1.26
1.27
ServiceIPStaticSubrange
false
Alpha
1.24
1.24
ServiceIPStaticSubrange
true
Beta
1.25
1.25
ServiceIPStaticSubrange
true
GA
1.26
1.27
ServiceLBNodePortControl
false
Alpha
1.20
1.21
ServiceLBNodePortControl
true
Beta
1.22
1.23
ServiceLBNodePortControl
true
GA
1.24
1.25
ServiceLoadBalancerClass
false
Alpha
1.21
1.21
ServiceLoadBalancerClass
true
Beta
1.22
1.23
ServiceLoadBalancerClass
true
GA
1.24
1.25
ServiceLoadBalancerFinalizer
false
Alpha
1.15
1.15
ServiceLoadBalancerFinalizer
true
Beta
1.16
1.16
ServiceLoadBalancerFinalizer
true
GA
1.17
1.20
ServiceNodeExclusion
false
Alpha
1.8
1.18
ServiceNodeExclusion
true
Beta
1.19
1.20
ServiceNodeExclusion
true
GA
1.21
1.22
ServiceNodePortStaticSubrange
false
Alpha
1.27
1.27
ServiceNodePortStaticSubrange
true
Beta
1.28
1.28
ServiceNodePortStaticSubrange
true
GA
1.29
1.30
ServiceTopology
false
Alpha
1.17
1.19
ServiceTopology
false
Deprecated
1.20
1.22
SetHostnameAsFQDN
false
Alpha
1.19
1.19
SetHostnameAsFQDN
true
Beta
1.20
1.21
SetHostnameAsFQDN
true
GA
1.22
1.24
SizeMemoryBackedVolumes
false
Alpha
1.20
1.21
SizeMemoryBackedVolumes
true
Beta
1.22
1.31
SizeMemoryBackedVolumes
true
GA
1.32
1.34
SkipReadOnlyValidationGCE
false
Alpha
1.28
1.28
SkipReadOnlyValidationGCE
true
Deprecated
1.29
1.30
StableLoadBalancerNodeSet
true
Beta
1.27
1.29
StableLoadBalancerNodeSet
true
GA
1.30
1.31
StartupProbe
false
Alpha
1.16
1.17
StartupProbe
true
Beta
1.18
1.19
StartupProbe
true
GA
1.20
1.23
StatefulSetMinReadySeconds
false
Alpha
1.22
1.22
StatefulSetMinReadySeconds
true
Beta
1.23
1.24
StatefulSetMinReadySeconds
true
GA
1.25
1.26
StorageObjectInUseProtection
true
Beta
1.10
1.10
StorageObjectInUseProtection
true
GA
1.11
1.24
StreamingProxyRedirects
false
Beta
1.5
1.5
StreamingProxyRedirects
true
Beta
1.6
1.17
StreamingProxyRedirects
true
Deprecated
1.18
1.21
StreamingProxyRedirects
false
Deprecated
1.22
1.24
SupportIPVSProxyMode
false
Alpha
1.8
1.8
SupportIPVSProxyMode
false
Beta
1.9
1.9
SupportIPVSProxyMode
true
Beta
1.10
1.10
SupportIPVSProxyMode
true
GA
1.11
1.20
SupportNodePidsLimit
false
Alpha
1.14
1.14
SupportNodePidsLimit
true
Beta
1.15
1.19
SupportNodePidsLimit
true
GA
1.20
1.23
SupportPodPidsLimit
false
Alpha
1.10
1.13
SupportPodPidsLimit
true
Beta
1.14
1.19
SupportPodPidsLimit
true
GA
1.20
1.23
SuspendJob
false
Alpha
1.21
1.21
SuspendJob
true
Beta
1.22
1.23
SuspendJob
true
GA
1.24
1.25
Sysctls
true
Beta
1.11
1.20
Sysctls
true
GA
1.21
1.22
TaintBasedEvictions
false
Alpha
1.6
1.12
TaintBasedEvictions
true
Beta
1.13
1.17
TaintBasedEvictions
true
GA
1.18
1.20
TaintNodesByCondition
false
Alpha
1.8
1.11
TaintNodesByCondition
true
Beta
1.12
1.16
TaintNodesByCondition
true
GA
1.17
1.18
TokenRequest
false
Alpha
1.10
1.11
TokenRequest
true
Beta
1.12
1.19
TokenRequest
true
GA
1.20
1.21
TokenRequestProjection
false
Alpha
1.11
1.11
TokenRequestProjection
true
Beta
1.12
1.19
TokenRequestProjection
true
GA
1.20
1.21
TopologyManager
false
Alpha
1.16
1.17
TopologyManager
true
Beta
1.18
1.26
TopologyManager
true
GA
1.27
1.28
TTLAfterFinished
false
Alpha
1.12
1.20
TTLAfterFinished
true
Beta
1.21
1.22
TTLAfterFinished
true
GA
1.23
1.24
UserNamespacesPodSecurityStandards
false
Alpha
1.29
1.34
UserNamespacesStatelessPodsSupport
false
Alpha
1.25
1.27
ValidateProxyRedirects
false
Alpha
1.12
1.13
ValidateProxyRedirects
true
Beta
1.14
1.21
ValidateProxyRedirects
true
Deprecated
1.22
1.24
ValidatingAdmissionPolicy
false
Alpha
1.26
1.27
ValidatingAdmissionPolicy
false
Beta
1.28
1.29
ValidatingAdmissionPolicy
true
GA
1.30
1.31
VolumeCapacityPriority
false
Alpha
1.21
1.32
VolumePVCDataSource
false
Alpha
1.15
1.15
VolumePVCDataSource
true
Beta
1.16
1.17
VolumePVCDataSource
true
GA
1.18
1.21
VolumeScheduling
false
Alpha
1.9
1.9
VolumeScheduling
true
Beta
1.10
1.12
VolumeScheduling
true
GA
1.13
1.16
VolumeSnapshotDataSource
false
Alpha
1.12
1.16
VolumeSnapshotDataSource
true
Beta
1.17
1.19
VolumeSnapshotDataSource
true
GA
1.20
1.22
VolumeSubpath
true
GA
1.10
1.24
VolumeSubpathEnvExpansion
false
Alpha
1.14
1.14
VolumeSubpathEnvExpansion
true
Beta
1.15
1.16
VolumeSubpathEnvExpansion
true
GA
1.17
1.24
WarningHeaders
true
Beta
1.19
1.21
WarningHeaders
true
GA
1.22
1.24
WatchBookmark
false
Alpha
1.15
1.15
WatchBookmark
true
Beta
1.16
1.16
WatchBookmark
true
GA
1.17
1.32
WindowsEndpointSliceProxying
false
Alpha
1.19
1.20
WindowsEndpointSliceProxying
true
Beta
1.21
1.21
WindowsEndpointSliceProxying
true
GA
1.22
1.24
WindowsGMSA
false
Alpha
1.14
1.15
WindowsGMSA
true
Beta
1.16
1.17
WindowsGMSA
true
GA
1.18
1.18
WindowsHostProcessContainers
false
Alpha
1.22
1.22
WindowsHostProcessContainers
true
Beta
1.23
1.25
WindowsHostProcessContainers
true
GA
1.26
1.27
WindowsRunAsUserName
false
Alpha
1.16
1.16
WindowsRunAsUserName
true
Beta
1.17
1.17
WindowsRunAsUserName
true
GA
1.18
1.20
ZeroLimitedNominalConcurrencyShares
false
Beta
1.29
1.29
ZeroLimitedNominalConcurrencyShares
true
GA
1.30
1.31
Опис вилучених функціональних можливостей
Accelerators
Надавав ранню форму втулка для ввімкнення підтримки графічного процесора Nvidia під час використання Docker Engine; більше не доступний. Див. Втулки пристроїв для альтернатив.
AdmissionWebhookMatchConditions
Вмикає умови збігу для модифікації та перевірки вебхуків допуску.
Вмикає єдину точку доступу до HTTP /discovery/<version>, яка підтримує власне кешування HTTP за допомогою теґів, що містять усі відомі APIResources на сервері API.
AllowExtTrafficLocalEndpoints
Вмикає сервіс для маршрутизації зовнішніх запитів до локальних точок доступу вузла.
AllowInsecureBackendProxy
Дозволяє користувачам пропускати перевірку TLS для kubelet на запитах до логів Pod.
AllowServiceLBStatusOnNonLB
Дозволяє встановлювати .status.ingress.loadBalancer для сервісів типів, відмінних від LoadBalancer.
APIListChunking
Дозволяє клієнтам API отримувати (LIST або GET) ресурси з сервера API частинами.
APIPriorityAndFairness
Дозволяє керувати паралельністю запитів за допомоги приорітезації та справедливості на кожному сервері. (Перейменовано з RequestManagement)
Вмикає використання примусового контролю доступу AppArmor для Podʼів, що працюють на вузлах Linux. Докладнішу інформацію наведено у Посібнику з AppArmor.
AppArmorFields
Вмикає параметри контексту безпеки, повʼязані з AppArmor.
Вмикає втулки томів, щоб повідомляти про обмеження на кількість томів які може бути приєднано до вузла. Див. розділ динамічні обмеження тому для детальнішої інформації.
BalanceAttachedNodeVolumes
Включити підрахунок volume на вузлі, який слід враховувати для збалансованого розподілу ресурсів при плануванні. Вузлу, який має ближче завантаження процесора, завантаження памʼяті та кількість томів, віддається перевага при прийнятті рішень планувальником.
BlockVolume
Увімкніть визначення та споживання необроблених блокових пристроїв у Podʼах. Див. статтю Підтримка необроблених блокових томів для більш детальної інформації.
BoundServiceAccountTokenVolume
Переносить томи ServiceAccount для використання спроєцьованого тому, що складається з ServiceAccountTokenVolumeProjection. Адміністратори кластера можуть використовувати метрику serviceaccount_stale_tokens_total для моніторингу робочих навантажень, які залежать від розширених токенів. Якщо таких навантажень немає, вимкніть розширені токени, запустивши kube-apiserver з прапорцем --service-account-extend-token-expiration=false.
Вмикає двостековий kubelet --node-ip із зовнішніми хмарними провайдерами. Див. статтю Налаштування подвійного стека IPv4/IPv6 для більш детальної інформації.
ComponentSLIs
Вмикає точку доступу /metrics/slis на таких компонентах Kubernetes як kubelet, kube-scheduler, kube-proxy, kube-controller-manager, cloud-controller-manager що дозволяє вам отримувати метрики перевірки працездатності.
Нормалізувати передачу URL-адреси та заголовка HTTP-запиту для життєвого циклу обробників з пробами.
ControllerManagerLeaderMigration
Вмикає міграцію лідерів для kube-controller-manager та cloud-controller-manager що дозволяє оператору кластера в реальному часі мігрувати контролери з kube-controller-manager у зовнішній контролер-менеджер (наприклад, cloud-controller-manager) у кластері HA без простоїв.
Вмикає ротацію логів контейнера для середовища виконання контейнерів CRI. Стандартний максимальний розмір файлу логу становить 10 МБ, а максимальна кількість файлів логу для контейнера — 5. Ці значення можна налаштувати у конфігурації kubelet. Див. статтю ведення логів на рівні вузла для більш детальної інформації.
CronJobControllerV2
Використовуйте альтернативну реалізацію контролера CronJob. В іншому випадку буде обрано версію 1 цього ж контролера.
CronJobTimeZone
Дозволити використання необовʼязкового поля timeZone у CronJobs
CSIBlockVolume
Вмикає підтримку блочного сховища зовнішніми драйверами томів CSI. Див. статтю Підтримка CSI для блочних томів для детальнішої інформації.
CSIDriverRegistry
Вмикає всю логіку, повʼязану з обʼєктом CSIDriver API в csi.storage.k8s.io.
CSIInlineVolume
Увімкніть підтримку томів CSI Inline для Podʼів.
CSIMigration
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка до втулка CSI.
CSIMigrationAWS
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка AWS-EBS до втулка EBS CSI. Підтримує відновлення до втулка EBS для операцій монтування на вузлах, на яких функція вимкнена або на яких втулок EBS CSI не встановлено та не налаштовано. Не підтримує відновлення для операцій надання, для них втулок CSI повинен бути встановлений та налаштований.
CSIMigrationAWSComplete
Припиняє реєстрування вбудованих втулків EBS в kubelet та контролерах томів та вмикає shimʼи та логіку перекладу для маршрутизації операцій з томами від вбудованого втулка EBS AWS до втулка EBS CSI. Вимагає ввімкнених прапорців CSIMigration та CSIMigrationAWS та встановленого та налаштованого втулка EBS CSI на всіх вузлах кластера. Цей прапорець було відзначено як застарілий на користь прапорця InTreePluginAWSUnregister, який перешкоджає реєстрації вбудованого втулка EBS.
CSIMigrationAzureDisk
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка Azure-Disk до втулка AzureDisk CSI. Підтримує відновлення до втулка AzureDisk для операцій монтування на вузлах, на яких функція вимкнена або на яких втулок AzureDisk CSI не встановлено та не налаштовано. Не підтримує відновлення для операцій надання, для них втулок CSI повинен бути встановлений та налаштований. Вимагає увімкнення прапорця функції CSIMigration.
CSIMigrationAzureDiskComplete
Припиняє реєстрування вбудованих втулків Azure-Disk в kubelet та контролерах томів та вмикає shimʼи та логіку перекладу для маршрутизації операцій з томами від вбудованого втулка Azure-Disk до втулка AzureDisk CSI. Вимагає ввімкнених прапорців CSIMigration та CSIMigrationAzureDisk та встановленого та налаштованого втулка AzureDisk CSI на всіх вузлах кластера. Цей прапорець було відзначено як застарілий на користь прапорця InTreePluginAzureDiskUnregister, який перешкоджає реєстрації вбудованого втулка AzureDisk.
CSIMigrationAzureFile
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка Azure-File до втулка AzureFile CSI. Підтримує відновлення до втулка AzureFile для операцій монтування на вузлах, на яких функція вимкнена або на яких втулок AzureFile CSI не встановлено та не налаштовано. Не підтримує відновлення для операцій надання, для них втулок CSI повинен бути встановлений та налаштований. Вимагає увімкнення прапорця функції CSIMigration.
CSIMigrationAzureFileComplete
Припиняє реєстрування вбудованих втулків Azure-File в kubelet та контролерах томів та вмикає shimʼи та логіку перекладу для маршрутизації операцій з томами від вбудованого втулка Azure-File до втулка AzureFile CSI. Вимагає ввімкнених прапорців CSIMigration та CSIMigrationAzureFile та встановленого та налаштованого втулка AzureFile CSI на всіх вузлах кластера. Цей прапорець було відзначено як застарілий на користь прапорця InTreePluginAzureFileUnregister, який перешкоджає реєстрації вбудованого втулка AzureFile.
CSIMigrationGCE
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка GCE-PD до втулка PD CSI. Підтримує відновлення до втулка PD для операцій монтування на вузлах, на яких функція вимкнена або на яких втулок PD CSI не встановлено та не налаштовано. Не підтримує відновлення для операцій надання, для них втулок CSI повинен бути встановлений та налаштований. Вимагає увімкнення прапорця функції CSIMigration.
CSIMigrationGCEComplete
Припиняє реєстрування вбудованих втулків GCE-PD в kubelet та контролерах томів та вмикає shimʼи та логіку перекладу для маршрутизації операцій з томами від вбудованого втулка GCE-PD до втулка GCE-PD CSI. Вимагає ввімкнених прапорців CSIMigration та CSIMigrationGCE та встановленого та налаштованого втулка GCE-PD CSI на всіх вузлах кластера. Цей прапорець було відзначено як застарілий на користь прапорця InTreePluginGCEUnregister, який перешкоджає реєстрації вбудованого втулка GCE-PD.
CSIMigrationOpenStack
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка Cinder до втулка Cinder CSI. Підтримує відновлення до втулка Cinder для операцій монтування на вузлах, на яких функція вимкнена або на яких втулок Cinder CSI не встановлено та не налаштовано. Не підтримує відновлення для операцій надання, для них втулок CSI повинен бути встановлений та налаштований. Вимагає увімкнення прапорця функції CSIMigration.
CSIMigrationOpenStackComplete
Припиняє реєстрування вбудованих втулків Cinder в kubelet та контролерах томів та вмикає shimʼи та логіку перекладу для маршрутизації операцій з томами від вбудованого втулка Cinder до втулка Cinder CSI. Вимагає ввімкнених прапорців CSIMigration та CSIMigrationOpenStack та встановленого та налаштованого втулка Cinder CSI на всіх вузлах кластера. Цей прапорець було відзначено як застарілий на користь прапорця InTreePluginOpenStackUnregister, який перешкоджає реєстрації вбудованого втулка Cinder OpenStack.
CSIMigrationPortworx
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка Portworx до втулка Portworx CSI. Вимагає встановлення та налаштування втулка Portworx CSI в кластері.
CSIMigrationRBD
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка RBD до втулка Ceph RBD CSI. Вимагає увімкнення функціональної можливості CSIMigration та встановлення та налаштування втулка Ceph CSI в кластері.
Цю функціональну можливість було відзначено як застарілу на користь функціональної можливості InTreePluginRBDUnregister, який запобігає реєстрації вбудованого втулка RBD.
CSIMigrationvSphere
Вмикає shimʼи та логіку передачі для маршрутизації операцій тому з вбудованого втулка vSphere до втулка vSphere CSI. Підтримує відновлення до втулка vSphere для операцій монтування на вузлах, на яких функція вимкнена або на яких втулок vSphere CSI не встановлено та не налаштовано. Не підтримує відновлення для операцій надання, для них втулок CSI повинен бути встановлений та налаштований. Вимагає увімкнення прапорця функції CSIMigration.
CSIMigrationvSphereComplete
Припиняє реєстрацію вбудованого втулка vSphere в kubelet та контролерах томів та вмикає shimʼи та логіку перекладу для маршрутизації операцій з томами від вбудованого втулка vSphere до втулка vSphere CSI. Вимагає ввімкнених прапорців CSIMigration та CSIMigrationvSphere та встановленого та налаштованого втулка vSphere CSI на всіх вузлах кластера. Цей прапорець було відзначено як застарілий на користь прапорця InTreePluginvSphereUnregister, який перешкоджає реєстрації вбудованого втулка vSphere.
CSINodeExpandSecret
Вмикає передачу секретних даних автентифікації до втулка CSI для використання під час операції NodeExpandVolume CSI.
CSINodeInfo
Вмикає всю логіку, повʼязану з обʼєктом API CSINodeInfo в csi.storage.k8s.io.
Дозволяє CSI-драйверам отримувати токен службового облікового запису для Podʼів, для яких вони монтували томи. Див.
Запити токенів.
CSIStorageCapacity
Вмикає втулок CSI для публікації інформації про обсяг сховища та використання цієї інформації планувальником Kubernetes під час планування Podʼів. Див. Обсяг сховища. Для отримання додаткових відомостей див. документацію про типи томів csi.
CSIVolumeFSGroupPolicy
Дозволяє CSIDrivers використовувати поле fsGroupPolicy. Це поле керує тим, чи підтримують томи, створені CSIDriver, власність томів та зміни дозволів, коли ці томи монтуються.
CSRDuration
Дозволяє клієнтам запитувати час дії для сертифікатів, виданих через Kubernetes CSR API.
CustomPodDNS
Дозволяє змінювати налаштування DNS для Pod за допомогою властивості dnsConfig. Для отримання додаткової інформації див. DNS-налаштування Pod.
CustomResourceDefaulting
Вмикає підтримку CRD для стандартних значень в схемах перевірки OpenAPI v3.
Вмикає перевірку мови виразів у CRD, яка буде перевіряти власний ресурс клієнта на основі правил валідації, написаних у розширенні x-kubernetes-validations.
Ця функціональна можливість керує моментом, коли стандартне значення для .spec.containers[*].ports[*].hostPort назначається для Podʼів, які використовують hostNetwork: true. Типовим з версії Kubernetes v1.28 є те, що стандартне значення встановлюється лише для Podʼів.
Вмикаючи цю функціональну можливість, стандартне значення буде назначено навіть для .spec вбудованого PodTemplate (наприклад, у Deployment), що є способом, яким працювали старі версії Kubernetes. Вам слід мігрувати свій код так, щоб він не залежав від старої поведінки.
DefaultPodTopologySpread
Дозволяє використовувати втулок планування PodTopologySpread для виконання стандартного розподілу.
DelegateFSGroupToCSIDriver
Якщо підтримується драйвером CSI, делегує роль застосовуючи fsGroup з securityContext Pod до драйвера, передаючи fsGroup через виклики CSI NodeStageVolume та NodePublishVolume.
DevicePluginCDIDevices
Вмикає підтримку ідентифікаторів пристроїв CDI в API Device Plugin.
DevicePlugins
Вмикає device-plugins
на основі виділення ресурсів на вузлах.
Увімкнення цієї функції деактивувало функціонал у kube-apiserver, kube-controller-manager і kubelet, які повʼязані з параметром --cloud-provider аргументу командного рядка.
У Kubernetes v1.31 і новіших версіях єдиними допустимими значеннями для --cloud-provider є порожній рядок (без інтеграції з хмарним провайдером) або "external" (інтеграція через окремий cloud-controller-manager).
DisableKubeletCloudCredentialProviders
Увімкнення функціональної можливості деактивувало застарілу функціональність вбудовану в kubelet, що дозволяла kubelet автентифікуватися в реєстрі контейнерів хмарного провайдера для отримання образів контейнерів.
DownwardAPIHugePages
Вмикає використання великих сторінок (hugepages) у downward API.
DRAControlPlaneController
Дозволяє підтримувати ресурси з власними параметрами та життєвим циклом, який не залежить від Pod. Розподілом ресурсів займається контролер панелі управління драйвера ресурсу.
DryRun
Вмикає запити dry rin на боці сервера, щоб можна було тестувати валідацію, злиття та мутацію без впровадження змін.
DynamicAuditing
Використовувалося для увімкнення динамічного аудиту до версії 1.19.
DynamicKubeletConfig
Вмикає динамічну конфігурацію kubelet. Функція більше не підтримується за межами підтримуваної політики відхилення. Функціональну можливість було вилучено з kubelet у версії 1.24.
DynamicProvisioningScheduling
Розширює стандартний планувальник, щоб врахувати топологію тома і обробляти виділення PV. Цю функцію було замінено функцією VolumeScheduling у версії 1.12.
Дозволяє надсилати користувачам події закладок (сповіщення про хід виконання), що походять зі сховища. Застосовується лише до операцій спостереження.
EnableAggregatedDiscoveryTimeout
Вмикає пʼятисекундний тайм-аут для агрегованих викликів виявлення.
EnableEquivalenceClassCache
Дозволяє планувальнику кешувати еквівалентність вузлів при плануванні Podʼів.
EndpointSlice
Вмикає EndpointSlices для більш масштабованих і розширюваних мережевих точок доступу. Див. статтю Увімкнення EndpointSlices.
EndpointSliceNodeName
Вмикає поле EndpointSlice nodeName.
EndpointSliceProxying
Якщо цю опцію увімкнено, kube-proxy на Linux використовуватиме EndpointSlices як основне джерело даних замість точок доступу, що дає змогу підвищити масштабованість і продуктивність. Див. статтю Увімкнення Endpoint Slices.
EndpointSliceTerminatingCondition
Вмикає поля умов terminating та serving EndpointSlice.
Дозволяє використовувати kubelet і kube-apiserver, щоб отримати більше шляхів пошуку DNS і довший список шляхів пошуку DNS. Ця функція потребує підтримки середовища виконання контейнерів (Containerd: v1.5.6 або новішої версії, CRI-O: v1.22 або новішої версії). Див. статтю Розширена конфігурація DNS.
Увімкнути позначення певних Podʼів як критичних, щоб гарантувати їх планування. Ця функція застаріла внаслідок використання пріоритетів та випередження для Podʼів, починаючи з версії 1.13.
ExperimentalHostUserNamespaceDefaulting
Дозволяє встановлення стандартного простору імен для хосту. Призначено для контейнерів, які використовують інші простори імен хосту, монтування хосту або контейнери, які мають привілеї або використовують конкретні не іменовані можливості (наприклад, MKNODE, SYS_MODULE і т. д.). Слід вмикати лише у випадку, якщо перепризначення (remapping) просторів імен користувача увімкнено в демоні Docker.
ExternalPolicyForExternalIP
Виправляє помилку, коли ExternalTrafficPolicy не застосовується до Service ExternalIPs.
GCERegionalPersistentDisk
Увімкніть регіональну функцію PD у GCE.
GenericEphemeralVolume
Дозволяє створювати ефемерні, вбудовані томи, які підтримують усі функції звичайних томів (можуть надаватися сторонніми постачальниками сховищ, відстеження ємності сховища, відновлення зі знімка тощо). Див. статтю Ефемерні томи.
Дотримуватися політики відновлення постійного тому, коли він має значення Delete, незалежно від впорядкування видалення PV-PVC. Докладніші відомості наведено у документації Завершувач захисту від видалення постійних томів.
HPAContainerMetrics
Дозволяє HorizontalPodAutoscalers виконувати масштабування на основі метрик з окремих контейнерів у межах цільових Podʼів.
HugePages
Увімкніть виділення та використання попередньо виділених величезних сторінок.
HugePageStorageMediumSize
Увімкніть підтримку декількох розмірів попередньо виділених величезних сторінок.
Дозволяє вказати поле Pod OS. Це допомагає достовірно ідентифікувати операційну систему під час допуску до сервера API.
ImmutableEphemeralVolumes
Дозволяє позначати окремі Secrets та ConfigMaps як незмінні для кращої безпеки та продуктивності.
IndexedJob
Дозволяє контролеру Job керувати завершенням Pod за індексом завершення.
IngressClassNamespacedParams
Дозволяє посилатися на параметри в межах простору імен у ресурсі IngressClass. Ця можливість додає два поля — Scope та Namespace до IngressClass.spec.parameters.
Initializers
Дозволяє асинхронно координувати створення обʼєктів за допомогою втулка допуску Initializers.
InTreePluginAWSUnregister
Припиняє реєстрацію вбудованого втулка aws-ebs у kubelet та контролерах томів.
InTreePluginAzureDiskUnregister
Припиняє реєстрацію вбудованого втулка azuredisk у kubelet та контролерах томів.
InTreePluginAzureFileUnregister
Припиняє реєстрацію вбудованого втулка azurefile у kubelet та контролерах томів.
InTreePluginGCEUnregister
Припиняє реєстрацію вбудованого втулка gce-pd у kubelet та контролерах томів.
InTreePluginOpenStackUnregister
Припиняє реєстрацію вбудованого втулка OpenStack cinder у kubelet та контролерах томів.
InTreePluginPortworxUnregister
Припиняє реєстрацію вбудованого втулка Portworx у kubelet та контролерах томів.
InTreePluginRBDUnregister
Припиняє реєстрацію вбудованого втулка RBD у kubelet та контролерах томів.
InTreePluginvSphereUnregister
Припиняє реєстрацію вбудованого втулка vSphere у kubelet та контролерах томів.
IPTablesOwnershipCleanup
Це призводить до того, що kubelet більше не створює застарілі правила iptables.
Дозволяє оновити директиви планування вузлів у шаблоні pod Job.
JobPodFailurePolicy
Дозволяє користувачам визначати обробку несправностей контейнерів на основі кодів виходу з контейнера та стану контейнерів.
JobReadyPods
Дозволяє відстежувати кількість Podʼів, які мають станReady. Кількість Ready Podʼів записується у statusJob.
JobTrackingWithFinalizers
Дозволяє відстежувати завершення Job, не покладаючись на те, що Pods залишаться в кластері на невизначений час. Контролер Job використовує завершувачі Pod і поле у статусі Job для відстеження завершених Podʼів, щоб зарахувати їх до списку завершених.
Дозволяє KMS v2 генерувати одноразові ключі шифрування даних. Докладні відомості наведено у статті Використання постачальника KMS для шифрування даних. Якщо у вашому кластері не увімкнено елемент KMSv2, значення елемента KMSv2KDF не матиме жодного впливу.
Вмикає функцію GetAllocatableResources для ресурсів pod у kubelet. Цей API доповнює звіт про розподіл ресурсів
KubeProxyDrainingTerminatingNodes
Реалізація очищення зʼєднань для термінальних вузлів для сервісів externalTrafficPolicy: Cluster.
LegacyNodeRoleBehavior
Якщо вимкнено, застаріла поведінка балансувальників навантаження сервісів та вимкнення вузлів ігноруватиме мітку node-role.kubernetes.io/master на користь специфічних міток, що надаються мітками NodeDisruptionExclusion та ServiceNodeExclusion.
LegacyServiceAccountTokenCleanUp
Вмикає очищення токенів службових облікових записів, що базуються на Secret, коли вони не використовуються протягом певного часу (стандартно — один рік).
Вмикає нову логіку покращення продуктивності в режимі kube-proxy iptables.
MixedProtocolLBService
Вмикає використання різних протоколів в одному екземплярі Service типу LoadBalancer.
MountContainers
Вмикає використання контейнерів утиліт на хості як монтувальника томів.
MountPropagation
Дозволяє надавати спільний доступ до тому, змонтованого одним контейнером, іншим контейнерам або Podʼам. Докладніші відомості наведено у статті поширення монтування.
MultiCIDRRangeAllocator
Вмикає розподільник діапазону MultiCIDR.
NamespaceDefaultLabelName
Налаштуйте API Server на встановлення незмінної міткиkubernetes.io/metadata.name у всіх просторах назв, що містить назву простору назв.
NetworkPolicyEndPort
Дозволяє визначити порти у правилі NetworkPolicy як діапазон номерів портів.
NetworkPolicyStatus
Вмикає субресурс status для обʼєктів NetworkPolicy.
NewVolumeManagerReconstruction
Дозволяє покращити виявлення змонтованих томів під час запуску kubelet. Оскільки відповідний код було суттєво перероблено, у версіях Kubernetes від 1.25 до 1.29 можна було вимкнути цю функцію у випадку, якщо kubelet застряг під час запуску або не розмонтував томи з завершених Podʼів.
Цей рефакторинг лежав в основі функції SELinuxMountReadWriteOncePod у версіях Kubernetes 1.25 та 1.26.
NodeDisruptionExclusion
Дозволяє використовувати мітку вузла node.kubernetes.io/exclude-disruption, яка запобігає евакуації вузлів під час збоїв у зоні.
NodeLease
Увімкніть новий Lease API для звітування про пульс вузла, який може бути використаний як сигнал про стан вузла.
NodeOutOfServiceVolumeDetach
Коли вузол позначено як такий, що не працює, за допомогою taint node.kubernetes.io/out-of-service, то Podʼи на цьому вузлі будуть примусово видалені, якщо вони не можуть толерувати цю позначку, а операції відʼєднання томів для Podʼів, що завершують роботу на цьому вузлі, будуть виконані негайно. Видалені Podʼи можуть бути швидко відновлені на інших вузлах.
NonPreemptingPriority
Вмикає поле preemptionPolicy для PriorityClass та Pod.
OpenAPIV3
Дозволяє серверу API публікувати OpenAPI v3.
PDBUnhealthyPodEvictionPolicy
Вмикає поле unhealthyPodEvictionPolicy в полі PodDisruptionBudget. Визначає, коли слід розглядати можливість виселення несправних Podʼів. Будь ласка, дивіться Політику виселення несправних Podʼів для більш детальної інформації.
PersistentLocalVolumes
Вмикає використання типу тому local у Podʼах. Якщо запитується local том, необхідно вказати спорідненість тому до Podʼів.
PersistentVolumeLastPhaseTransitionTime
Додає нове поле до PersistentVolume, яке містить мітку часу, коли том востаннє змінював свою фазу.
Вмикає підтримку додавання спеціальної умови, яка вказує на те, що Pod видаляється через збій.
PodHasNetworkCondition
Дозволити kubelet позначати стан PodHasNetwork для контейнерів. Його було перейменовано на PodReadyToStartContainersCondition у версії 1.28.
PodHostIPs
Вмикає поле status.hostIPs для Podʼів та downward API. Це поле дозволяє вам показувати IP-адреси хостів робочим навантаженням.
PodOverhead
Вмикає PodOverhead для врахування накладних витрат на Pod.
PodPriority
Дозволяє випередження та зміну планування Podʼів на основі їх пріоритетів.
PodReadinessGates
Дозволяє увімкнути налаштування поля PodReadinessGate для розширення оцінювання готовності Pod. Дивіться Готовність Podʼа для більш детальної інформації.
PodSecurity
Вмикає втулок допуску PodSecurity.
PodShareProcessNamespace
Вмикає параметр shareProcessNamespace у Pod для спільного використання єдиного простору імен процесів між контейнерами, запущеними у Pod. Більш детальну інформацію можна знайти у статті Спільний простір імен процесів між контейнерами у Pod.
PreferNominatedNode
Цей прапорець вказує планувальнику, чи будуть номіновані вузли перевірятися першими перед тим, як обходити всі інші вузли кластера.
Починаючи з Kubernetes v1.10, ці типи томів завжди є тільки для читання, і ви не можете відмовитися від цього.
ReadWriteOncePod
Дозволяє використовувати ReadWriteOncePod режим доступу до PersistentVolume.
RemainingItemCount
Дозволити серверам API показувати кількість елементів, що залишилися, у відповіді на запит chunking list request.
RemoveSelfLink
Встановлює поле .metadata.selfLink порожнім (порожній рядок) для всіх обʼєктів і колекцій. Це поле застаріло з випуску Kubernetes v1.16. Коли цю можливість увімкнено, поле .metadata.selfLink залишається частиною API Kubernetes, але завжди не встановлене.
RequestManagement
Дозволяє керувати паралельністю запитів з пріоритетами та справедливістю на кожному сервері API. Замінено на APIPriorityAndFairness з 1.17.
ResourceLimitsPriorityFunction
Вмикає функцію пріоритету планувальника, яка присвоює найнижчу можливу оцінку 1 вузлу, який задовольняє хоча б одному з лімітів процесора та памʼяті вхідного Podʼа. Це має на меті розірвати звʼязки між вузлами з однаковими оцінками.
ResourceQuotaScopeSelectors
Вмикає селектори області обмежень ресурсів.
RetroactiveDefaultStorageClass
Дозволяє призначати StorageClass незвʼязаним постійним томам (PVC) ретроактивно.
RootCAConfigMap
Налаштуйте kube-controller-manager на публікацію ConfigMap з назвою kube-root-ca.crt у кожному просторі імен. Цей ConfigMap містить пакет CA, який використовується для перевірки зʼєднань з kube-apiserver. Докладні відомості наведено у статті Токени привʼязаних службових облікових записів.
RotateKubeletClientCertificate
Вмикає ротацію клієнтського TLS-сертифікату в kubelet. Дивіться kubelet configuration для більш детальної інформації.
RunAsGroup
Вмикає контроль за первинним ідентифікатором групи, встановленим у процесах ініціалізації контейнерів.
RuntimeClass
Вмикає RuntimeClass для вибору конфігурацій середовища виконання контейнера.
ScheduleDaemonSetPods
Дозволяє Podʼам DemonSet плануватися стандартним планувальником замість контролера DaemonSet.
SCTPSupport
Вмикає значення protocolSCTP в означеннях Pod, Service, Endpoints, EndpointSlice та NetworkPolicy.
SeccompDefault
Дозволяє використовувати RuntimeDefault як стандартний профіль seccomp для всіх робочих навантажень. Профіль seccomp вказується в ecurityContext Pod та/або Container.
SecurityContextDeny
Ця можливість сигналізує про те, що контролер допуску SecurityContextDeny є застарілим.
SelectorIndex
Дозволяє використовувати індекси на основі міток і полів у кеші спостереження сервера API для прискорення роботи зі списками.
Вмикає перевірку полів на стороні сервера. Це означає, що перевірка схеми ресурсів виконується на стороні сервера API, а не на стороні клієнта (наприклад, командний рядок kubectl create або kubectl apply).
Вмикає стратегію розподілу службових кластерних IP-адрес, згідно з якою діапазон ClusterIP поділяється на частини. Динамічні адреси ClusterIP призначатимуться переважно з верхнього діапазону, що дасть змогу користувачам призначати статичні адреси ClusterIP з нижнього діапазону з низьким ризиком колізій. Докладніші відомості наведено у статті Уникнення колізій.
ServiceLBNodePortControl
Вмикає поле allocateLoadBalancerNodePorts у Services.
Вмикає захист завершувача для Service load balancers.
ServiceNodeExclusion
Дозволяє виключати вузли з балансувальників навантаження, створених хмарним постачальником. Вузол може бути виключений, якщо він має мітку "node.kubernetes.io/exclude-from-external-load-balancers".
Дозволяє контролеру StatefulSet дотримуватися значення minReadySeconds.
StorageObjectInUseProtection
Відкладення видалення обʼєктів PersistentVolume або PersistentVolumeClaim, якщо вони все ще використовуються.
StreamingProxyRedirects
Доручає серверу API перехоплювати (і виконувати) перенаправлення від бекенда ('kubelet') для потокових запитів. Прикладами потокових запитів є запити exec, attach і port-forward.
SupportIPVSProxyMode
Вмикає балансування навантаження сервісів у кластері за допомогою IPVS. Докладні відомості див. у статті проксі-сервери.
SupportNodePidsLimit
Вмикає підтримку обмеження PID на вузлі. Параметр pid=<number> в опціях --system-reserved і --kube-reserved можна вказати, щоб гарантувати, що вказану кількість ідентифікаторів процесів буде зарезервовано для системи в цілому і для системних демонів Kubernetes відповідно.
SupportPodPidsLimit
Вмикання підтримки обмеження PID у Podʼах.
SuspendJob
Дозволяє призупиняти та поновлювати виконання Jobs. Докладнішу інформацію дивіться у документації про Job.
Sysctls
Вмикання підтримки параметрів ядра у просторі імен (sysctls), які можна задавати для кожного з Podʼів. Докладні відомості наведено у sysctls.
TaintBasedEvictions
Дозволяє виселяти Podʼи з вузлів на основі taints на вузлах і толерантностей на Podʼах. Детальніше дивіться у статті taint та tolerances.
TaintNodesByCondition
Дозволяє автоматичне позначення вузлів taints на основі станів вузлів.
TokenRequest
Вмикає точку доступу TokenRequest для ресурсів службових облікових записів.
TokenRequestProjection
Вмикає інʼєкцію токенів службових облікових записів у Pod через projected том.
Дозволити TTL-контролеру очищати ресурси після завершення їх виконання.
UserNamespacesPodSecurityStandards
Дозволити помʼякшення політик стандартів безпеки для Podʼів, які працюють з просторами імен. Ви маєте встановити значення цієї можливості узгоджено на всіх вузлах кластера, а також увімкнути UserNamespacesSupport, щоб використовувати цю можливість.
Ця функціональна можливість не входить до складу Kubernetes v1.35 (і наступних версій), оскільки в цих версіях Kubernetes усі підтримувані версії kubelet не зможуть створити под, якщо він запитує простір імен користувача, а вузол — ні.
UserNamespacesStatelessPodsSupport
Увімкніть підтримку простору імен користувачів для stateless Podʼів. Ці функціональні можливості були замінені на UserNamespacesSupport у випуску Kubernetes v1.28.
ValidateProxyRedirects
Цей прапорець визначає, чи повинен сервер API перевіряти, що перенаправлення виконуються тільки на той самий хост. Використовується лише якщо увімкнено прапорець StreamingProxyRedirects.
Вмикання підтримки пріоритезації вузлів у різних топологіях на основі доступної місткості PV. Цю функцію було перейменовано на StorageCapacityScoring у v1.33.
VolumePVCDataSource
Підтримка вказівки існуючого PVC як DataSource.
VolumeScheduling
Вмикає планування з урахуванням топології тома і робить привʼязку PersistentVolumeClaim (PVC) обізнаною з рішеннями щодо планування. Це також дозволяє використовувати тип тома local при використанні разом з функціональною можливістю PersistentLocalVolumes.
VolumeSnapshotDataSource
Вмикання підтримки джерела даних для створення знімків томів.
VolumeSubpath
Дозволяє монтувати субшлях тому в контейнері.
VolumeSubpathEnvExpansion
Вмикання поля SubPathExpr для розгортання змінних оточення у SubPath.
WarningHeaders
Дозволяє надсилати заголовки попередження в відповідях API.
WatchBookmark
Вмикає підтримку подій закладок для спостереження.
WindowsEndpointSliceProxying
Якщо увімкнено, kube-proxy, що працює на Windows, використовуватиме EndpointSlices як основне джерело даних замість Endpoints, що забезпечує масштабованість і покращення продуктивності. Див. статтю Увімкнення Endpoint Slices.
WindowsGMSA
Дозволяє передавати специфікацію облікових даних GMSA від Podʼів до середовища виконання контейнера.
WindowsHostProcessContainers
Вмикає підтримку контейнерів Windows HostProcess.
WindowsRunAsUserName
Вмикання підтримки запуску програм у контейнерах Windows від імені не типового користувача. Докладні відомості наведено у статті Налаштування RunAsUserName.
ZeroLimitedNominalConcurrencyShares
Дозволити priority & fairness на сервері API використовувати нульове значення для поля nominalConcurrencyShares секції limited рівня пріоритету.
13.3 - kube-apiserver
Огляд
Сервер API Kubernetes перевіряє та налаштовує дані для обʼєктів api, які включають поди, сервіси, replicationcontrollers та інші. API Server обслуговує REST-операції та забезпечує інтерфейс до спільного стану кластера, через який взаємодіють всі інші компоненти.
kube-apiserver [flags]
Параметри
--admission-control strings
Допуск поділяється на два етапи. На першому етапі виконуються тільки втулки допуску, що змінюють дані. На другому етапі виконуються тільки втулки допуску, що перевіряють дані. Імена в наведеному нижче списку можуть позначати втулки, що перевіряють дані, втулки, що змінюють дані, або обидва типи. Порядок втулків, в якому вони передаються до цього прапорця, не має значення. Список, розділений комами: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, ClusterTrustBundleAttest, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, JobValidation, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionPolicy, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeDeclaredFeatureValidator, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PodGroupProtection, PodGroupWorkloadExists, PodNodeSelector, PodResizeValidator, PodSecurity, PodTolerationRestriction, PodTopologyLabels, Priority, ResourceQuota, RuntimeClass, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook. (ЗАСТАРІЛО: Замість цього використовуйте --enable-admission-plugins або --disable-admission-plugins. Буде видалено в майбутній версії.)
--admission-control-config-file string
Файл з конфігурацією контролю допуску.
--advertise-address string
IP-адреса, на якій буде публікуватися інформація про apiserver для членів кластеру. Ця адреса має бути доступною для решти учасників кластера. Якщо не вказано, буде використано --bind-address. Якщо --bind-address не вказано, буде використано стандартний інтерфейс хоста.
Агрегатор відхиляє перенаправлення відповіді редиректу назад клієнту.
--allow-metric-labels stringToString Типово: []
Зіставляє метрику-мітку зі списком дозволених значень цієї мітки. Формат ключа — <MetricName>,<LabelName>. Формат значення — <allowed_value>, <allowed_value>... наприклад, metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'.
--allow-metric-labels-manifest string
Шлях до файлу маніфесту, який містить зіставлення allow-list. Формат файлу такий самий, як і у прапорця --allow-metric-labels, напр., allowListMapping: "metric1,label1": "value11,value12" "metric2,label2": "" Зауважте, що прапорець --allow-metric-labels замінить файл маніфесту.
--allow-privileged
Якщо true, дозволити привілейовані контейнери. [default=false]
--anonymous-auth Типово: true
Дозволяє анонімні запити до захищеного порту сервера API. Запити, які не були відхилені іншими методами автентифікації, вважаються анонімними. Анонімні запити мають імʼя користувача system:anonymous і назву групи system:unauthenticated.
--api-audiences strings
Ідентифікатори API. Автентифікатор токенів службового облікового запису перевіряє, що токени, які використовуються з API, привʼязані принаймні до однієї з цих аудиторій. Якщо прапорець --service-account-issuer налаштовано, а цей прапорець не встановлено, стандартно у цьому полі буде вказано список з одного елемента, що містить URL-адресу емітента.
--audit-log-batch-buffer-size int Типово: 10000
Розмір буфера для зберігання подій перед пакетною передачею та записом. Використовується тільки у пакетному режимі.
--audit-log-batch-max-size int Типово: 1
Максимальний розмір пакету. Використовується тільки в пакетному режимі.
--audit-log-batch-max-wait duration
Час очікування перед примусовим записом пакету, який не досягнув максимального розміру. Використовується тільки в пакетному режимі.
--audit-log-batch-throttle-burst int
Максимальна кількість запитів, надісланих одночасно, якщо ThrottleQPS не використовувався раніше. Використовується тільки в пакетному режимі.
--audit-log-batch-throttle-enable
Чи ввімкнено пакетний тротлінг. Використовується тільки в пакетному режимі.
--audit-log-batch-throttle-qps float
Максимальна середня кількість партій в секунду. Використовується тільки в пакетному режимі.
--audit-log-compress
Якщо встановлено, файли логів, що ротуються, буде стиснуто за допомогою gzip.
--audit-log-format string Типово: "json"
Формат збережених аудитів. "legacy" вказує на 1-рядковий текстовий формат для кожної події. "json" вказує на структурований формат json. Відомі формати: legacy, json.
--audit-log-maxage int Типово: 366
Максимальна кількість днів для зберігання старих файлів логів аудиту на основі мітки часу, закодованої в їхньому імені. Встановлення значення 0 означає, що старі файли логів аудиту не видаляються на основі віку.
--audit-log-maxbackup int Типово: 100
Максимальна кількість старих файлів логів аудиту, які слід зберігати. Встановлення значення 0 означатиме відсутність обмежень на кількість файлів.
--audit-log-maxsize int Типово: 100
Максимальний розмір у мегабайтах файлу логу аудиту до того, як буде виконано його ротацію. Встановлення значення 0 вимикає ротацію (не рекомендовано).
--audit-log-mode string Типово: "blocking"
Стратегія надсилання подій аудиту. Блокування вказує на те, що надсилання подій має блокувати відповіді сервера. Пакетне виконання змушує бекенд буферизувати і записувати події асинхронно. Відомі такі режими: batch, blocking, blocking-strict.
--audit-log-path string
Якщо встановлено, всі запити, що надходять до apiserver, будуть записуватися до цього файлу. '-' означає стандартний вивід.
--audit-log-truncate-enabled
Чи увімкнено усікання подій та пакетів.
--audit-log-truncate-max-batch-size int Типово: 10485760
Максимальний розмір пакету, що надсилається до відповідного бекенду. Фактичний розмір серіалізованого файлу може бути на кілька сотень байт більшим. Якщо пакет перевищує цей ліміт, він розбивається на кілька пакетів меншого розміру.
--audit-log-truncate-max-event-size int Типово: 102400
Максимальний розмір події аудиту, що надсилається до відповідного бекенду. Якщо розмір події перевищує це число, перший запит і відповідь видаляються, а якщо це не зменшує розмір достатньо, подія відкидається.
Час очікування перед повторною спробою після першого невдалого запиту.
--audit-webhook-mode string Типово: "batch"
Стратегія надсилання подій аудиту. Блокування вказує на те, що надсилання подій має блокувати відповіді сервера. Режим batch змушує бекенд буферизувати і записувати події асинхронно. Відомі такі режими: batch, blocking, blocking-strict.
--audit-webhook-truncate-enabled
Чи увімкнено усікання подій та пакетів.
--audit-webhook-truncate-max-batch-size int Типово: 10485760
Максимальний розмір пакету, що надсилається до відповідного бекенду. Фактичний розмір серіалізованого файлу може бути на кілька сотень байт більшим. Якщо пакет перевищує цей ліміт, він розбивається на кілька пакетів меншого розміру.
--audit-webhook-truncate-max-event-size int Типово: 102400
Максимальний розмір події аудиту, що надсилається до відповідного бекенду. Якщо розмір події перевищує це число, перший запит і відповідь видаляються, а якщо це не зменшує розмір достатньо, подія відкидається.
Група та версія API, що використовується для серіалізації подій аудиту, записаних у webhook.
--authentication-config string
Файл з конфігурацією автентифікації для налаштування автентифікатора JWT Token або анонімного автентифікатора. Потрібна функціональна можливість StructuredAuthenticationConfiguration. Цей прапорець є взаємовиключним з прапорцями --oidc-*, якщо у файлі налаштовано автентифікатор JWT Token. Цей прапорець є взаємовиключним з прапорцем --anonymous-auth, якщо у файлі налаштовано анонімний автентифікатор.
Тривалість кешування відповідей від автентифікатора токенів вебхуків.
--authentication-token-webhook-config-file string
Файл з конфігурацією вебхука для автентифікації токенів у форматі kubeconfig. Сервер API буде запитувати віддалений сервіс для визначення автентичності токенів на предʼявника.
Версія API authentication.k8s.io TokenReview для надсилання та очікування від вебхука.
--authorization-config string
Файл з конфігурацією авторизації для налаштування ланцюжка авторизації. Цей прапорець є взаємовиключним з іншими прапорцями --authorization-mode та --authorization-webhook-*.
--authorization-mode strings
Впорядкований список втулків для авторизації на захищеному порту. Стандартно має значення AlwaysAllow, якщо не вказано --authorization-config. Список втулків, розділених комами: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC,Node.
--authorization-policy-file string
Файл з політикою авторизації у форматі json, що використовується з --authorization-mode=ABAC, на захищеному порту.
Тривалість кешування 'unauthorized' відповідей від авторизатора вебхука.
--authorization-webhook-config-file string
Файл з конфігурацією webhook у форматі kubeconfig, що використовується з --authorization-mode=Webhook. Сервер API запитує віддалений сервіс для визначення доступу на захищеному порту сервера API.
Версія API authorization.k8s.io SubjectAccessReview, яку потрібно надсилати до вебхука та очікувати від нього.
--bind-address string Типово: 0.0.0.0
IP-адреса, на якій буде прослуховуватися порт --secure-port. Відповідний інтерфейс(и) має бути доступним для решти кластера, а також для CLI/веб-клієнтів. Якщо цей параметр не вказано або вказано невизначену адресу (0.0.0.0 або ::), будуть використані всі інтерфейси та сімейства IP-адрес.
--cert-dir string Типово: "/var/run/kubernetes"
Тека, в якій знаходяться TLS-сертифікати. Якщо вказано --tls-cert-file та --tls-private-key-file, цей прапорець буде проігноровано.
--client-ca-file string
Якщо встановлено, будь-який запит, що надає клієнтський сертифікат, підписаний одним із центрів сертифікації у клієнтському файлі, буде автентифіковано за допомогою ідентифікатора, що відповідає CommonName клієнтського сертифіката.
--contention-profiling
Дозволяє профілювання блоків, якщо профілювання увімкнено
Тривалість для повторної спроби продовження оренди виборів лідера.
--cors-allowed-origins strings
Список дозволених джерел для CORS, через кому. Допустимим джерелом може бути регулярний вираз для підтримки співставлення субдоменів. Якщо цей список порожній, CORS не буде ввімкнено. Будь ласка, переконайтеся, що кожен вираз співпадає з повним імʼям хоста шляхом привʼязки до початку за допомогою '^' або включення префікса '//', а також шляхом привʼязки до кінця за допомогою '$' або включення суфікса-розділювача портів ':'. Прикладами допустимих виразів є '//example.com(:|$)' і '^https://example.com(:|$)'
--debug-socket-path string
Використовуйте незахищений (без authn/authz) unix-доменний сокет для профілювання за вказаним шляхом
--default-not-ready-toleration-seconds int Типово: 300
Вказує толерантність у секундах для notReady:NoExecute, яка стандартно додається до кожного Podʼа, який ще не має такої толерантності.
--default-unreachable-toleration-seconds int Типово: 300
Показує tolerationSeconds толерантності для unreachable:NoExecute, яка стандартно додається до кожного Podʼа, який ще не має такої толерантності.
--delete-collection-workers int Типово: 1
Кількість обробників, створених для виклику DeleteCollection. Вони використовуються для прискорення очищення простору імен.
--disable-admission-plugins strings
Втулки допуску, які слід вимкнути, хоча вони є у списку стандартно ввімкнутих втулків (NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, PodSecurity, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PodGroupProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, ClusterTrustBundleAttest, CertificateSubjectRestriction, DefaultIngressClass, PodTopologyLabels, PodGroupWorkloadExists, NodeDeclaredFeatureValidator, JobValidation, PodResizeValidator, MutatingAdmissionPolicy, MutatingAdmissionWebhook, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook, ResourceQuota). Список втулків допуску розділених комою: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, ClusterTrustBundleAttest, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, JobValidation, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionPolicy, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeDeclaredFeatureValidator, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PodGroupProtection, PodGroupWorkloadExists, PodNodeSelector, PodResizeValidator, PodSecurity, PodTolerationRestriction, PodTopologyLabels, Priority, ResourceQuota, RuntimeClass, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook. Порядок розташування втулків у цьому прапорці не має значення.
--disable-http2-serving
Якщо значення true, HTTP2-сервіс буде вимкнено [default=false].
--disabled-metrics strings
Цей прапорець забезпечує аварійний вихід для метрик, що поводяться не належним чином. Щоб вимкнути метрику, ви маєте вказати її повну назву. Застереження: вимкнення метрик має вищий пріоритет, ніж показ прихованих метрик.
--egress-selector-config-file string
Файл з конфігурацією селектора egress apiserver.
--emulated-version strings
У версіях різні компоненти емулюють свої можливості (API, функції, ...) інших компонентів. Якщо встановлено, компонент буде емулювати поведінку цієї версії замість базової двійкової версії. Формат версії може бути лише major.minor, наприклад: '--emulated-version=wardle=1.2,kube=1.31'. Можливі варіанти: kube=1.33..1.36 (default=1.36) Якщо компонент не вказано, стандартно використовується "kube"
--emulation-forward-compatible
Якщо встановлено значення true, для будь-яких бета+ API, стандартно увімкнених або за допомогою --runtime-config у версії емуляції, їхні майбутні версії з вищим пріоритетом/стабільністю будуть автоматично ввімкнені, навіть якщо вони були випущені після версії емуляції. Можна встановити значення true, лише якщо версія емуляції нижча за бінарну версію.
--enable-admission-plugins strings
Втулки допуску, які слід увімкнути на додачу до стандартно увімкнутих (NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, PodSecurity, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PodGroupProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, ClusterTrustBundleAttest, CertificateSubjectRestriction, DefaultIngressClass, PodTopologyLabels, PodGroupWorkloadExists, NodeDeclaredFeatureValidator, JobValidation, PodResizeValidator, MutatingAdmissionPolicy, MutatingAdmissionWebhook, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook, ResourceQuota). Розділений комами список втулків допуску: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, ClusterTrustBundleAttest, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, JobValidation, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionPolicy, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeDeclaredFeatureValidator, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PodGroupProtection, PodGroupWorkloadExists, PodNodeSelector, PodResizeValidator, PodSecurity, PodTolerationRestriction, PodTopologyLabels, Priority, ResourceQuota, RuntimeClass, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionPolicy, ValidatingAdmissionWebhook. Порядок розташування втулків у цьому прапорці не має значення.
--enable-aggregator-routing
Вмикає маршрутизацію запитів агрегатора на IP точок доступу, а не на IP кластера.
--enable-bootstrap-token-auth
Увімкніть, щоб дозволити використовувати секрети типу 'bootstrap.kubernetes.io/token' у просторі імен 'kube-system' для автентифікації за допомогою TLS-завантаження.
--enable-garbage-collector Типово: true
Вмикає загальний збирач сміття. МАЄ бути синхронізовано з відповідним прапорцем kube-controller-manager.
--enable-logs-handler
Якщо це правда, встановіть обробник /logs для журналів apiserver. (ЗАСТАРІЛЕ: Функціональність обробника журналів застаріла)
--enable-priority-and-fairness Типово: true
Якщо true, замініть обробник max-in-flight на покращений обробник, який ставить в чергу та розподіляє відправлення з пріоритетом та справедливістю
--encryption-provider-config string
Файл, що містить конфігурацію для провайдерів шифрування, які будуть використовуватися для зберігання секретів у etcd
--encryption-provider-config-automatic-reload
Визначає, чи слід автоматично перезавантажувати файл, заданий за допомогою --encryption-provider-config, у разі зміни вмісту диска. Встановлення цього параметра у значення true вимикає можливість унікальної ідентифікації окремих втулків KMS за допомогою точок доступу API сервера healthz.
--endpoint-reconciler-type string Типово: "lease"
Використовувати узгоджувач точок доступу (master-count, lease, none) master-count є застарілим і буде вилучений у наступній версії.
--etcd-cafile string
Файл центру сертифікації SSL, який використовується для захисту звʼязку etcd.
--etcd-certfile string
Файл SSL-сертифікату, який використовується для захисту звʼязку etcd.
--etcd-compaction-interval duration Типово: 5m0s
Інтервал запитів на ущільнення. Якщо 0, то запит на ущільнення від apiserver вимкнено.
Інтервал запитів на опитування etcd та оновлення метрики. 0 вимикає збір метрики
--etcd-healthcheck-timeout duration Типово: 2s
Тайм-аут для перевірки стану etcd.
--etcd-keyfile string
Файл ключа SSL, який використовується для захисту комунікації etcd.
--etcd-prefix string Типово: "/registry"
Префікс для додавання до всіх шляхів до ресурсів у etcd.
--etcd-readycheck-timeout duration Типово: 2s
Тайм-аут для перевірки готовності etcd
--etcd-servers strings
Список etcd серверів для зʼєднання (scheme://ip: port), через кому.
--etcd-servers-overrides strings
Окремі перевизначення серверів etcd для кожного ресурсу, через кому. Формат перевизначення: група/ресурс#сервери, де сервери — це URL-адреси, розділені крапкою з комою. Зауважте, що це стосується лише ресурсів, скомпільованих у цей двійковий файл сервера? напр. "/pods#http://etcd4:2379;http://etcd5:2379,/events#http://etcd6:2379"
--event-ttl duration Типово: 1h0m0s
Кількість часу для збереження подій.
--external-hostname string
Імʼя хоста, яке використовуватиметься під час генерації зовнішніх URL-адрес для цього master (наприклад, Swagger API Docs або OpenID Discovery).
Щоб запобігти застряганню HTTP/2-клієнтів на одному apiserver, випадково закрийте зʼєднання (GOAWAY). Інші запити клієнта не будуть зачеплені, і клієнт відновить зʼєднання, ймовірно, потрапивши на інший apiserver після того, як знову пройде через балансувальник навантаження. Цей аргумент задає частку запитів, які будуть відправлені GOAWAY. Кластери з одним apiserver або ті, що не використовують балансувальник навантаження, НЕ повинні вмикати цей параметр. Мінімальне значення — 0 (вимкнено), максимальне — 0.02 (1/50 запитів); 0.001 (1/1000) є рекомендованим початковим значенням.
-h, --help
Довідка kube-apiserver
--http2-max-streams-per-connection int
Обмеження, яке сервер надає клієнтам на максимальну кількість потоків у зʼєднанні HTTP/2. Нуль означає використання стандартного значення golang.
Список бажаних типів NodeAddressTypes для зʼєднань kubelet.
--kubelet-timeout duration Типово: 5s
Таймаут для операцій kubelet.
--kubernetes-service-node-port int
Якщо значення відмінне від нуля, майстер-сервіс Kubernetes (який створює/підтримує apiserver) матиме тип NodePort, використовуючи його як значення порту. Якщо нульове значення, майстер-сервіс Kubernetes матиме тип ClusterIP.
--lease-reuse-duration-seconds int Типово: 60
Час у секундах, протягом якого кожна оренда використовується повторно. Менше значення допоможе уникнути повторного використання однієї і тієї ж оренди великою кількістю обʼєктів. Зауважте, що занадто мале значення може спричинити проблеми з продуктивністю на рівні сховища.
--livez-grace-period duration
Цей параметр вказує максимальний час, за який apiserver має завершити свою послідовність запуску і стати активним. З моменту запуску apiserver і до закінчення цього часу /livez вважатиме, що незавершені після запуску хуки будуть успішно завершені, а отже, повертатиме значення true.
--log-flush-frequency duration Типово: 5s
Максимальна кількість секунд між очищеннями логів
--log-text-info-buffer-size quantity
[Alpha] У текстовому форматі з розділеними потоками виводу інформаційні повідомлення можуть буферизуватися на деякий час для підвищення продуктивності. Стандартне значення, рівне нулю байт, вимикає буферизацію. Розмір можна вказати як кількість байт (512), кратну 1000 (1K), кратну 1024 (2Ki) або степінь (3M, 4G, 5Mi, 6Gi). Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--log-text-split-stream
[Alpha] У текстовому форматі записувати повідомлення про помилки до stderr та інформаційні повідомлення до stdout. Стандартно до stdout записується один потік. Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--logging-format string Типово: "text"
Задає формат логу. Дозволені формати: "text".
--max-connection-bytes-per-sec int
Якщо ненульове, обмежити кожне зʼєднання користувача до цієї кількості байт/сек. Наразі застосовується лише до довготривалих запитів.
--max-mutating-requests-inflight int Типово: 200
Цей та --max-requests-inflight підсумовуються для визначення загального ліміту паралелізму сервера (який має бути додатнім), якщо --enable-priority-and-fairness має значення true. В іншому випадку цей прапорець обмежує максимальну кількість запитів, що змінюються у процесі виконання, або нульове значення повністю вимикає обмеження.
--max-requests-inflight int Типово: 400
Це значення та --max-mutating-requests-inflight підсумовуються для визначення загального ліміту паралелізму сервера (який має бути додатнім), якщо --enable-priority-and-fairness має значення true. В іншому випадку цей прапорець обмежує максимальну кількість запитів, що не змінюються у процесі виконання, або нульове значення повністю вимикає ліміт.
--min-compatibility-version strings
Мінімальна версія компонентів панелі управління, з якою повинен бути сумісний сервер. Повинна бути меншою або дорівнювати емульованій версії. Формат версії може бути тільки major.minor, наприклад: '--min-compatibility-version=wardle=1.2,kube=1.31'. Варіанти: kube=1.33..1.36 (Стандартно: 1.35) Якщо компонент не вказано, типово використовується "kube".
--min-request-timeout int Типово: 1800
Необовʼязкове поле, що вказує мінімальну кількість секунд, протягом яких обробник повинен тримати запит відкритим, перш ніж завершити його виконання. Наразі виконується лише обробником запитів watch, який обирає випадкове значення вище цього числа як таймаут зʼєднання, щоб розподілити навантаження.
--oidc-ca-file string
Якщо встановлено, сертифікат сервера OpenID буде перевірено одним з центрів сертифікації в oidc-ca-файлі, інакше буде використано кореневий центр сертифікації хоста.
--oidc-client-id string
Ідентифікатор клієнта для клієнта OpenID Connect повинен бути встановлений, якщо встановлено oidc-issuer-url.
--oidc-groups-claim string
Якщо вказано, імʼя власного запиту OpenID Connect для вказівки груп користувачів. Очікується, що значенням параметра буде рядок або масив рядків. Цей прапорець є експериментальним, будь ласка, зверніться до документації з автентифікації для отримання більш детальної інформації.
--oidc-groups-prefix string
Якщо вказано, до всіх груп буде додано цей префікс, щоб запобігти конфліктам з іншими стратегіями автентифікації.
--oidc-issuer-url string
URL-адреса емітента OpenID, приймається тільки схема HTTPS. Якщо встановлено, він буде використаний для перевірки OIDC JSON Web Token (JWT).
Пара key=value, яка описує необхідний реквізит в ідентифікаторі. Якщо встановлено, перевіряється, що реквізит присутній в ідентифікаторі з відповідним значенням. Повторіть цей прапорець, щоб вказати декілька реквізитів.
--oidc-signing-algs strings Типово: "RS256"
Список дозволених алгоритмів асиметричного підпису JOSE через кому. JWT з підтримуваними значеннями заголовка 'alg': RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512. Значення визначені в RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1.
--oidc-username-claim string Типово: "sub"
Запит OpenID для використання в якості імені користувача. Зауважте, що не гарантується унікальність та незмінність запитів, відмінних від стандартного ('sub'). Цей прапорець є експериментальним, будь ласка, зверніться до документації з автентифікації для отримання більш детальної інформації.
--oidc-username-prefix string
Якщо вказано, всі імена користувачів будуть доповнені цим значенням. Якщо не вказано, до імен користувачів, відмінних від "email", буде додано префікс URL-адреси емітента, щоб уникнути зіткнень. Щоб пропустити будь-яку префіксацію, вкажіть значення '-'.
--peer-advertise-ip string
Якщо встановлено і ввімкнено функцію UnknownVersionInteroperabilityProxy, цей IP буде використовуватися одноранговими kube-apiserverʼами для проксі-запитів до цього kube-apiserverʼа, коли запит не може бути оброблений одноранговим через невідповідність версій між kube-apiserʼами. Цей прапорець використовується лише у кластерах, сконфігурованих з декількома kube-apiserverʼами для забезпечення високої доступності.
--peer-advertise-port string
Якщо цей прапорець встановлено і ввімкнено функцію UnknownVersionInteroperabilityProxy, цей порт використовуватиметься одноранговими kube-apiserver'ами для проксі-запитів до цього kube-apiserver'а, коли запит не може бути оброблений одноранговим через невідповідність версій між kube-apiserver'ами. Цей прапорець використовується лише у кластерах, сконфігурованих з декількома kube-apiserver'ами для забезпечення високої доступності.
--peer-ca-file string
Якщо встановлено і ввімкнено функцію UnknownVersionInteroperabilityProxy, цей файл буде використано для перевірки сертифікатів обслуговування однорангових kube-apiserver серверів. Цей прапорець використовується лише у кластерах, сконфігурованих з декількома kube-apiserver'ами для забезпечення високої доступності.
--permit-address-sharing
Якщо це значення дорівнює true, SO_REUSEADDR буде використано при привʼязці порту. Це дозволяє паралельно привʼязуватись до підстановочних IP-адрес, таких як 0.0.0.0, і до конкретних IP-адрес, а також дозволяє уникнути очікування ядром звільнення сокетів у стані TIME_WAIT. [default=false]
--permit-port-sharing
Якщо значення true, SO_REUSEPORT буде використано при привʼязці порту, що дозволяє більш ніж одному екземпляру привʼязуватися до однієї адреси та порту. [default=false]
--profiling Типово: true
Увімкніть профілювання через веб-інтерфейс host:port/debug/pprof/
--proxy-client-cert-file string
Клієнтський сертифікат, що використовується для підтвердження особи агрегатора або kube-apiserver, коли необхідно здійснити виклик під час запиту. Це включає проксирування запитів до користувацького API-сервера та виклики до втулків допуску webhook. Очікується, що цей сертифікат містить підпис від CA, вказаного у прапорі --requestheader-client-ca-file. Цей CA публікується в configmap 'extension-apiserver-authentication' у просторі імен kube-system. Компоненти, що отримують виклики від kube-aggregator, повинні використовувати цей CA для виконання своєї частини взаємної TLS перевірки.
--proxy-client-key-file string
Приватний ключ для клієнтського сертифіката, що використовується для підтвердження особи агрегатора або kube-apiserver, коли необхідно здійснити виклик під час запиту. Це включає проксирування запитів до користувацького API-сервера та виклики до втулків допуску webhook.
--request-timeout duration Типово: 1m0s
Необовʼязкове поле, що вказує на тривалість, протягом якої обробник повинен тримати запит відкритим, перш ніж завершити його виконання. Це стандартний таймаут для запитів, але його можна перевизначити за допомогою прапорців, таких як --min-request-timeout для певних типів запитів.
--requestheader-allowed-names strings
Список загальних імен клієнтських сертифікатів, щоб дозволити вказувати імена користувачів у заголовках, визначених параметром --requestheader-username-headers. Якщо він порожній, можна використовувати будь-який сертифікат клієнта, підтверджений центрами сертифікації у файлі --requestheader-client-ca-file.
--requestheader-client-ca-file string
Пакет кореневих сертифікатів для перевірки клієнтських сертифікатів на вхідних запитах перед тим, як довіряти імена користувачів у заголовках, визначених параметром --requestheader-username-headers. ПОПЕРЕДЖЕННЯ: зазвичай не залежить від авторизації, яку вже виконано для вхідних запитів.
--requestheader-extra-headers-prefix strings
Список префіксів заголовків запитів для перевірки. Запропоновано X-Remote-Extra-.
--requestheader-group-headers strings
Список заголовків запитів для перевірки на наявність груп. Пропонується X-Remote-Group.
--requestheader-uid-headers strings
Список заголовків запитів для перевірки на наявність UID. Пропонується X-Remote-Uid. Потребує увімкнення функції RemoteRequestHeaderUID.
--requestheader-username-headers strings
Список заголовків запитів для перевірки на наявність імен користувачів. X-Remote-User є поширеним.
Набір пар key=value, які вмикають або вимикають вбудовані API. Підтримувані параметри: v1=true|false для основної групи API <group>/<version>=true|false для певної групи API та версії (наприклад, apps/v1=true) api/all=true|false контролює всі версії API api/ga=true|false контролює всі версії API у формі v[0-9]+ api/beta=true| false контролює всі версії API форми v[0-9]+beta[0-9]+ api/alpha=true|false контролює всі версії API форми v[0-9]+alpha[0 -9]+ api/legacy застаріло та буде видалено в наступній версії
--runtime-config-emulation-forward-compatible
Якщо значення true, API, ідентифіковані групою/версією, які ввімкнено в прапорці --runtime-config, будуть встановлені, навіть якщо він буде введено після версії емуляції. Якщо значення false, сервер не запуститься, якщо будь-які API, ідентифіковані групою/версією, які ввімкнено в прапорці --runtime-config, будуть введені після версії емуляції. Можна встановити значення true, лише якщо версія емуляції нижча за двійкову версію.
--secure-port int Типово: 6443
Порт, на якому буде обслуговуватися HTTPS з автентифікацією та авторизацією. Його не можна вимкнути за допомогою 0.
Вмикає прогнозоване продовження терміну дії облікового запису під час генерації токенів, що допомагає безпечному переходу від застарілих токенів до привʼязаних токенів облікових записів. Якщо цей прапорець увімкнено, термін дії токенів, що вводяться, буде подовжено до 1 року, щоб запобігти несподіваним збоям під час переходу, ігноруючи значення параметра service-account-max-token-expiration.
--service-account-issuer strings
Ідентифікатор емітента токенів службового облікового запису. Емітент вказуватиме цей ідентифікатор у запиті "iss" на видачу випущених токенів. Це значення є рядком або URI. Якщо цей параметр не є дійсним URI згідно зі специфікацією OpenID Discovery 1.0, функція ServiceAccountIssuerDiscovery залишиться вимкненою, навіть якщо для функції gate буде встановлено значення true. Наполегливо рекомендується, щоб це значення відповідало специфікації OpenID: https://openid.net/specs/openid-connect-discovery-1_0.html. На практиці це означає, що service-account-issuer має бути URL-адресою https. Також наполегливо рекомендується, щоб ця URL-адреса могла обслуговувати документи виявлення OpenID за адресою {service-account-issuer}/.well-known/openid-configuration. Якщо цей прапорець вказано декілька разів, перший раз використовується для генерації токенів, а всі інші - для визначення прийнятних емітентів.
--service-account-jwks-uri string
Перевизначає URI для набору веб-ключів JSON (JSON Web Key Set) у документі виявлення, що надсилається за адресою /.well-known/openid-configuration. Цей прапорець корисний, якщо документ виявлення та набір ключів надаються сторонам, що довіряють, за URL-адресою, відмінною від зовнішньої URL-адреси сервера API (автоматично визначеною або перевизначеною за допомогою external-hostname).
--service-account-key-file strings
File containing PEM-encoded x509 RSA or ECDSA private or public keys, used to verify ServiceAccount tokens. The specified file can contain multiple keys, and the flag can be specified multiple times with different files. If unspecified, --tls-private-key-file is used. Must be specified when --service-account-signing-key-file is provided
--service-account-lookup Типово: true
Якщо true, підтвердити наявність токенів ServiceAccount в etcd як частину автентифікації.
--service-account-max-token-expiration duration
Максимальний термін дії токена, створеного емітентом токенів службового облікового запису. Якщо запитується дійсний TokenRequest з тривалістю дії, що перевищує це значення, буде випущено токен з тривалістю дії, що дорівнює цьому значенню.
--service-account-signing-endpoint string
Шлях до сокета, який прослуховує зовнішній підписувач JWT. Цей прапорець є взаємовиключним з --service-account-signing-key-file та --service-account-key-file. Потребує увімкнення функціональної можливості gate (ExternalServiceAccountTokenSigner)
--service-account-signing-key-file string
Шлях до файлу, який містить поточний приватний ключ емітента токенів службового облікового запису. Цим приватним ключем емітент підписуватиме видані токени ідентифікаторів.
--service-cluster-ip-range string
Діапазон IP-адрес у нотації CIDR, з якого призначаються сервісні кластерні IP-адреси. Він не повинен перетинатися з будь-якими діапазонами IP, призначеними вузлам або Podʼами. Максимальний допустимий діапазон — два двостекових CIDR.
--service-node-port-range <a string in the form 'N1-N2'> Типово: 30000-32767
Діапазон портів для резервування для сервісів з видимістю NodePort. Він не повинен перетинатися з ефемерним діапазоном портів на вузлах. Приклад: '30000-32767'. Включно з обох кінців діапазону.
--show-hidden-metrics-for-version string
Попередня версія, для якої ви хочете показати приховані метрики. Значення має лише попередня мінорна версія, інші значення не будуть дозволені. Формат: <major>.<minor>, наприклад: '1.16'. Мета цього формату - переконатися, що ви маєте можливість помітити, що наступний реліз приховує додаткові метрики, замість того, щоб дивуватися, коли вони будуть назавжди вилучені в наступному релізі.
--shutdown-delay-duration duration
Час затримки завершення роботи. Протягом цього часу сервер продовжує обслуговувати запити у звичайному режимі. Точки доступу /healthz і /livez повертатимуть успішне завершення, але /readyz одразу ж поверне помилку. Належне завершення роботи почнється після закінчення цієї затримки. Це може бути використано для того, щоб дозволити балансувальнику навантаження припинити надсилання трафіку на цей сервер.
--shutdown-send-retry-after
Якщо значення true, HTTP-сервер продовжуватиме прослуховування доти, доки всі недовготривалі запити у процесі виконання не будуть вичерпані, під час цього вікна всі вхідні запити будуть відхилені з кодом статусу 429 та заголовком відповіді "Retry-After", крім того, встановлюється заголовок відповіді "Connection: close" для того, щоб розірвати TCP-зʼєднання, коли воно не виконується.
Цей параметр, якщо його встановлено, вказує на максимальну тривалість пільгового періоду, протягом якого apiserver буде чекати, поки активні запити watch не вичерпаються під час вікна належного вимкнення сервера.
--storage-backend string
Бекенд сховища для збереження даних. Параметри: 'etcd3' (стандартно).
Тип носія для зберігання обʼєктів у сховищі. Деякі ресурси або бекенди сховища можуть підтримувати лише певний тип носія і ігноруватимуть цей параметр. Підтримувані медіа-типи: [application/json, application/yaml, application/vnd.kubernetes.protobuf].
--strict-transport-security-directives strings
Список директив для HSTS через кому. Якщо цей список порожній, то директиви HSTS не будуть додані. Приклад: 'max-age=31536000,includeSubDomains,preload'
--tls-cert-file string
Файл, що містить стандартний сертифікат x509 для HTTPS. (Сертифікат центру сертифікації, якщо такий є, додається після сертифіката сервера). Якщо HTTPS-сервіс увімкнено, а --tls-cert-file і --tls-private-key-file не вказано, для публічної адреси буде згенеровано самопідписаний сертифікат і ключ, які буде збережено в теці, вказаній в --cert-dir.
--tls-cipher-suites strings
Розділений комами список наборів шифрів для сервера. Якщо не вказано, буде використано стандартний набір шифрів Go. Значення, яким надається перевага: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256. Небезпечні значення: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_RC4_128_SHA.
--tls-curve-preferences int32Slice Default: []
Список числових значень Go crypto/tls CurveID, розділених комами, як дозволені механізми обміну ключами для сервера. Підтримувані значення залежать від версії Go, що використовується. Див. https://pkg.go.dev/crypto/tls#CurveID для значень, підтримуваних для кожної версії Go. Порядок списку ігнорується, а механізми обміну ключами обираються Go з цього списку за внутрішнім порядком переваг. Якщо не вказано, будуть використані стандартні криві Go.
--tls-min-version string
Мінімальна підтримувана версія TLS. Можливі значення: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
--tls-private-key-file string
Файл, що містить стандартний приватний ключ x509, який відповідає --tls-cert-file.
--tls-sni-cert-key string
Пара шляхів до файлів сертифіката x509 і приватного ключа, до яких за бажанням додається список доменних шаблонів, які є повними доменними іменами, можливо, з префіксальними підстановчими сегментами. Доменні шаблони також дозволяють використовувати IP-адреси, але IP-адреси слід використовувати лише в тому випадку, якщо apiserver має доступ до IP-адреси, запитуваної клієнтом. Якщо шаблони домену не надано, витягуються імена сертифікатів. Збіги без підстановочних знаків мають перевагу над збігами з підстановочними знаками, а явні шаблони доменів мають перевагу над отриманими іменами. Для кількох пар ключ/сертифікат використовуйте --tls-sni-cert-key кілька разів. Приклади: "example.crt,example.key" або "foo.crt,foo.key:*.foo.com,foo.com".
--token-auth-file string
Якщо встановлено, файл, який буде використано для захисту захищеного порту сервера API за допомогою автентифікації за допомогою токенів.
--tracing-config-file string
Файл з конфігурацією трасування apiserver.
-v, --v int
число рівня деталізації логу
--version version[=true]
--version, --version=raw виводить інформацію про версію та виходить; --version=vX.Y.Z... встановлює вказану версію
--vmodule pattern=N,...
список параметрів pattern=N, розділених комами, для файлового фільтрування логу (працює лише для текстового формату логу).
--watch-cache Типово: true
Увімкніть кешування watch в apiserver
--watch-cache-sizes strings
Налаштування розміру кешу для деяких ресурсів (pods, nodes і т.д.), через кому. Формат індивідуальних налаштувань: resource[.group]#size, де resource — малі літери множини (без версії), group пропущено для ресурсів apiVersion v1 (застаріле ядро API) і включено для інших, а size — число. Цей параметр має значення лише для ресурсів, вбудованих у apiserver, а не для ресурсів, визначених CRD або зібраних із зовнішніх серверів, і використовується лише у випадку, якщо увімкнено watch-cache. Єдиним допустимим значенням розміру є нуль, що означає вимкнення кешування watch для відповідного ресурсу; усі ненульові значення є еквівалентними і означають, що кешування для цього ресурсу не вимкнено.
13.4 - kube-controller-manager
Огляд
Менеджер контролерів Kubernetes — це демон, який вбудовує основні цикли керування, що постачаються з Kubernetes. У робототехніці та автоматизації автоматизації, цикл керування — це нескінченний цикл, який регулює стан системи. У Kubernetes контролер — це цикл керування, який відстежує спільний стан кластера через apiserver і вносить зміни, намагаючись перевести поточний стан у бажаний. Приклади контролерів, які постачаються з Kubernetes сьогодні це контролер реплікації, контролер точок доступу, контролер просторів імен та контролер службових облікових записів.
kube-controller-manager [flags]
Параметри
--allocate-node-cidrs
Чи повинні CIDR для Podʼів бути виділені та налаштовані хмарним провайдером. Вимагає --cluster-cidr.
--allow-metric-labels stringToString Типово: []
Зіставляє metric-label зі списком дозволених значень цієї мітки. Формат ключа — <MetricName>,<LabelName>. Формат значення — <дозволене_значення>,<дозволене_значення>...наприклад, metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'.
--allow-metric-labels-manifest string
Шлях до файлу маніфесту, який містить зіставлення allow-list. Формат файлу такий самий, як і у прапорця --allow-metric-labels, напр., allowListMapping: "metric1,label1": "value11,value12" "metric2,label2": "" Зауважте, що прапорець --allow-metric-labels замінить файл маніфесту.
Час очікування синхронізації узгоджувача між приєднанням та відʼєднанням томів. Ця тривалість має бути більшою за одну секунду, і збільшення цього значення порівняно зі стандартним може призвести до того, що томи не будуть збігатися з Podʼами.
--authentication-kubeconfig string
файл kubeconfig, що вказує на 'core' сервер kubernetes з достатніми правами для створення tokenreviews.authentication.k8s.io. Цей параметр не є обовʼязковим. Якщо він порожній, всі запити токенів вважаються анонімними, і жоден клієнтський центр сертифікації не шукається в кластері.
--authentication-skip-lookup
Якщо значення false, authentication-kubeconfig буде використано для пошуку відсутньої конфігурації автентифікації в кластері.
Тривалість кешування відповідей від автентифікатора токенів webhook.
--authentication-tolerate-lookup-failure
Якщо це значення встановлено, невдачі у пошуку відсутньої конфігурації автентифікації в кластері не вважатимуться фатальними. Зауважте, що це може призвести до автентифікації, яка розглядає всі запити як анонімні.
Список HTTP-шляхів, які пропускаються під час авторизації, тобто авторизуються без звʼязку з 'core' сервером kubernetes.
--authorization-kubeconfig string
файл kubeconfig, що вказує на 'core' сервер kubernetes з достатніми правами для створення subjectaccessreviews.authorization.k8s.io. Цей параметр не є обовʼязковим. Якщо він порожній, всі запити, не пропущені авторизацією, будуть заборонені.
Тривалість кешування 'unauthorized' відповідей від авторизатора вебхука.
--bind-address string Типово: 0.0.0.0
IP-адреса, на якій буде прослуховуватися порт --secure-port. Відповідний інтерфейс(и) має бути доступним для решти кластера, а також для CLI/веб-клієнтів. Якщо цей параметр не вказано або вказано невизначену адресу (0.0.0.0 або ::), будуть використані всі інтерфейси та сімейства IP-адрес.
--cert-dir string
Тека, в якій знаходяться TLS-сертифікати. Якщо вказано --tls-cert-file та --tls-private-key-file, цей прапорець буде проігноровано.
Якщо встановлено, будь-який запит, що надає клієнтський сертифікат, підписаний одним із центрів сертифікації у клієнтському файлі, буде автентифіковано за допомогою ідентифікатора, що відповідає загальному імені клієнтського сертифіката.
--cloud-config string
Шлях до файлу конфігурації хмарного провайдера. Порожній рядок, якщо файл конфігурації відсутній.
--cloud-provider string
Провайдер хмарних сервісів. Порожній рядок для відсутності провайдера.
--cluster-cidr string
Діапазон CIDR для вузлів у кластері. Використовується лише коли --allocate-node-cidrs=true; якщо false, цей параметр буде проігноровано.
--cluster-name string Типово: "kubernetes"
Префікс екземпляру для кластера.
--cluster-signing-cert-file string
Файл, що містить PEM-кодований сертифікат X509 CA, який використовується для випуску кластерних сертифікатів. Якщо вказано, можна не вказувати більш специфічний прапорець --cluster-signing-*.
Буде вказано максимальний термін дії підписаних сертифікатів. Окремі CSR можуть запитувати коротші сертифікати, встановивши spec.expirationSeconds.
--cluster-signing-key-file string
Імʼя файлу, що містить PEM-кодований закритий ключ RSA або ECDSA, який використовується для підпису кластерних сертифікатів. Якщо вказано, не можна вказувати більш специфічний прапорець --cluster-signing-*.
Файл, що містить PEM-кодований сертифікат X509 CA, який використовується для випуску сертифікатів для підписувача kubernetes.io/kube-apiserver-client. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
Файл, що містить PEM-кодований приватний ключ RSA або ECDSA, який використовується для підпису сертифікатів для підписувача kubernetes.io/kube-apiserver-client. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
--cluster-signing-kubelet-client-cert-file string
Файл, що містить PEM-кодований сертифікат X509 CA, який використовується для випуску сертифікатів для підписувача kubernetes.io/kube-apiserver-client-kubelet. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
--cluster-signing-kubelet-client-key-file string
Файл, що містить PEM-кодований приватний ключ RSA або ECDSA, який використовується для підпису сертифікатів для підписувача kubernetes.io/kube-apiserver-client-kubelet. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
Файл, що містить PEM-кодований сертифікат X509 CA, який використовується для випуску сертифікатів для підписувача kubernetes.io/kubelet-serving. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
--cluster-signing-kubelet-serving-key-file string
Файл, що містить PEM-кодований приватний ключ RSA або ECDSA, який використовується для підпису сертифікатів для підписувача kubernetes.io/kubelet-serving. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
--cluster-signing-legacy-unknown-cert-file string
Файл, що містить PEM-кодований сертифікат X509 CA, який використовується для видачі сертифікатів для підписувача kubernetes.io/legacy-unknown. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
--cluster-signing-legacy-unknown-key-file string
Файл, що містить PEM-кодований приватний ключ RSA або ECDSA, який використовується для підпису сертифікатів для kubernetes.io/legacy-unknown signer. Якщо вказано, --cluster-signing-{cert,key}-file не має бути задано.
--concurrent-cron-job-syncs int32 Типово: 5
Кількість обʼєктів завдання cron, яким дозволено синхронізуватися одночасно. Більша кількість = швидше реагують завдання, але більше навантаження на процесор (і мережу)
--concurrent-daemonset-syncs int32 Default: 2
Кількість обʼєктів daemonset, яким дозволено синхронізуватися одночасно. Більша кількість = більш чутливі daemonset, але більше навантаження на процесор (і мережу)
--concurrent-deployment-syncs int32 Типово: 5
Кількість обʼєктів deployment, яким дозволено синхронізуватися одночасно. Більша кількість = швидше розгортання, але більше навантаження на процесор (і мережу)
Кількість операцій (видалення подів, оновлення статусу DeviceTaintRule), які можна виконувати одночасно. Більше число = краща реакція, але більше навантаження на CPU (і мережу).
--concurrent-endpoint-syncs int32 Типово: 5
Кількість операцій синхронізації точок доступу, які будуть виконуватися одночасно. Більша кількість = швидше оновлення точок доступу, але більше навантаження на процесор (і мережу)
Кількість операцій синхронізації ефемерних томів, які будуть виконуватися одночасно. Більша кількість = швидше оновлення ефемерних томів, але більше навантаження на процесор (і мережу)
Кількість обʼєктів Job, яким дозволено синхронізуватися одночасно. Більша кількість = швидше реагують завдання, але більше навантаження на процесор (і мережу)
--concurrent-namespace-syncs int32 Типово: 10
Кількість обʼєктів namespace, яким дозволено синхронізуватися одночасно. Більша кількість = більш оперативне завершення роботи простору імен, але більше навантаження на процесор (і мережу)
--concurrent-rc-syncs int32 Типово: 5
Кількість контролерів реплікації, яким дозволено синхронізуватися одночасно. Більша кількість = більш оперативне керування реплікацією, але більше навантаження на процесор (і мережу)
--concurrent-replicaset-syncs int32 Типово: 5
Кількість replica set, які дозволено синхронізувати одночасно. Більша кількість = більш оперативне керування реплікацією, але більше навантаження на процесор (і мережу)
--concurrent-resource-quota-syncs int32 Типово: 5
Кількість квот ресурсів, які дозволено синхронізувати одночасно. Більша кількість = більш оперативне керування квотами, але більше навантаження на процесор (і мережу)
--concurrent-resourceclaim-syncs int32 Типово: 50
Кількість операцій (створення або видалення ResourceClaims), які дозволено виконувати одночасно. Більша кількість = більш оперативне реагування, але більше навантаження на процесор (і мережу)
Кількість операцій синхронізації точок доступу сервісів, які будуть виконуватися одночасно. Чим більше число, тим швидше оновлюватиметься зріз кінцевих точок, але більше завантажуватиметься процесор (і мережа). Стандартно дорівнює 5.
--concurrent-service-syncs int32 Типово: 1
Кількість сервісів, яким дозволено синхронізуватися одночасно. Більша кількість = більш оперативне управління послугами, але більше навантаження на процесор (і мережу)
Кількість обʼєктів токенів службових облікових записів, яким дозволено синхронізуватися одночасно. Більша кількість = швидша генерація токенів, але більше навантаження на процесор (і мережу)
--concurrent-statefulset-syncs int32 Типово: 5
Кількість обʼєктів statefulset, яким дозволено синхронізуватися одночасно. Більша кількість = більш швидкодіючі statefulsets, але більше навантаження на процесор (і мережу)
Вимкнути синхронізацію узгоджувача приєднання томів. Вимкнення цієї опції може призвести до невідповідності томів і Podʼів. Використовуйте з обережністю.
Якщо значення true, HTTP2-сервіс буде вимкнено [default=false].
--disabled-metrics strings
Цей прапорець забезпечує аварійний вихід для метрик, що поводяться не належним чином. Щоб вимкнути метрику, ви маєте вказати її повну назву. Застереження: вимкнення метрик має вищий пріоритет, ніж показ прихованих метрик.
--emulated-version strings
У версіях різні компоненти емулюють свої можливості (API, функції, ...) інших компонентів. Якщо встановлено, компонент буде емулювати поведінку цієї версії замість базової двійкової версії. Формат версії може бути лише major.minor, наприклад: '--emulated-version=wardle=1.2,kube=1.31'. Можливі варіанти: kube=1.33..1.36 (default=1.36) Якщо компонент не вказано, стандартно використовується "kube"
--enable-dynamic-provisioning Типово: true
Увімкніть динамічне створення ресурсів для середовищ, які його підтримують.
--enable-garbage-collector Типово: true
Вмикає загальний збирач сміття. ПОВИНЕН бути синхронізований з відповідним прапорцем kube-apiserver.
--enable-hostpath-provisioner
Вмикає забезпечення HostPath PV під час роботи без хмарного провайдера. Це дозволяє тестувати та розробляти функції резервування. HostPath provisioning не підтримується жодним чином, не працюватиме в багатовузловому кластері і не повинен використовуватися ні для чого іншого, окрім тестування або розробки.
--enable-leader-migration
Чи вмикати міграцію лідера контролера.
--endpoint-updates-batch-period duration
Тривалість періоду пакетного оновлення точок доступу. Обробка змін у пакунках буде затримана на цей час, щоб обʼєднати їх з потенційними майбутніми оновленнями і зменшити загальну кількість оновлень точок доступу. Більша кількість = більша затримка програмування точок доступу, але менша кількість згенерованих ревізій точок доступу
--endpointslice-updates-batch-period duration
Тривалість періоду пакетного оновлення зрізу точок доступу. Обробка змін у пакунках буде затримана на цей час, щоб обʼєднати їх з потенційними майбутніми оновленнями і зменшити загальну кількість оновлень точок доступу. Більша кількість = більша затримка програмування точок доступу, але менша кількість згенерованих ревізій точок доступу
--external-cloud-volume-plugin string
Втулок для використання, коли хмарний провайдер встановлений як зовнішній. Може бути порожнім, слід встановлювати лише тоді, коли хмарний провайдер є зовнішнім. Наразі використовується для дозволу роботи node-ipam-controller, persistentvolume-binder-controller, persistentvolume-expander-controller та attach-detach-controller у вбудованих хмарних провайдерів.
QPS для використання під час спілкування з kubernetes apiserver.
--kubeconfig string
Шлях до файлу kubeconfig з інформацією про авторизацію та розташування майстра (розташування майстра може бути перевизначено прапорцем master).
--large-cluster-size-threshold int32 Типово: 50
Кількість вузлів, з яких node-lifecycle-controller вважає кластер великим для цілей логіки виселення. --secondary-node-eviction-rate неявно перевизначено у 0 для кластерів такого розміру або менших. Зауваження: Якщо вузли знаходяться у декількох зонах, цей поріг буде розглядатися як поріг розміру вузла зони для кожної зони, щоб визначити швидкість виселення вузла незалежно.
--leader-elect Типово: true
Запускає клієнта виборів лідера і отримує лідерство перед виконанням основного циклу. Увімкніть цю опцію під час запуску реплікованих компонентів для забезпечення високої доступності.
Тривалість, протягом якої кандидати, що не є лідерами, чекатимуть після поновлення лідерства, перш ніж спробувати зайняти лідерство в лідируючому, але не поновленому лідерському слоті. Це фактично максимальний час, протягом якого лідер може бути зупинений, перш ніж його замінить інший кандидат. Це застосовується лише у тому випадку, якщо вибори лідера увімкнені.
Інтервал між спробами виконуючого обовʼязки майстра поновити слот лідера до того, як він перестане бути лідером. Він має бути меншим за тривалість оренди. Це застосовується лише у тому випадку, якщо вибори лідера увімкнені.
Простір імен обʼєкта ресурсу, який використовується для блокування під час виборів лідера.
--leader-elect-retry-period duration Типово: 2s
Час, протягом якого клієнти повинні чекати між спробою отримання та поновленням лідерства. Це стосується лише тих випадків, коли увімкнено обрання лідера.
--leader-migration-config string
Шлях до конфігураційного файлу для міграції лідера контролерів або порожній, щоб використовувати значення, яке є стандартною конфігурацією диспетчера контролерів. Конфігураційний файл має бути типу LeaderMigrationConfiguration, група controllermanager.config.k8s.io, версія v1alpha1.
Період часу з моменту останнього використання токену застарілого облікового запису до його видалення.
--log-flush-frequency duration Типово: 5s
Максимальна кількість секунд між очищеннями логів
--log-text-info-buffer-size quantity
[Alpha] У текстовому форматі з розділеними потоками виводу інформаційні повідомлення можуть буферизуватися на деякий час для підвищення продуктивності. Стандартне значення, рівне нулю байт, вимикає буферизацію. Розмір можна вказати як кількість байт (512), кратну 1000 (1K), кратну 1024 (2Ki) або степінь (3M, 4G, 5Mi, 6Gi). Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--log-text-split-stream
[Alpha] У текстовому форматі записувати повідомлення про помилки до stderr та інформаційні повідомлення до stdout. Стандартно до stdout записується один потік. Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--logging-format string Типово: "text"
Задає формат логу. Дозволені формати: "text".
--master string
Адреса сервера API Kubernetes (перевизначає будь-яке значення в kubeconfig).
--max-endpoints-per-slice int32 Типово: 100
Максимальна кількість точок доступу, яку буде додано до зрізу EndpointSlice. Чим більше точок на зріз, тим менше зрізів точок, але більші ресурси. Стандартне значення — 100.
--min-compatibility-version strings
Мінімальна версія компонентів панелі управління, з якою повинен бути сумісний сервер. Повинна бути меншою або дорівнювати емульованій версії. Формат версії може бути тільки major.minor, наприклад: '--min-compatibility-version=wardle=1.2,kube=1.31'. Варіанти: kube=1.33..1.36 (default: 1.35) Якщо компонент не вказано, стандартно використовується "kube"
--min-resync-period duration Типово: 12h0m0s
Період ресинхронізації у рефлекторах буде випадковим між MinResyncPeriod та 2*MinResyncPeriod.
Кількість операцій синхронізації точок доступу сервісів, які будуть виконуватися одночасно контролером endpointslice-mirroring-controller. Більша кількість = швидше оновлення зрізу точок доступу, але більше навантаження на процесор (і мережу). Стандартне значення — 5.
Тривалість періоду пакетного оновлення EndpointSlice для контролера endpointslice-mirroring-controller. Обробка змін EndpointSlice буде затримана на цей період, щоб обʼєднати їх з потенційними майбутніми оновленнями і зменшити загальну кількість оновлень EndpointSlice. Більша кількість = більша затримка програмування точок доступу, але менша кількість згенерованих ревізій точок доступу
Максимальна кількість точок доступу, яку буде додано до зрізу EndpointSlice контролером endpointslice-mirroring-controller. Чим більше точок на зріз, тим менше зрізів точок, але більші ресурси. Стандартно дорівнює 100.
--namespace-sync-period duration Типово: 5m0s
Період синхронізації оновлень життєвого циклу простору імен
--node-cidr-mask-size int32
Розмір маски для вузла cidr у кластері. Стандартне значення 24 для IPv4 та 64 для IPv6.
--node-cidr-mask-size-ipv4 int32
Розмір маски для IPv4 вузла cidr у двостековому кластері. Стандартне значення — 24.
--node-cidr-mask-size-ipv6 int32
Розмір маски для IPv6 вузла cidr у двостековому кластері. Стандартне значення — 64.
--node-eviction-rate float Типово: 0.1
Кількість вузлів на секунду, на яких видаляються підтипи у випадку відмови вузла, коли зона є справною (див. --unhealthy-zone-threshold для визначення справності/несправності зони). Під зоною мається на увазі весь кластер у небагатозонних кластерах.
--node-monitor-grace-period duration Типово: 50s
Кількість часу, протягом якого ми дозволяємо вузлу не відповідати на запити, перш ніж позначити його як несправний. Має бути у N разів більшою за nodeStatusUpdateFrequency kubelet, де N означає кількість спроб, дозволених kubelet для публікації статусу вузла. Це значення також має бути більшим за суму HTTP2_PING_TIMEOUT_SECONDS і HTTP2_READ_IDLE_TIMEOUT_SECONDS
--node-monitor-period duration Типово: 5s
Період синхронізації NodeStatus у контролері cloud-node-lifecycle-controller.
--node-startup-grace-period duration Типово: 1m0s
Час, протягом якого ми дозволяємо стартовому вузлу не відповідати, перш ніж позначити його як несправний.
--permit-address-sharing
Якщо це значення дорівнює true, SO_REUSEADDR буде використано при привʼязці порту. Це дозволяє паралельно привʼязуватись до підстановочних IP-адрес, таких як 0.0.0.0, і до конкретних IP-адрес, а також дозволяє уникнути очікування ядром звільнення сокетів у стані TIME_WAIT. [default=false]
--permit-port-sharing
Якщо значення true, SO_REUSEPORT буде використано при привʼязці порту, що дозволяє більш ніж одному екземпляру привʼязуватися до тієї самої адреси та порту. [default=false]
--profiling Типово: true
Вмикання профілювання через веб-інтерфейс host:port/debug/pprof/
Мінімальне значення ActiveDeadlineSeconds, яке потрібно використовувати для HostPath Recycler pod. Це лише для розробки та тестування і не працюватиме у багатовузловому кластері.
Шлях до файлу з визначенням тома, який використовується як шаблон для переробки постійного тома HostPath. Він призначений лише для розробки та тестування і не працюватиме у багатовузловому кластері.
--pv-recycler-pod-template-filepath-nfs string
Шлях до файлу з визначенням pod, який використовується як шаблон для рециркуляції постійних томів NFS
інкремент часу, що додається до ActiveDeadlineSeconds на кожен Gi, для HostPath Pod scrubber. Це призначено лише для розробки та тестування і не працюватиме у багатовузловому кластері.
--pvclaimbinder-sync-period duration Типово: 15s
Період синхронізації постійних томів і заявок на постійні томи
--requestheader-allowed-names strings
Список загальних імен клієнтських сертифікатів, щоб дозволити вказувати імена користувачів у заголовках, визначених параметром --requestheader-username-headers. Якщо він порожній, можна використовувати будь-який сертифікат клієнта, підтверджений центрами сертифікації у файлі --requestheader-client-ca-file.
--requestheader-client-ca-file string
Пакет кореневих сертифікатів для перевірки клієнтських сертифікатів на вхідних запитах перед тим, як довіряти іменам користувачів у заголовках, визначених параметром --requestheader-username-headers. ПОПЕРЕДЖЕННЯ: зазвичай не залежить від авторизації, яку вже виконано для вхідних запитів.
Період синхронізації статусу використання квоти в системі
--root-ca-file string
Якщо встановлено, цей кореневий центр сертифікації буде включено до токену секрету службового облікового запису. Це має бути дійсний пакет центрів сертифікації з PEM-кодуванням.
Період узгодження маршрутів, створених для Node хмарним провайдером.
--secondary-node-eviction-rate float Типово: 0.01
Кількість вузлів на секунду, на яких видаляються pods у разі відмови вузла, коли зона є несправною (див. --unhealthy-zone-threshold для визначення healthy/unhealthy зони). Під зоною мається на увазі весь кластер у небагатозонних кластерах. Це значення неявно перевизначається на 0, якщо розмір кластера менший за --large-cluster-size-threshold.
--secure-port int Типово: 10257
Порт, на якому обслуговувати HTTPS з автентифікацією та авторизацією. Якщо 0, не обслуговувати HTTPS взагалі.
--service-account-private-key-file string
Вмикає застарілі токени на основі секретності, якщо встановлено. Файл, що містить приватний ключ RSA або ECDSA, закодований PEM, який використовується для підпису токенів службових облікових записів.
--service-cluster-ip-range string
Діапазон CIDR для Services у кластері. Використовується лише коли --allocate-node-cidrs=true; якщо false, цей параметр буде проігноровано.
--show-hidden-metrics-for-version string
Попередня версія, для якої ви хочете показати приховані метрики. Значення має лише попередня мінорна версія, інші значення не будуть дозволені. Формат: <major>.<minor>, наприклад: '1.16'. Мета цього формату — переконатися, що ви маєте можливість помітити, що наступний реліз приховує додаткові метрики, замість того, щоб дивуватися, коли вони будуть назавжди вилучені в наступному релізі.
--terminated-pod-gc-threshold int32 Типово: 12500
Кількість podʼів, що завершили роботу, які можуть існувати до того, як збирач завершених podʼів почне їх видалення. Якщо <= 0, то збирач завершених podʼів вимкнено.
--tls-cert-file string
Файл, що містить стандартний сертифікат x509 для HTTPS. (Сертифікат центру сертифікації, якщо такий є, додається після сертифіката сервера). Якщо HTTPS-сервіс увімкнено, а --tls-cert-file і --tls-private-key-file не вказано, для публічної адреси буде згенеровано самопідписаний сертифікат і ключ, які буде збережено в теці, вказаній в --cert-dir.
--tls-cipher-suites strings
Розділений комами список наборів шифрів для сервера. Якщо не вказано, буде використано стандартний набір шифрів Go. Значення, яким надається перевага: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256. Небезпечні значення: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_RC4_128_SHA.
--tls-curve-preferences int32Slice Типово: []
Список числових значень Go crypto/tls CurveID, розділених комами, як дозволені механізми обміну ключами для сервера. Підтримувані значення залежать від версії Go, що використовується. Див. https://pkg.go.dev/crypto/tls#CurveID для значень, підтримуваних для кожної версії Go. Порядок списку ігнорується, а механізми обміну ключами обираються Go з цього списку за внутрішнім порядком переваг. Якщо не вказано, будуть використані стандартні криві Go.
--tls-min-version string
Мінімальна підтримувана версія TLS. Можливі значення: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
--tls-private-key-file string
Файл, що містить стандартний приватний ключ x509, який відповідає --tls-cert-file.
--tls-sni-cert-key string
Пара шляхів до файлів сертифіката x509 і приватного ключа, до яких за бажанням додається список шаблонів доменів, які є повними доменними іменами, можливо, з префіксальними підстановчими сегментами. Доменні шаблони також дозволяють використовувати IP-адреси, але IP-адреси слід використовувати лише в тому випадку, якщо apiserver має доступ до IP-адреси, запитуваної клієнтом. Якщо шаблони домену не надано, витягуються імена сертифікатів. Збіги без підстановочних знаків мають перевагу над збігами з підстановочними знаками, а явні шаблони доменів мають перевагу над отриманими іменами. Для кількох пар ключ/сертифікат використовуйте --tls-sni-cert-key кілька разів. Приклади: "example.crt,example.key" або "foo.crt,foo.key:*.foo.com,foo.com".
--unhealthy-zone-threshold float Типово: 0.55
Частка вузлів у зоні, яка не повинна бути Ready (мінімум 3) для того, щоб зона вважалася несправною.
--use-service-account-credentials
Якщо true, використовуйте окремі облікові дані для кожного контролера.
-v, --v int
число для визначення ступеня деталізації логу
--version version[=true]
--version, --version=raw виводить інформацію про версію та виходить; --version=vX.Y.Z... встановлює вказану версію
--vmodule pattern=N,...
список параметрів pattern=N, розділених комами, для файлового фільтрування логу (працює лише для текстового формату логу).
13.5 - kube-proxy
Огляд
Мережевий проксі-сервер Kubernetes працює на кожному вузлі. Це відображає сервіси, визначені у Kubernetes API, на кожному вузлі і може виконувати просте перенаправлення потоків TCP, UDP і SCTP або циклічне перенаправлення TCP, UDP і SCTP через набір бекендів. Наразі IP-адреси та порти кластерів обслуговування можна знайти за допомогою сумісних з Docker-посиланнями змінні оточення, що визначають порти, відкриті проксі-сервісом. Існує надбудова яка надає кластерний DNS для цих кластерних IP-адрес. Користувач повинен створити сервіс за допомогою API apiserver, щоб налаштувати проксі.
kube-proxy [flags]
Параметри
--add_dir_header
Якщо true, додає теку файлу до заголовка повідомлень логу
--alsologtostderr
виводити лог до stderr, а також у файли (не має ефекту, якщо -logtostderr=true)
--alsologtostderrthreshold int
Логи з цим або вище цього порогу будуть виводитися в stderr, коли -alsologtostderr=true (не має ефекту, коли -logtostderr=true)
--bind-address string Типово: 0.0.0.0
Перевизначає уявлення kube-proxy про первинну IP-адресу вузла. Зауважте, що назва є історичним артефактом, і kube-proxy насправді не привʼязує жодних сокетів до цього IP. Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
--bind-address-hard-fail
Якщо true, kube-proxy розцінить невдалу спробу звʼязатися з портом як фатальну і завершить роботу
--cleanup
Якщо true, очистіть iptables та правила ipvs і вийдіть.
--cluster-cidr string
Діапазон CIDR для Podʼів у кластері. (Для двостекових кластерів це може бути пара діапазонів CIDR, розділених комами). Коли --detect-local-mode має значення ClusterCIDR, kube-proxy вважатиме трафік локальним, якщо IP-адреса його джерела знаходиться в цьому діапазоні. (В іншому випадку він не використовується.) Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
--config string
Шлях до файлу конфігурації.
--config-sync-period duration Типово: 15m0s
Як часто оновлюється конфігурація з apiserver. Повинно бути більше 0.
--conntrack-max-per-core int32 Типово: 32768
Максимальна кількість NAT-зʼєднань для відстеження на одне ядро процесора (0 — залишити ліміт як є і ігнорувати conntrack-min).
--conntrack-min int32 Типово: 131072
Мінімальна кількість записів conntrack для розподілу, незалежно від conntrack-max-per-core (встановіть conntrack-max-per-core=0, щоб залишити обмеження без змін).
--conntrack-tcp-be-liberal
Увімкніть ліберальний режим відстеження TCP-пакетів, встановивши nf_conntrack_tcp_be_liberal у 1
IP-адреса та порт для сервера перевірки справності, стандартно "0.0.0.0:10256". Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
-h, --help
Довідка kube-proxy
--hostname-override string
Якщо не порожнє, буде використано як імʼя вузла, на якому запущено kube-proxy. Якщо не задано, імʼя вузла вважається таким самим, як і імʼя хоста вузла.
--init-only
Якщо true, виконайте всі кроки ініціалізації, які необхідно виконати з повними привілеями root, а потім вийдіть. Після цього ви можете запустити kube-proxy знову, але тільки з параметром CAP_NET_ADMIN.
--iptables-localhost-nodeports Типово: true
Якщо значення false, kube-proxy вимкне застарілу поведінку, яка дозволяла доступ до сервісів NodePort через localhost. (Стосується лише режиму iptables та IPv4; NodePort через localhost ніколи не буде дозволено в інших режимах проксі або з IPv6).
--iptables-masquerade-bit int32 Типово: 14
Якщо використовується режим проксі iptables або ipvs, біт простору fwmark, яким слід позначати пакети, що вимагають SNAT. Повинен знаходитися в діапазоні [0, 31].
--iptables-min-sync-period duration Типово: 1s
Мінімальний період між пересинхронізаціями правил iptables (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайного пересинхронізації iptables.
--iptables-sync-period duration Типово: 30s
Інтервал (наприклад, '5s', '1m', '2h22m'), який вказує, як часто виконуються різні операції ресинхронізації та очищення. Має бути більше 0.
--ipvs-exclude-cidrs strings
Список CIDR, розділених комами, які ipvs-проксі-сервер не повинен торкатися під час очищення правил IPVS.
--ipvs-min-sync-period duration Типово: 1s
Мінімальний період між ресинхронізаціями правил IPVS (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної пересинхронізації IPVS.
--ipvs-scheduler string
Тип планувальника ipvs, якщо режим проксі — ipvs
--ipvs-strict-arp
Увімкніть строгий ARP, встановивши arp_ignore на 1 і arp_announce на 2
--ipvs-sync-period duration Типово: 30s
Інтервал (наприклад, '5s', '1m', '2h22m'), який вказує, як часто виконуються різні операції ресинхронізації та очищення. Має бути більше 0.
--ipvs-tcp-timeout duration
Тайм-аут для неактивних TCP-зʼєднань IPVS, 0 — залишити як є. (наприклад, '5s', '1m', '2h22m').
--ipvs-tcpfin-timeout duration
Тайм-аут для IPVS TCP-зʼєднань після отримання FIN-пакету, 0 —
залишити як є. (наприклад, '5s', '1m', '2h22m').
--ipvs-udp-timeout duration
Таймаут для IPVS UDP-пакетів, 0 — залишити як є. (наприклад, '5s', '1m', '2h22m').
--kube-api-burst int32 Типово: 10
Сплеск для використання під час спілкування з apiserver на kubernetes.
Використання QPS під час спілкування з apiserver на kubernetes
--kubeconfig string
Шлях до файлу kubeconfig з інформацією про авторизацію (розташування master може бути перевизначено прапорцем master).
--legacy_stderr_threshold_behavior Типово: true
Якщо true, stderrthreshold ігнорується, коли logtostderr=true (спадкова поведінка). Якщо false, stderrthreshold враховується навіть коли logtostderr=true
--log-flush-frequency duration Типово: 5s
Максимальна кількість секунд між очищеннями логів
--log-text-info-buffer-size quantity
[Alpha] У текстовому форматі з розділеними потоками виводу інформаційні повідомлення можуть буферизуватися на деякий час для підвищення продуктивності. Стандартне значення, рівне нулю байт, вимикає буферизацію. Розмір можна вказати як кількість байт (512), кратну 1000 (1K), кратну 1024 (2Ki) або степінь (3M, 4G, 5Mi, 6Gi). Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--log-text-split-stream
[Alpha] У текстовому форматі записувати повідомлення про помилки до stderr та інформаційні повідомлення до stdout. Стандартно до stdout записується один потік. Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--log_backtrace_at <рядок у вигляді 'file:N'> Типово: :0
при попаданні в лог-файл рядка file:N, вивести трасування стеку
--log_dir string
Якщо тека не порожня, записати лог-файли у цю теку (не діє, якщо -logtostderr=true).
--log_file string
Якщо файл не порожній, використовуйте цей файл логу (не діє, якщо -logtostderr=true)
--log_file_max_size uint Типово: 1800
Визначає максимальний розмір, до якого може зрости файл логу (не впливає, якщо -logtostderr=true). Одиниця виміру — мегабайти. Якщо значення дорівнює 0, максимальний розмір файлу необмежений.
--logging-format string Типово: "text"
Задає формат логу. Дозволені формати: "text".
--logtostderr Типово: true
писати лог в standard error, а не у файл
--masquerade-all
SNAT для всього трафіку, що надсилається через IP-кластера сервісу. Це може бути необхідним для деяких втулків CNI. Підтримується лише в Linux.
--master string
Адреса сервера API Kubernetes (перевизначає будь-яке значення в kubeconfig).
IP-адреса та порт для сервера метрик, типове значення: "127.0.0.1:10249". (Встановіть значення "0.0.0.0:10249" / "[::]:10249" для привʼязки на всіх інтерфейсах). Встановіть пусте значення, щоб вимкнути. Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
--nodeport-addresses strings
Список діапазонів CIDR, які містять допустимі IP-адреси вузлів, або, як варіант, єдиний рядок 'primary'. Якщо встановлено перелік CIDRs, зʼєднання з сервісами NodePort будуть прийматися лише з IP-адрес вузла в одному із зазначених діапазонів. Якщо встановлено значення 'primary', сервіси NodePort будуть прийматися лише на основну IP-адресу вузла згідно з обʼєктом Node. Якщо не встановлено, зʼєднання до NodePort будуть прийматися на всіх локальних IP-адресах. Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
--one_output
Якщо значення true, записувати логи лише до їхнього власного рівня важливості (замість запису до кожного нижчого рівня важливості; немає ефекту, якщо -logtostderr=true).
--oom-score-adj int32 Типово: -999
Значення oom-score-adj для процесу kube-proxy. Значення має бути в діапазоні [-1000, 1000]. Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
--pod-bridge-interface string
Імʼя інтерфейсу bridge. Коли --detect-local-mode має значення BridgeInterface, kube-proxy вважатиме трафік локальним, якщо він походить з цього мосту.
--pod-interface-name-prefix string
Префікс імені інтерфейсу. Коли --detect-local-mode має значення InterfaceNamePrefix, kube-proxy вважатиме трафік локальним, якщо він походить з будь-якого інтерфейсу, назва якого починається з цього префікса.
--profiling
Якщо значення true, вмикає профілювання через веб-інтерфейс у обробнику /debug/pprof. Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
--proxy-mode ProxyMode
Режим проксі-сервера: у Linux це може бути 'iptables' (стандартно), 'ipvs' або 'nftables'. У Windows єдиним підтримуваним значенням є 'kernelspace'. Цей параметр ігнорується, якщо у конфігураційному файлі вказано --config.
--show-hidden-metrics-for-version string
Попередня версія, для якої ви хочете показати приховані метрики. Значення має лише попередня мінорна версія, інші значення не будуть дозволені. Формат: <major>.<minor>, наприклад: '1.16'. Мета цього формату — переконатися, що ви маєте можливість помітити, що наступний реліз приховує додаткові метрики, а не дивуватися, коли вони назавжди вилучаються в наступному релізі. Цей параметр ігнорується, якщо конфігураційний файл вказано за допомогою --config.
--skip_headers
Якщо true, уникати префіксів заголовків у повідомленнях логу
--skip_log_headers
Якщо значення true, уникати заголовків при відкритті файлів логу (не впливає, якщо -logtostderr=true)
--stderrthreshold int Типово: 2
логи на рівні або вище цього порогу потрапляють до stderr під час запису до файлів та stderr (не впливає, якщо -logtostderr=true або -alsologtostderr=true, якщо -legacy_stderr_threshold_behavior=false)
-v, --v int
число рівня деталізації логу
--version version[=true]
--version, --version=raw виводить інформацію про версію та виходить; --version=vX.Y.Z... встановлює вказану версію
--vmodule pattern=N,...
список параметрів pattern=N, розділених комами, для файлового фільтрування логу (працює лише для текстового формату логу).
--write-config-to string
Якщо встановлено, записати значення стандартної конфігурації до цього файлу і вийти.
13.6 - kube-scheduler
Огляд
Планувальник Kubernetes — це процес панелі управління, який призначає Podʼи до вузлів. Планувальник визначає, які вузли є допустимими для розміщення для кожного Pod у черзі планування відповідно до обмежень та доступних ресурсів. Потім планувальник ранжує кожен допустимий вузол і привʼязує Pod до відповідного вузла. У кластері може використовуватися декілька різних планувальників; kube-scheduler є еталонною реалізацією. Див. статтю планування для отримання додаткової інформації про планування та компонент kube-scheduler.
kube-scheduler [flags]
Параметри
--allow-metric-labels stringToString Типово: []
Зіставляє метрику-мітку зі списком дозволених значень цієї мітки. Формат ключа — <MetricName>,<LabelName>. Формат значення — < allowed_value>, <allowed_value>...наприклад, metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'.
--allow-metric-labels-manifest string
Шлях до файлу маніфесту, який містить зіставлення allow-list. Формат файлу такий самий, як і у прапорця --allow-metric-labels, напр., allowListMapping: "metric1,label1": "value11,value12" "metric2,label2": "" Зауважте, що прапорець --allow-metric-labels замінить файл маніфесту.
--authentication-kubeconfig string
файл kubeconfig, що вказує на 'core' сервер kubernetes з достатніми правами для створення tokenreviews.authentication.k8s.io. Цей параметр не є обовʼязковим. Якщо він порожній, всі запити токенів вважаються анонімними, і жоден клієнтський центр сертифікації не шукається в кластері.
--authentication-skip-lookup
Якщо значення false, authentication-kubeconfig буде використано для пошуку відсутньої конфігурації автентифікації в кластері.
Якщо це значення встановлено, невдачі у пошуку відсутньої конфігурації автентифікації в кластері не вважатимуться фатальними. Зауважте, що це може призвести до автентифікації, яка розглядає всі запити як анонімні.
Список HTTP-шляхів, які пропускаються під час авторизації, тобто авторизуються без звʼязку з 'core' сервером kubernetes.
--authorization-kubeconfig string
файл kubeconfig, що вказує на 'core' сервер kubernetes з достатніми правами для створення subjectaccessreviews.authorization.k8s.io. Цей параметр не є обовʼязковим. Якщо він порожній, всі запити, не пропущені авторизацією, будуть заборонені.
Тривалість кешування 'unauthorized' відповідей від авторизатора вебхука.
--bind-address string Типово: 0.0.0.0
IP-адреса, на якій буде прослуховуватися порт --secure-port. Відповідний інтерфейс(и) має бути доступним для решти кластера, а також для CLI/веб-клієнтів. Якщо цей параметр не вказано або вказано невизначену адресу (0.0.0.0 або ::), будуть використані всі інтерфейси та сімейства IP-адрес.
--cert-dir string
Тека, в якій знаходяться TLS-сертифікати. Якщо вказано --tls-cert-file та --tls-private-key-file, цей прапорець буде проігноровано.
--client-ca-file string
Якщо встановлено, будь-який запит, що надає клієнтський сертифікат, підписаний одним із центрів сертифікації у клієнтському файлі, буде автентифіковано за допомогою ідентифікатора, що відповідає CommonName клієнтського сертифіката.
--config string
Шлях до файлу конфігурації.
--contention-profiling Типово: true
DEPRECATED: увімкнути профілювання блоків, якщо профілювання увімкнено. Цей параметр ігнорується, якщо у --config вказано конфігураційний файл.
--disable-http2-serving
Якщо значення true, HTTP2-сервіс буде вимкнено [default=false].
--disabled-metrics strings
Цей прапорець забезпечує аварійний вихід для метрик, що поводяться не належним чином. Щоб вимкнути метрику, ви маєте вказати її повну назву. Застереження: вимкнення метрик має вищий пріоритет, ніж показ прихованих метрик.
--emulated-version strings
У версіях різні компоненти емулюють свої можливості (API, функції, ...) інших компонентів. Якщо встановлено, компонент буде емулювати поведінку цієї версії замість базової двійкової версії. Формат версії може бути лише major.minor, наприклад: '--emulated-version=wardle=1.2,kube=1.31'. Можливі варіанти: kube=1.33..1.36 (default:1.36) Якщо компонент не вказано, стандартно використовується "kube"
Обмеження, яке сервер надає клієнтам на максимальну кількість потоків у зʼєднанні HTTP/2. Нуль означає використання стандартних значень golang.
--kube-api-burst int32 Типово: 100
DEPRECATED: сплеск для використання під час спілкування з apiserver'ом kubernetes. Цей параметр ігнорується, якщо у --config вказано конфігураційний файл.
DEPRECATED: тип вмісту запитів, що надсилаються до apiserver. Цей параметр ігнорується, якщо у --config вказано конфігураційний файл.
--kube-api-qps float Типово: 50
DEPRECATED: Використовувати QPS під час спілкування з apiserver'ом kubernetes. Цей параметр ігнорується, якщо у --config вказано конфігураційний файл.
--kubeconfig string
DEPRECATED: шлях до файлу kubeconfig з інформацією про авторизацію та місцезнаходження майстра. Цей параметр ігнорується, якщо у --config вказано конфігураційний файл.
--leader-elect Типово: true
Запускає клієнта виборів лідера і отримує лідерство перед виконанням основного циклу. Увімкніть цю опцію під час запуску реплікованих компонентів для забезпечення високої доступності.
Тривалість, протягом якої кандидати, що не є лідерами, чекатимуть після поновлення лідерства, перш ніж спробувати зайняти лідерство в лідируючому, але не поновленому лідерському слоті. Це фактично максимальний час, протягом якого лідер може бути зупинений, перш ніж його замінить інший кандидат. Це застосовується лише у тому випадку, якщо вибори лідера увімкнені.
Інтервал між спробами виконуючого обовʼязки майстра поновити слот лідера до того, як він перестане бути лідером. Він має бути меншим за тривалість оренди. Це застосовується лише у тому випадку, якщо вибори лідера увімкнені.
Простір імен обʼєкта ресурсу, який використовується для блокування під час виборів лідера.
--leader-elect-retry-period duration Типово: 2s
Час, протягом якого клієнти повинні чекати між спробою отримання та поновленням лідерства. Це стосується лише тих випадків, коли увімкнено обрання лідера.
--log-flush-frequency duration Типово: 5s
Максимальна кількість секунд між очищеннями логів
--log-text-info-buffer-size quantity
[Alpha] У текстовому форматі з розділеними потоками виводу інформаційні повідомлення можуть буферизуватися на деякий час для підвищення продуктивності. Стандартне значення, рівне нулю байт, вимикає буферизацію. Розмір можна вказати як кількість байт (512), кратну 1000 (1K), кратну 1024 (2Ki) або степінь (3M, 4G, 5Mi, 6Gi). Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--log-text-split-stream
[Alpha] У текстовому форматі записувати повідомлення про помилки до stderr та інформаційні повідомлення до stdout. Стандартно до stdout записується один потік. Увімкніть функцію LoggingAlphaOptions, щоб скористатися цією можливістю.
--logging-format string Типово: "text"
Задає формат логу. Дозволені формати: "text".
--master string
Адреса сервера API Kubernetes (перевизначає будь-яке значення в kubeconfig).
--min-compatibility-version strings
Мінімальна версія компонентів панелі управління, з якою повинен бути сумісний сервер. Повинна бути меншою або дорівнювати емульованій версії. Формат версії може бути тільки major.minor, наприклад: '--min-compatibility-version=wardle=1.2,kube=1.31'. Варіанти: kube=1.33..1.36 (default: 1.35) Якщо компонент не вказано, стандартно використовується "kube"
--permit-address-sharing
Якщо це значення дорівнює true, SO_REUSEADDR буде використано при привʼязці порту. Це дозволяє паралельно привʼязуватись до підстановочних IP-адрес, таких як 0.0.0.0, і до конкретних IP-адрес, а також дозволяє уникнути очікування ядром звільнення сокетів у стані TIME_WAIT. [default=false]
--permit-port-sharing
Якщо значення true, SO_REUSEPORT буде використано при привʼязці порту, що дозволяє більш ніж одному екземпляру привʼязуватися до однієї адреси та порту. [default=false]
DEPRECATED: максимальний час, протягом якого Pod може перебувати в unschedulablePods. Якщо Pod залишається в unschedulablePods довше, ніж це значення, то його буде переміщено з unschedulablePods до backoffQ або activeQ. Цей прапорець є застарілим і буде вилучений у наступній версії.
--profiling Типово: true
DEPRECATED: увімкнути профілювання через веб-інтерфейс host:port/debug/prof/. Цей параметр ігнорується, якщо у --config вказано конфігураційний файл.
--requestheader-allowed-names strings
Список загальних імен клієнтських сертифікатів, щоб дозволити вказувати імена користувачів у заголовках, визначених параметром --requestheader-username-headers. Якщо він порожній, можна використовувати будь-який сертифікат клієнта, підтверджений центрами сертифікації у файлі --requestheader-client-ca-file.
--requestheader-client-ca-file string
Пакет кореневих сертифікатів для перевірки клієнтських сертифікатів на вхідних запитах перед тим, як довіряти іменам користувачів у заголовках, визначених параметром --requestheader-username-headers. ПОПЕРЕДЖЕННЯ: зазвичай не залежить від авторизації, яку вже виконано для вхідних запитів.
Список заголовків запитів для перевірки на наявність імен користувачів. X-Remote-User є поширеним.
--secure-port int Типово: 10259
Порт, на якому обслуговувати HTTPS з автентифікацією та авторизацією. Якщо 0, не обслуговувати HTTPS взагалі.
--show-hidden-metrics-for-version string
Попередня версія, для якої ви хочете показати приховані метрики. Значення має лише попередня мінорна версія, інші значення не будуть дозволені. Формат: <major>.<minor>, наприклад: '1.16'. Мета цього формату - переконатися, що ви маєте можливість помітити, що наступний реліз приховує додаткові метрики, замість того, щоб дивуватися, коли вони будуть назавжди вилучені в наступному релізі.
--tls-cert-file string
Файл, що містить стандартний сертифікат x509 для HTTPS. (Сертифікат центру сертифікації, якщо такий є, додається після сертифіката сервера). Якщо HTTPS-сервіс увімкнено, а --tls-cert-file і --tls-private-key-file не вказано, для публічної адреси буде згенеровано самопідписаний сертифікат і ключ, які буде збережено в теці, вказаній в --cert-dir.
--tls-cipher-suites strings
Розділений комами список наборів шифрів для сервера. Якщо не вказано, буде використано стандартний набір шифрів Go. Значення, яким надається перевага: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256. Небезпечні значення: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_RC4_128_SHA.
--tls-curve-preferences int32Slice Default: []
Розділений комами список числових значень Go crypto/tls CurveID, як дозволені механізми обміну ключами для сервера. Підтримувані значення залежать від версії Go, що використовується. Див. https://pkg.go.dev/crypto/tls#CurveID для значень, підтримуваних для кожної версії Go. Порядок списку ігнорується, а механізми обміну ключами обираються Go з цього списку за внутрішнім порядком пріоритету. Якщо не вказано, будуть використані стандартні криві Go.
--tls-min-version string
Мінімальна підтримувана версія TLS. Можливі значення: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
--tls-private-key-file string
Файл, що містить стандартний приватний ключ x509, який відповідає --tls-cert-file.
--tls-sni-cert-key string
Пара шляхів до файлів сертифіката x509 і приватного ключа, до яких за бажанням додається список доменних шаблонів, які є повними доменними іменами, можливо, з префіксальними підстановчими сегментами. Доменні шаблони також дозволяють використовувати IP-адреси, але IP-адреси слід використовувати лише в тому випадку, якщо apiserver має доступ до IP-адреси, запитуваної клієнтом. Якщо шаблони домену не надано, витягуються імена сертифікатів. Збіги без підстановочних знаків мають перевагу над збігами з підстановочними знаками, а явні шаблони доменів мають перевагу над отриманими іменами. Для кількох пар ключ/сертифікат використовуйте --tls-sni-cert-key кілька разів. Приклади: "example.crt,example.key" або "foo.crt,foo.key:*.foo.com,foo.com".
-v, --v int
число рівня деталізації логу
--version version[=true]
--version, --version=raw виводить інформацію про версію та виходить; --version=vX.Y.Z... встановлює вказану версію
--vmodule pattern=N,...
список параметрів pattern=N, розділених комами, для файлового фільтрування логу (працює лише для текстового формату логу).
--write-config-to string
Якщо встановлено, записати значення стандартної конфігурації до цього файлу і вийти.
13.7 - kubelet
Огляд
Kubelet є основним "агентом вузла", який працює на кожному вузлі. Він може зареєструвати вузол на apiserver, використовуючи одне з наступного: імʼя хосту; прапорець для перевизначення імені хоста; або спеціальну логіку для провайдера хмарних послуг.
Kubelet працює в термінах PodSpec. PodSpe — це обʼєкт YAML або JSON, який описує Pod. Kubelet приймає набір PodSpec, які надаються різними механізмами (переважно через apiserver) і забезпечує, що контейнери, описані в цих PodSpec, працюють і є справними. Kubelet не управляє контейнерами, які не були створені Kubernetes.
Крім PodSpec з apiserver, є два способи, як маніфест контейнера може бути наданий kubelet.
Файл: Шлях, переданий як прапорець у командному рядку. Файли за цим шляхом будуть періодично моніторитися на наявність оновлень. Період моніторингу стандартно становить 20 секунд і налаштовується за допомогою прапорця.
HTTP endpoint: HTTP endpoint, переданий як параметр у командному рядку. Цей endpoint перевіряється кожні 20 секунд (також налаштовується за допомогою прапорця).
kubelet [flags]
Параметри
--address string Типово: 0.0.0.0
IP-адреса, на якій буде працювати kubelet (встановіть '0.0.0.0' або '::' для прослуховування на всіх інтерфейсах та в усіх сімействах IP-адрес) (ЗАСТАРІЛО: Цей параметр слід встановлювати через конфігураційний файл, вказаний прапорцем --config kubelet. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--allowed-unsafe-sysctls strings
Список небезпечних sysctl або шаблонів sysctl, розділених комами (завершуються на *). Використовуйте їх на свій ризик. (ЗАСТАРІЛО: Цей параметр слід встановлювати через конфігураційний файл, вказаний прапорцем --config kubelet. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--anonymous-auth Типово: true
Дозволяє анонімні запити до сервера kubelet. Запити, які не відхилені іншим методом автентифікації, розглядаються як анонімні. Анонімні запити мають імʼя користувача system:anonymous та імʼя групи system:unauthenticated. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--authentication-token-webhook
Використовуйте API TokenReview для визначення автентифікації за допомогою маркерів доступу. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Тривалість кешування відповідей від вебхук автентифікатора маркерів. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--authorization-mode string Типово: "AlwaysAllow"
Режим авторизації для сервера kubelet. Дійсні варіанти — "AlwaysAllow" або "Webhook". Режим Webhook використовує API SubjectAccessReview для визначення авторизації. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Тривалість кешування відповідей "authorized" від вебхук авторизатора. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Тривалість кешування відповідей "unauthorized" від веб-хук авторизатора. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--bootstrap-kubeconfig string
Шлях до файлу kubeconfig, який буде використовуватися для отримання клієнтського сертифіката для kubelet. Якщо файл, вказаний прапорцем --kubeconfig, не існує, використовується файл bootstrap kubeconfig для запиту клієнтського сертифіката від API сервера. У разі успіху, файл kubeconfig, що посилається на згенерований клієнтський сертифікат і ключ, буде записано за шляхом, вказаним прапорцем --kubeconfig. Файл клієнтського сертифіката і ключа буде збережено в теці, на яку вказує прапорець --cert-dir.
--cert-dir string Типово: /var/lib/kubelet/pki
Тека, де розташовані TLS сертифікати. Якщо вказані прапорці --tls-cert-file та --tls-private-key-file, цей прапорець буде ігноруватися.
--cgroup-driver string Типово: "cgroupfs"
Драйвер, який kubelet використовує для управління cgroups на хості. Можливі значення: "cgroupfs", "systemd". (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--cgroup-root string
Необовʼязковий кореневий cgroup для використання з Podʼами. Обробляється контейнерним середовищем на основі принципу найкращих зусиль. Типово: '', що означає використання стандартного значення контейнерного середовища. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--cgroups-per-qos Типово: true
Увімкнути створення ієрархії QoS cgroup. Якщо це вірно, створюються cgroup верхнього рівня QoS та cgroup Podʼів. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--client-ca-file string
Якщо встановлено, будь-який запит, що містить клієнтський сертифікат, підписаний однією з організацій, зазначених у файлі client-ca-file, буде автентифіковано з ідентичністю, що відповідає CommonName клієнтського сертифіката. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--cloud-provider string
Постачальник для хмарних сервісів. Встановіть порожній рядок для запуску без постачальника хмари. Встановіть 'external' для запуску з зовнішнім постачальником хмари.
--cluster-dns strings
Список IP-адрес DNS-серверів, розділений комами. Це значення використовується для DNS-серверів контейнерів у випадку Podʼів з "dnsPolicy=ClusterFirst". Примітка: всі DNS-сервери у списку МАЮТЬ обслуговувати один і той же набір записів, інакше розвʼязання імен у кластері може працювати некоректно. Немає гарантії, який саме DNS-сервер буде використовуватися для розвʼязання імен. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--cluster-domain string
Домен для цього кластера. Якщо встановлено, kubelet налаштує всі контейнери для пошуку в цьому домені на додаток до пошукових доменів хоста. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--config string
Kubelet завантажить свою початкову конфігурацію з цього файлу. Шлях може бути абсолютним або відносним; відносні шляхи починаються з поточної робочої теки kubelet. Пропустіть цей прапорець, щоб використовувати вбудовані стандартні значення конфігурації. Прапорці командного рядка переважають над конфігурацією з цього файлу.
--config-dir string
Шлях до теки, що містить додаткові конфігураційні файли, які перевизначають стандартні налаштування та налаштування з файлу --config. Шлях може бути абсолютним або відносним; відносні шляхи починаються з поточної робочої теки kubelet. Додаткові файли конфігурації повинні мати суфікс '.conf' (наприклад, '99-kubelet-address.conf') і обробляються в лексичному порядку. Завантажуються лише файли '.conf'; всі інші файли ігноруються. Всі файли .conf у теці та її підтеках обробляються в лексичному порядку. [default='']
--container-log-max-files int32 Типово: 5
<Увага: бета-функція> Встановіть максимальну кількість файлів логів контейнерів, які можуть бути присутніми для контейнера. Число має бути >= 2. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--container-log-max-size string Типово: "10Mi"
<Увага: бета-функція> Встановіть максимальний розмір (наприклад, 10Mi) файлу логу контейнера до того, як буде виконано його ротацію. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Точка доступу до сервісу рушія контейнерів. Unix Domain Sockets підтримуються в Linux, тоді як точки доступу npipe і tcp підтримуються у Windows. Приклади: 'unix:///path/to/runtime.sock', 'npipe:////./pipe/runtime'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Вмикає застосування квоти CPU CFS для контейнерів, у яких вказано ліміти CPU. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--cpu-cfs-quota-period duration Типово: 100ms
Встановлює значення періоду квоти CPU CFS, cpu.cfs_period_us, зазвичай використовується стандартне значення ядра Linux. Потрібно увімкнути функціональну можливість CustomCPUCFSQuotaPeriod, щоб встановити нестандартні значення. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--cpu-manager-policy string Типово: "none"
Політика CPU Manager для використання. Можливі значення: 'none', 'static'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Набір параметрів key=value CPU Manager, які можна використовувати для точного налаштування їхньої поведінки. Якщо не надано, залишити стандартну поведінку. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
<Увага: альфа-функція> Період узгодження політики керування CPU. Приклади: '10s', або '1m'. Якщо не вказано, використовується 'NodeStatusUpdateFrequency'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--enable-controller-attach-detach Типово: true
Дозволяє контролеру Attach/Detach керувати приєднанням/відʼєднанням томів, запланованих до цього вузла, і забороняє kubelet виконувати будь-які операції приєднання/відʼєднання. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--enable-debugging-handlers Типово: true
Вмикає серверні точки доступу для збору логів та локального запуску контейнерів і команд. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Список рівнів застосування обмежень розподілу ресурсів вузла, розділений комами, який буде застосовуватися kubelet. Прийнятні опції: 'none', 'pods', 'system-reserved', 'system-reserved-compressible', 'kube-reserved' та 'kube-reserved-compressible'. Якщо зазначені останні чотири опції, обовʼязково також встановити --system-reserved-cgroup і --kube-reserved-cgroup, відповідно. Якщо зазначено 'none', додаткові опції не повинні бути встановлені. Дивіться [офіційну документацію](https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/) для отримання додаткової інформації. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--event-burst int32 Типово: 100
Максимальний розмір сплеску записів подій, тимчасово дозволяє записам подій збільшуватися до цього числа, не перевищуючи event-qps. Число має бути >= 0. Якщо встановлено 0, буде використано DefaultBurst: 10. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--event-qps int32 Типово: 50
QPS для обмеження створення подій. Число має бути >= 0. Якщо 0, буде використано DefaultQPS: 5. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Набір порогів виселення (наприклад, memory.available<1Gi), досягнення яких спричиняє виселення Podʼів. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--eviction-max-pod-grace-period int32
Максимальний дозволений період відстрочки (у секундах) для використання при припиненні роботи подів у відповідь на досягнення порогу мʼякого виселення. Якщо значення від'ємне, відкладіть до значення, вказаного для підсистеми. (ВИКОРИСТАННЯ ПАРАМЕТРУ ЗАСТАРІЛЕ: Цей параметр слід встановлювати через файл конфігурації, вказаний прапорцем --config Kubelet. Докладнішу інформацію див. на сторінці https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/.)
Набір мінімальних відновлень (наприклад, imagefs.available=2Gi), що описує мінімальну кількість ресурсів, яку kubelet буде відновлювати під час виселення Podʼів, якщо цей ресурс знаходиться під тиском. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Тривалість, протягом якої kubelet має чекати перед виходом із стану тиску виселення. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Набір порогів виселення (наприклад, memory.available<1.5Gi), які при досягненні протягом відповідного пільгового періоду спричинять виселення Podʼів. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Набір пільгових періодів виселення (наприклад, memory.available=1m30s), які відповідають тривалості, протягом якої мʼякий поріг виселення має утримуватись перед тим, як буде ініційовано виселення Podʼів. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--exit-on-lock-contention
Чи повинен kubelet завершити роботу після конфлікту файлів блокування.
--experimental-allocatable-ignore-eviction
Якщо встановлено true, Hard Eviction Thresholds (жорсткі пороги виселення) будуть ігноруватися при розрахунку Node Allocatable (доступних вузлів). Дивіться тут для отримання додаткової інформації. [default=false] (ЗАСТАРІЛО: буде видалено в версії 1.25 або пізніше)
--experimental-mounter-path string
[Експериментально] Шлях до виконуваного файлу монтувальника. Залиште порожнім, щоб використовувати стандартний mount. (ЗАСТАРІЛО: буде видалено в версії 1.24 або пізніше на користь використання CSI.)
--fail-cgroupv1 Типово: true
Забороняє запуск kubelet на хості за допомогою cgroup v1.
Тривалість між перевірками конфігураційних файлів на наявність нових даних. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Як kubelet повинен налаштовувати hairpin NAT. Це дозволяє точкам доступу Service балансувати навантаження назад на себе, якщо вони намагаються отримати доступ до власного Service. Допустимі значення: "promiscuous-bridge", "hairpin-veth" та "none". (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--healthz-bind-address string Типово: 127.0.0.1
IP-адреса, на якій буде працювати сервер healthz (встановіть на '0.0.0.0' або '::' для прослуховування на всіх інтерфейсах та IP-сімействах). (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--healthz-port int32 Типово: 10248
Порт точки доступу healthz на localhost (встановіть 0 щоб вимкнути). (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
-h, --help
Довідка kubelet
--hostname-override string
Якщо не порожній, буде використовуватися цей рядок як ідентифікатор замість фактичного імені хоста.
Шлях до теки, де знаходяться двійкові файли втулка постачальника облікових даних.
--image-credential-provider-config string
Шлях до конфігураційного файлу втулка постачальника облікових даних. (JSON/YAML/YML) або тека таких файлів (обʼєднаних в лексикографічному порядку; нерекурсивний пошук)
--image-gc-high-threshold int32 Типово: 85
Відсоток використання диска, після якого завжди виконується видалення непотрібних образів. Значення має бути в діапазоні [0, 100], щоб вимкнути збирання сміття, встановіть значення 100. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--image-gc-low-threshold int32 Типово: 80
Відсоток використання диска, до якого прибирання образів ніколи не виконується. Найменше використання диска, при якому проводиться збір сміття. Значення повинні бути в межах [0, 100] і не повинні перевищувати значення --image-gc-high-threshold. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--image-service-endpoint string
Точка доступу до віддаленого сервісу образів. Якщо не вказано, стандартно буде така ж, як і у --container-runtime-endpoint. Unix Domain Socket підтримуються в Linux, тоді як точки доступу 'npipe' і 'tcp' підтримуються у Windows. Приклади: 'unix:///path/to/runtime.sock', 'npipe:////./pipe/runtime'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--kernel-memcg-notification
Якщо увімкнено, kubelet буде інтегруватися з повідомленням memcg ядра для визначення, чи перевищено порогові значення пам’яті для виселення, замість періодичного опитування. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--kube-api-burst int32 Типово: 100
Сплеск, який буде використовуватися при спілкуванні з API сервером Kubernetes. Число має бути >= 0. Якщо встановлено 0, буде використано DefaultBurst: 100. Не стосується пудьсу API подій та вузлів, для яких обмеження швидкості контролюється іншим набором прапорців. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
QPS, який буде використовуватися при спілкуванні з API сервером Kubernetes. Число має бути >= 0. Якщо встановлено 0, буде використано DefaultQPS: 50. Не стосується пульсу API подій та вузлів, для яких обмеження швидкості контролюється іншим набором прапорців. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Набір пар ResourceName=ResourceQuantity (наприклад, cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid=1000), які описують ресурси, зарезервовані для компонентів системи Kubernetes. В даний час підтримуються тільки cpu, memory, pid та локальний ephemeral storage для кореневої файлової системи. Дивіться https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ для отримання додаткової інформації. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--kube-reserved-cgroup string
Абсолютне імʼя верхнього рівня cgroup, яке використовується для управління компонентами Kubernetes, для яких ресурси обчислення були зарезервовані за допомогою прапорця --kube-reserved. Наприклад, "/kube-reserved". [default=''] (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--kubeconfig string
Шлях до файлу kubeconfig, що визначає, як підключитися до API сервера. Надання --kubeconfig увімкне режим API сервера, тоді як пропуск --kubeconfig увімкне автономний (standalone) режим.
--kubelet-cgroups string
Необовʼязкове абсолютне імʼя cgroups для створення та запуску kubelet. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--local-storage-capacity-isolation Типово: true
Якщо true, увімкнено ізоляцію локального тимчасового зберігання. Інакше функція ізоляції локального зберігання буде вимкнена. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--lock-file string
<Попередження: Альфа функція> Шлях до файлу, який kubelet використовуватиме як файл блокування.
--log-flush-frequency duration Типово: 5s
Максимальна кількість секунд між очищеннями логу.
[Alpha] У текстовому форматі з розділеними вихідними потоками інформаційні повідомлення можуть бути буферизовані на деякий час для підвищення продуктивності. Стандартне значення, що дорівнює нулю байтів, вимикає буферизацію. Розмір може бути вказаний у байтах (512), кратних 1000 (1K), кратних 1024 (2Ki) або степенях цих значень (3M, 4G, 5Mi, 6Gi). Щоб використовувати це, увімкніть функціональну можливість LoggingAlphaOptions. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--log-text-split-stream
[Alpha] У текстовому форматі помилки записуються у stderr, а інформаційні повідомлення — у stdout. Стандартно всі повідомлення записуються в один потік stdout. Щоб використовувати це, увімкніть функціональну можливість LoggingAlphaOptions. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Якщо значення істинне, kubelet забезпечить наявність правил утиліти iptables на хості. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--manifest-url string
URL для доступу до додаткових специфікацій Pod, які потрібно запустити. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Список HTTP-заголовків, розділених комами, які слід використовувати при доступі до URL, наданого параметром --manifest-url. Кілька заголовків з однаковою назвою будуть додані в тому ж порядку, в якому вони надані. Цей параметр можна використовувати кілька разів. Наприклад: --manifest-url-header 'a:hello,b:again,c:world' --manifest-url-header 'b:beautiful'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Максимальна кількість старих екземплярів контейнерів, які можна зберігати глобально. Кожен контейнер займає певний простір на диску. Щоб вимкнути, встановіть відʼємне число. (ЗАСТАРІЛО: Замість цього використовуйте --eviction-hard або --eviction-soft. Буде видалено в майбутніх версіях.)
Максимальна кількість старих екземплярів, які потрібно зберігати для кожного контейнера. Кожен контейнер займає певний обсяг дискового простору. (ЗАСТАРІЛО: Замість цього використовуйте --eviction-hard або --eviction-soft. Буде видалено в майбутніх версіях.)
--memory-manager-policy string Типово: "None"
Політика Memory Manager для використання. Можливі значення: 'None', 'Static'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--minimum-container-ttl-duration duration
Мінімальний вік для завершеного контейнера перед тим, як його буде прибрано. Приклади: '300ms', '10s' або '2h45m'. (ЗАСТАРІЛО: Замість цього використовуйте --eviction-hard або --eviction-soft. Буде видалено в майбутніх версіях.)
Мінімальний вік для невикористаного образу перед тим, як його буде прибрано. Приклади: '300ms', '10s' або '2h45m'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--node-ip string
IP-адреса (або список IP-адрес для двох стеків, розділених комами) вузла. Якщо не встановлено, kubelet використовуватиме стандартну IPv4-адресу вузла, якщо така є, або його стандартну IPv6-адресу, якщо IPv4-адрес немає. Ви можете передати '::', щоб віддати перевагу стандартній IPv6-адресі замість стандартної IPv4-адреси. Якщо хмарний провайдер налаштований як зовнішній, цей прапорець допоможе запустити вузол з відповідною IP-адресою.
--node-labels <пари key=value, розділені комами>
Мітки для додавання під час реєстрації вузла в кластері. Мітки повинні бути у форматі key=value, розділені ','. Мітки в просторі 'kubernetes.io' повинні починатися з дозволеного префікса ('kubelet.kubernetes.io', 'node.kubernetes.io') або бути в спеціально дозволеному наборі (beta.kubernetes.io/arch, beta.kubernetes.io/instance-type, beta.kubernetes.io/os, failure-domain.beta.kubernetes.io/region, failure-domain.beta.kubernetes.io/zone, kubernetes.io/arch, kubernetes.io/hostname, kubernetes.io/os, node.kubernetes.io/instance-type, topology.kubernetes.io/region, topology.kubernetes.io/zone).
--node-status-max-images int32 Типово: 50
Максимальна кількість образів для показу в Node.Status.Images. Якщо вказано -1, обмеження не буде застосовано. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Визначає, як часто kubelet сповіщає про статус вузла у майстер. Примітка: будьте обережні при зміні константи, вона повинна узгоджуватися з nodeMonitorGracePeriod в контролері вузлів. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--oom-score-adj int32 Типово: -999
Значення oom-score-adj для процесу kubelet. Значення повинні бути в межах від [-1000, 1000]. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--pod-cidr string
CIDR для використання IP-адрес Pod, використовується тільки в автономному (standalone) режимі. У кластерному режимі це отримується від майстра. Для IPv6 максимальна кількість виділених IP-адрес складає 65536. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--pod-manifest-path string
Шлях до теки, що містить файли статичних Pod для запуску, або шлях до одного файлу статичного Pod. Файли, що починаються з крапки, будуть ігноруватися. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--pod-max-pids int Типово: -1
Встановлює максимальну кількість процесів на Pod. Якщо -1, kubelet стандартно використовує доступну на вузлі ємність PID. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--pods-per-core int32
Кількість Podʼів на ядро, які можуть працювати на цьому kubelet. Загальна кількість Podʼів на цьому kubelet не може перевищувати --max-pods, тому буде використовуватися --max-pods, якщо цей розрахунок призведе до більшої кількості дозволених Podʼів на kubelet. Значення 0 вимикає це обмеження. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Стандартна поведінка kubelet для налаштування ядра. Якщо встановлено, kubelet видасть помилку, якщо будь-яке з налаштувань ядра відрізняється від стандартних значень kubelet. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--provider-id string
Унікальний ідентифікатор для ідентифікації вузла в базі даних машин, тобто у постачальника хмари.
<Попередження: Alpha рівень> Набір пар ResourceName=Percentage (наприклад, "memory=50%"), які описують, як запити ресурсів Pod резервуються на рівні QoS. На даний момент підтримується тільки memory. Потрібно активувати функціональну можливість QOSReserved. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--read-only-port int32 Типово: 10255
Порт тільки для читання, на якому буде працювати kubelet без автентифікації/авторизації (для вимкнення встановіть 0). (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--register-node Типово: true
Зареєструйте вузол в apiserver. Якщо --kubeconfig не вказано, цей параметр не має значення, оскільки kubelet не матиме API-сервера для реєстрації. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--register-with-taints []v1.Taint
Реєструє вузол з наданим списком taints (розділених комами "<key>=<value>:<effect>"). Нічого не робить, якщо --register-node має значення false. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--registry-burst int32 Типово: 10
Максимальний розмір для сплеску завантажень, тимчасово дозволяє завантаженням досягати цієї кількості, не перевищуючи при цьому --registry-qps. Використовується тільки якщо --registry-qps > 0. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--registry-qps int32 Типово: 5
Якщо > 0, обмежити QPS для завантажень з реєстру до цього значення. Якщо 0, без обмежень. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--reserved-cpus string
Список CPU або діапазонів CPU, розділених комами, зарезервованих для системи та використання Kubernetes. Цей конкретний список переважатиме над кількістю CPU в --system-reserved та --kube-reserved. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Файл конфігурації резольвера, який використовується як основа для конфігурації DNS-резолюції контейнера. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--root-dir string Типово: "/var/lib/kubelet"
Шлях до теки для управління файлами kubelet (монтування томів тощо).
--rotate-certificates
Виконувати автоматичну ротацію клієнтськіх сертифікатів kubelet, запитуючи нові сертифікати у kube-apiserver, коли термін дії сертифіката наближається до закінчення. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--rotate-server-certificates
Автоматично запитувати та виконувати ротацію сертифікатів kubelet, запитуючи нові сертифікати у kube-apiserver, коли термін дії сертифіката наближається до закінчення. Потрібно активувати функціональну можливість RotateKubeletServerCertificate та схвалення поданих обʼєктів CertificateSigningRequest. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--runonce
Якщо true, виходити після створення Podʼів з файлів статичних подів або віддалених URL. Взаємовиключно з --enable-server. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--runtime-cgroups string
Необовʼязкова абсолютна назва cgroups для створення та запуску середовища виконання.
--runtime-request-timeout duration Типово: 2m0s
Тайм-аут для всіх запитів до середовища виконання, окрім довготривалих запитів — pull, logs, exec та attach. Коли тайм-аут перевищено, kubelet скасує запит, видасть помилку і спробує знову пізніше. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--seccomp-default RuntimeDefault
Вмикає використання RuntimeDefault як стандартного профілю seccomp для всіх навантажень.
--serialize-image-pulls Типово: true
Витягує образи по одному. Рекомендується не змінювати стандартні значення на вузлах, які використовують демон Docker версії < 1.9 або сховище Aufs. Деталі дивіться в тікеті #10959. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Максимальний час, протягом якого зʼєднання для потокового режиму може бути неактивним перед автоматичним закриттям зʼєднання. 0 вказує на відсутність тайм-ауту. Приклад: 5m. Примітка: всі зʼєднання до сервера kubelet мають максимальну тривалість 4 години. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--sync-frequency duration Типово: 1m0s
Максимальний проміжок часу між синхронізацією запущених контейнерів та конфігурацією. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--system-cgroups string
Необовʼязкова абсолютна назва cgroups, в якій слід розмістити всі процеси, що не є процесами ядра, що не знаходяться вже в cgroup під '/'. Пусто для відсутності контейнера. Для скасування прапорця потрібне перезавантаження. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Набір пар ResourceName=ResourceQuantity (наприклад, cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid=1000), які описують ресурси, зарезервовані для не-Kubernetes компонентів. Наразі підтримуються тільки cpu, memory, pid та локальне тимчасове сховище для кореневої файлової системи. Дивіться https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ для отримання додаткових відомостей. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--system-reserved-cgroup string
Абсолютна назва cgroup найвищого рівня, яка використовується для управління не-Kubernetes компонентами, для яких ресурси були зарезервовані за допомогою прапорця --system-reserved. Наприклад, /system-reserved. [default=''] (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--tls-cert-file string
Файл, що містить x509 сертифікат, використовується для обслуговування HTTPS (з проміжними сертифікатами, якщо такі є, конкатенованими після серверного сертифіката). Якщо --tls-cert-file та --tls-private-key-file не вказані, для публічної адреси генеруються самопідписані сертифікат і ключ, які зберігаються в теці, вказаній в --cert-dir. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--tls-cipher-suites strings
Список наборів шифрів для сервера, розділений комами. Якщо не вказано, будуть використані стандартні набори шифрів Go. Рекомендовані значення:
TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256. Небезпечні значення:
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_RC4_128_SHA. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--tls-min-version string
Мінімальна підтримувана версія TLS. Можливі значення: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--tls-private-key-file string
Файл, що містить приватний ключ x509, що відповідає --tls-cert-file. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--topology-manager-policy string Типово: "none"
Політика Topology Manager для використання. Можливі значення:'none', 'best-effort', 'restricted', 'single-numa-node'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Набір параметрів політики Topology Manager у форматі key=value, які можна використовувати для тонкого налаштування їх поведінки. Якщо не вказані, зберігається стандартна поведінка. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
Область, до якої застосовуються топологічні підказки. Topology Manager збирає підказки від Hint Providers і застосовує їх до визначеної області для забезпечення допуску Pod. Можливі значення: 'container', 'pod'. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
-v, --v int
Число для рівня детальності логу
--version version[=true]
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... встановлює версію, про яку буде повідомлено
--vmodule attern=N,...
Список налаштувань pattern=N, розділених комами, для фільтрованого логування файлів (працює тільки для текстового формату логу).
Повний шлях до теки, в якій слід шукати додаткові втулки томів від сторонніх постачальників. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
--volume-stats-agg-period duration Типово: 1m0s
Вказує інтервал, через який kubelet обчислює та кешує використання диска томів для всіх Podʼів і томів. Щоб вимкнути обчислення томів, встановіть від’ємне число. (ЗАСТАРІЛО: Цей параметр слід налаштовувати через файл конфігурації, вказаний прапорцем kubelet --config. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для отримання додаткової інформації.)
14 - Відлагодження кластера
14.1 - Керування потоком
API Priority and Fairness контролює поведінку сервера API Kubernetes у ситуації перевантаження. Ви можете знайти більше інформації про нього у розділі API Priority & Fairness документації.
Діагностика
Кожна відповідь HTTP від API-сервера з увімкненою функцією пріоритету та справедливості має два додаткові заголовки: X-Kubernetes-PF-FlowSchema-UID та X-Kubernetes-PF-PriorityLevel-UID, які вказують на схему потоку, що відповідала запиту, та рівень пріоритету, до якого він був призначений, відповідно. Імена обʼєктів API не включені в ці заголовки (щоб уникнути розкриття деталей у випадку, якщо користувач, який робить запит, не має дозволу на їх перегляд). Під час налагодження ви можете використовувати команду:
kubectl get flowschemas -o custom-columns="uid:{metadata.uid},name:{metadata.name}"kubectl get prioritylevelconfigurations -o custom-columns="uid:{metadata.uid},name:{metadata.name}"
щоб отримати відповідність UID до імен для FlowSchemas та PriorityLevelConfigurations.
Точки налагодження
З увімкненою функцією APIPriorityAndFairness, kube-apiserver обслуговує наступні додаткові шляхи на своїх HTTP(S) портах.
Вам потрібно переконатися, що у вас є дозволи для доступу до цих точок. Вам не потрібно нічого робити, якщо ви адміністратор. Дозволи можуть бути надані за необхідністю відповідно до RBAC документа для доступу до /debug/api_priority_and_fairness/ шляхом зазначення nonResourceURLs.
/debug/api_priority_and_fairness/dump_priority_levels — перелік
усіх рівнів пріоритету та поточний стан кожного. Ви можете отримати його так:
kubectl get --raw /debug/api_priority_and_fairness/dump_priority_levels
Вихідні дані будуть у форматі CSV та подібні до цього:
NextDispatchR: показник прогресу R, в одиницях секунд-місць, на якому буде відправлено наступний запит.
InitialSeatsSum: сума InitialSeats, повʼязана з усіма запитами в даній черзі.
MaxSeatsSum: сума MaxSeats, повʼязана з усіма запитами в даній черзі.
TotalWorkSum: сума загальної роботи, в одиницях секунд-місць, усіх запитів, що очікують в черзі.
Примітка: seat-second (скорочено як ss) є одиницею вимірювання роботи в світі APF.
/debug/api_priority_and_fairness/dump_requests — перелік усіх запитів, включаючи запити, що очікують у черзі та запити, що виконуються. Ви можете отримати його так:
kubectl get --raw /debug/api_priority_and_fairness/dump_requests
Вихідні дані будуть у форматі CSV та подібні до цього:
QueueIndex: індекс черги. Він буде -1 для рівнів пріоритету без черг.
RequestIndexInQueue: індекс у черзі для даного запиту. Він буде -1 для запитів, що виконуються.
InitialSeats: кількість місць, які будуть зайняті під час початкового (нормального) етапу виконання запиту.
FinalSeats: кількість місць, які будуть зайняті під час завершального етапу виконання запиту, враховуючи повʼязані повідомлення WATCH.
AdditionalLatency: додатковий час, витрачений під час завершального етапу виконання запиту. FinalSeats будуть зайняті протягом цього періоду. Це не означає будь-яку затримку, яку спостерігатиме користувач.
StartTime: час початку виконання запиту. Він буде 0001-01-01T00:00:00Z для запитів, що очікують у черзі.
Ведення логів налагодження
На рівні -v=3 або вище, API-сервер виводить рядок httplog для кожного запиту в лозі API-сервера, і він містить наступні атрибути.
apf_fs: імʼя схеми потоку, до якої був класифікований запит.
apf_pl: імʼя рівня пріоритету для цієї схеми потоку.
apf_iseats: кількість місць, визначених для початкового (нормального) етапу виконання запиту.
apf_fseats: кількість місць, визначених для завершального етапу виконання (з урахуванням повʼязаних повідомлень watch) запиту.
apf_additionalLatency: тривалість завершального етапу виконання запиту.
На вищих рівнях деталізації логу будуть рядки, що розкривають деталі того, як APF обробив запит, в основному для цілей налагодження.
Заголовки відповіді
APF додає наступні два заголовки до кожного HTTP повідомлення. Вони не зʼявляться в лозі аудиту. Їх можна переглянути з боку клієнта. Для клієнтів, що використовують klog, використовуйте рівень деталізації -v=8 або вище, щоб переглянути ці заголовки.
X-Kubernetes-PF-FlowSchema-UID містить UID обʼєкта FlowSchema, до якого був класифікований відповідний запит.
X-Kubernetes-PF-PriorityLevel-UID містить UID обʼєкта PriorityLevelConfiguration, повʼязаного з цією FlowSchema.
Що далі
Для отримання фонової інформації про деталі дизайну пріоритету та справедливості API дивіться пропозицію щодо покращення.
Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація.
Щоб забезпечити наявність у цій структурі всього необхідного для звʼязку з кластером Kubernetes (як це робиться через kubeconfig), поля повинні відображати структуру "k8s.io/client-go/tools/clientcmd/api/v1". Cluster, за винятком CertificateAuthority, оскільки дані CA завжди будуть передаватися втулку у вигляді байтів.
Поле
Опис
server[Обовʼязкове] string
Server — це адреса кластера Kubernetes (https://hostname:port).
tls-server-name string
TLSServerName передається серверу для SNI і використовується у клієнті для перевірки сертифікатів сервера. Якщо ServerName порожній, використовується імʼя хоста, за яким здійснюється контакт з сервером.
CAData містить сертифікати органів сертифікації, закодовані у форматі PEM. Якщо порожнє, слід використовувати системні корені.
proxy-url string
ProxyURL — це URL-адреса проксі-сервера, який буде використовуватися для всіх запитів до цього кластера.
disable-compression bool
DisableCompression дозволяє клієнту відмовитися від стиснення відповідей для всіх запитів до сервера. Це корисно для прискорення запитів (особливо списків), коли пропускна здатність мережі клієнт-сервер достатня, за рахунок економії часу на стиснення (на стороні сервера) і розпакування (на стороні клієнта): https://github.com/kubernetes/kubernetes/issues/112296.
Config містить додаткові дані конфігурації, специфічні для exec втулка щодо кластера, до якого здійснюється автентифікація.
Ці дані походять з поля extensions[client.authentication.k8s.io/exec] обʼєкта Cluster клієнтської конфігурації:
clusters:
name: my-cluster cluster: ... extensions:
name: client.authentication.k8s.io/exec # зарезервована назва розширення для конфігурації exec для кожного кластера extension: audience: 06e3fbd18de8 # довільна конфігурація
В деяких середовищах конфігурація користувача може бути точно такою ж для багатьох кластерів (тобто викликати цей exec втулок), за винятком деяких деталей, специфічних для кожного кластера, таких як аудиторія. Це поле дозволяє безпосередньо вказати конфігурацію для кожного кластера разом з інформацією про кластер. Використання цього поля для зберігання секретних даних не рекомендується, оскільки однією з основних переваг exec втулків є те, що жодні секрети не потрібно зберігати безпосередньо в kubeconfig.
Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація. Зверніть увагу, що Cluster є ненульовим тільки тоді, коли provideClusterInfo встановлено в true у конфігурації exec провайдера (тобто, ExecConfig.ProvideClusterInfo).
interactive[Обовʼязкове] bool
Interactive вказує, чи було передано stdin цьому exec втулку.
ExecCredentialStatus містить облікові дані для використання транспортом.
Token і ClientKeyData є конфіденційними полями. Ці дані повинні передаватися тільки в памʼяті між клієнтом і процесом exec втулка. Сам exec втулок повинен бути захищений принаймні через права доступу до файлів.
Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація.
Щоб забезпечити наявність у цій структурі всього необхідного для звʼязку з кластером Kubernetes (як це робиться через kubeconfig), поля повинні відображати структуру "k8s.io/client-go/tools/clientcmd/api/v1". Cluster, за винятком CertificateAuthority, оскільки дані CA завжди будуть передаватися втулку у вигляді байтів.
Поле
Опис
server[Обовʼязкове] string
Server — це адреса кластера Kubernetes (https://hostname:port).
tls-server-name string
TLSServerName передається серверу для SNI і використовується у клієнті для перевірки сертифікатів сервера. Якщо ServerName порожній, використовується імʼя хоста, за яким здійснюється контакт з сервером.
CAData містить сертифікати органів сертифікації, закодовані у форматі PEM. Якщо порожнє, слід використовувати системні корені.
proxy-url string
ProxyURL — це URL-адреса проксі-сервера, який буде використовуватися для всіх запитів до цього кластера.
disable-compression bool
DisableCompression дозволяє клієнту відмовитися від стиснення відповідей для всіх запитів до сервера. Це корисно для прискорення запитів (особливо списків), коли пропускна здатність мережі клієнт-сервер достатня, за рахунок економії часу на стиснення (на стороні сервера) і розпакування (на стороні клієнта): https://github.com/kubernetes/kubernetes/issues/112296.
Config містить додаткові дані конфігурації, специфічні для exec втулка щодо кластера, до якого здійснюється автентифікація.
Ці дані походять з поля extensions[client.authentication.k8s.io/exec] обʼєктаCluster клієнтської конфігурації:
clusters:
name: my-cluster cluster: ... extensions:
name: client.authentication.k8s.io/exec # зарезервована назва розширення для конфігурації exec для кожного кластера extension: audience: 06e3fbd18de8 # довільна конфігурація
В деяких середовищах конфігурація користувача може бути точно такою ж для багатьох кластерів (тобто викликати цей exec втулок), за винятком деяких деталей, специфічних для кожного кластера, таких як аудиторія. Це поле дозволяє безпосередньо вказати конфігурацію для кожного кластера разом з інформацією про кластер. Використання цього поля для зберігання секретних даних не рекомендується, оскільки однією з основних переваг exec плагінів є те, що жодні секрети не потрібно зберігати безпосередньо в kubeconfig.
Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація. Зверніть увагу, що Cluster є ненульовим тільки тоді, коли provideClusterInfo встановлено в true у конфігурації exec провайдера (тобто, ExecConfig.ProvideClusterInfo).
interactive[Обовʼязкове] bool
Interactive вказує, чи було передано stdin цьому exec втулку.
ExecCredentialStatus містить облікові дані для використання транспортом.
Token і ClientKeyData є конфіденційними полями. Ці дані повинні передаватися тільки в памʼяті між клієнтом і процесом exec втулка. Сам exec втулок повинен бути захищений принаймні через права доступу до файлів.
limits — це обмеження на запити подій, що надходять. Обмеження можуть бути встановлені на події, отримані на рівні сервера, на рівні простору імен, на рівні користувача та на рівні джерела+обʼєкта. Потрібно принаймні одне обмеження.
type — це тип обмеження, до якого застосовується ця конфігурація.
qps[Обовʼязкове] int32
qps — це кількість запитів подій на секунду, дозволених для цього типу обмеження. Поля qps та burst використовуються разом, щоб визначити, чи приймається певний запит події. qps визначає, скільки запитів приймаються після вичерпання кількості запитів burst.
burst[Обовʼязкове] int32
burst — це кількість запитів подій burst, дозволених для цього типу обмеження. Поля qps та burst використовуються разом, щоб визначити, чи приймається певний запит події. burst визначає максимальний розмір дозволу, наданого для певного відра. Наприклад, якщо burst дорівнює 10, а qps дорівнює 3, то контроль доступу прийме 10 запитів перед блокуванням будь-яких запитів. Кожну секунду буде дозволено ще 3 запити. Якщо деяка частина цього дозволу не використовується, то вона переноситься на наступну секунду, поки не буде досягнуто максимального дозволу у 10 запитів.
cacheSize int32
cacheSize — це розмір LRU кешу для цього типу обмеження. Якщо кощик видаляється з кешу, то дозвол для цього кошика скидається. Якщо пізніше отримуються більше запитів для видаленого кошика, то цей кошик знову потрапляє в кеш з чистого аркуша, надаючи цьому кошику повний дозвіл на запити burst.
Стандартний розмір кешу становить 4096.
Якщо limitType — 'server', то cacheSize ігнорується.
Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. Зверніться до документації Kubernetes API для полів метаданих metadata.
Containers — це список підмножини інформації в кожному контейнері пода, що створюється.
annotations map[string]string
Annotations — це список ключ-значення, витягнутий з анотацій Podʼа. Він включає лише ключі, які відповідають шаблону *.image-policy.k8s.io/*. Відповідно до кожного веб-хука, щоб визначити, як інтерпретувати ці анотації, якщо взагалі.
namespace string
Namespace — це простір імен, в якому створюється под.
ImageReviewStatus — це результат перевірки запиту на створення Podʼа.
Поле
Опис
allowed bool
Allowed вказує, що всі образи були дозволені до виконання.
reason string
Reason має бути порожнім, якщо Allowed є true, у протилежному випадку може містити короткий опис проблеми. Kubernetes може обрізати надто довгі помилки під час відображення користувачу.
auditAnnotations map[string]string
AuditAnnotations буде додано до обʼєкта атрибутів запиту контролера доступу за допомогою 'AddAnnotation'. Ключі повинні бути без префіксів (тобто контролер доступу додасть відповідний префікс).
uid — це ідентифікатор для індивідуального запиту/відповіді. Це дозволяє нам розрізняти випадки запитів, які є в іншому випадку ідентичними (паралельні запити, запити, коли попередні запити не змінили і т. д.). UID призначений для відстеження зворотного звʼязку (запит/відповідь) між KAS і WebHook, а не користувацьким запитом. Він підходить для співставлення записів журналу між вебхуком і apiserver для аудиту або налагодження.
requestKind — це повністю кваліфікований тип початкового API-запиту (наприклад, v1.Pod або autoscaling.v1.Scale). Якщо це вказано і відрізняється від значення в "kind", було виконано еквівалентне співставлення та перетворення.
Наприклад, якщо deployments можна змінювати за допомогою apps/v1 та apps/v1beta1, і вебхук зареєстрував правило apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"] і matchPolicy: Equivalent, API-запит до деплойментів apps/v1beta1 буде перетворено та надіслано до вебхука з kind: {group:"apps", version:"v1", kind:"Deployment"} (відповідно до правила, зареєстрованого вебхуком), і requestKind: {group:"apps", version:"v1beta1", kind:"Deployment"} (вказуючи на тип початкового API-запиту).
Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука для отримання додаткової інформації.
requestResource — це повністю кваліфікований ресурс початкового API-запиту (наприклад, v1.pods). Якщо це вказано і відрізняється від значення в "resource", було виконано еквівалентне співставлення та перетворення.
Наприклад, якщо deployments можна змінювати за допомогою apps/v1 та apps/v1beta1, і вебхук зареєстрував правило apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"] і matchPolicy: Equivalent, API-запит до деплойментів apps/v1beta1 буде перетворено та надіслано до вебхука з resource: {group:"apps", version:"v1", resource:"deployments"} (відповідно до ресурсу, зареєстрованого вебхуком), і requestResource: {group:"apps", version:"v1beta1", resource:"deployments"} (вказуючи на ресурс початкового API-запиту).
Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука.
requestSubResource string
requestSubResource — це назва субресурсу початкового API-запиту, якщо такий є (наприклад, "status" або "scale"). Якщо це вказано і відрізняється від значення в "subResource", було виконано еквівалентне співставлення та перетворення. Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука.
name string
name — це назва обʼєкта, як подано в запиті. У разі операції CREATE клієнт може не вказати імʼя та покластися на сервер для генерації імені. Якщо це так, це поле буде містити порожній рядок.
namespace string
namespace — це простір імен, повʼязаний із запитом (якщо є).
operation — це операція, що виконується. Це може відрізнятися від операції, що запитується. Наприклад, патч може призвести до виконання операції CREATE або UPDATE.
options — це структура опцій операції, що виконується. наприклад, meta.k8s.io/v1.DeleteOptions або meta.k8s.io/v1.CreateOptions. Це може бути інше, ніж опції, надані викликачем. наприклад, для запиту патчу виконана операція може бути CREATE, у цьому випадку Options буде meta.k8s.io/v1.CreateOptions, навіть якщо викликач надав meta.k8s.io/v1.PatchOptions.
patchType — тип патчу. Наразі ми підтримуємо лише "JSONPatch".
auditAnnotations map[string]string
auditAnnotations — це неструктурована карта ключ-значення, встановлена віддаленим контролером перегляду доступу (наприклад, error=image-blacklisted). Контролери MutatingAdmissionWebhook і ValidatingAdmissionWebhook додадуть до ключів префікс з іменем вебхука (наприклад, imagepolicy.example.com/error=image-blacklisted). AuditAnnotations буде надано вебхуком для додавання додаткового контексту до логу аудиту для цього запиту.
warnings []string
warnings — це список попереджувальних повідомлень, що повертаються клієнту API, який робить запит. Попереджувальні повідомлення описують проблему, яку клієнт, що робить API-запит, має виправити або врахувати. По можливості обмежте попереджувальні повідомлення до 120 символів. Попереджувальні повідомлення, що перевищують 256 символів, та велика кількість попереджувальних повідомлень можуть бути скорочені.
AuthenticationMetadata містить детальну інформацію про те, як було автентифіковано запит.
sourceIPs []string
IP-адреси джерела, звідки надійшов запит і проміжні проксі-сервери. IP-адреси джерела вказані у наступному порядку:
IP-адреси заголовку запиту X-Forwarded-For
Заголовок X-Real-Ip, якщо він не присутній у списку X-Forwarded-For
Віддалена адреса для зʼєднання, якщо вона не відповідає останній IP-адресі у списку до цього (X-Forwarded-For або X-Real-Ip). Примітка: Усі, крім останнього IP, можуть бути довільно встановлені клієнтом.
userAgent string
UserAgent записує рядок агента користувача, наданий клієнтом. Зазначте, що UserAgent надається клієнтом і не може бути довіреним.
Статус відповіді, заповнений навіть коли ObjectReference не є типом Status. Для успішних відповідей це міститиме лише Code і StatusSuccess. Для не-статусних типів помилок відповідей це буде автоматично заповнено повідомленням про помилку.
Обʼєкт API із запиту у форматі JSON. RequestObject записується в тому вигляді, в якому він був у запиті (можливо, повторно закодований як JSON), до конвертації версій, стандартно, допуску або злиття. Це зовнішній обʼєкт типу версії, і він може бути недійсним обʼєктом самостійно. Опускається для запитів без ресурсів. Записується тільки на рівні Request та вище.
Обʼєкт API, що повертається у відповіді, у форматі JSON. ResponseObject записується після перетворення на зовнішній тип і серіалізується як JSON. Опускається для запитів без ресурсів. Записується тільки на рівні Response.
Анотації — це неструктуровані ключові значення, які зберігаються разом з подією аудиту і можуть бути встановлені втулками, викликаними в ланцюжку обслуговування запитів, включаючи втулки автентифікації, авторизації та допуску. Зазначте, що ці анотації призначені для події аудиту і не відповідають метаданим анотацій надісланого обʼєкта. Ключі повинні унікально ідентифікувати інформуючий компонент.
OmitStages — це список етапів, для яких не створюються події. Зверніть увагу, що це також може бути вказано для кожного правила окремо, у такому випадку обʼєднання обох буде пропущено.
omitManagedFields bool
OmitManagedFields вказує, чи слід пропускати керовані поля запитів та відповідей у журналі аудиту API. Це використовується як глобальний стандарт — значення 'true' призведе до пропуску керованих полів, в іншому випадку керовані поля будуть включені до логу аудиту API. Зверніть увагу, що це також може бути вказано для кожного правила окремо, у такому випадку значення, зазначене в правилі, переважить глобальний стандарт.
ImpersonationConstraint — це дієслово, повʼязане з режимом обмеженого наслідування, який використовувався для авторизації ImpersonatedUser, повʼязаного з цією подією аудиту. Воно встановлюється тільки в разі використання обмеженого наслідування.
GroupResources представляють типи ресурсів в API групі.
Поле
Опис
group string
Група — це назва API групи, яка містить ресурси. Порожній рядок представляє основну API групу. * відповідає всім групам.
resources []string
Ресурси — це список ресурсів, до яких застосовується це правило.
Наприклад:
pods відповідає Podʼам.
pods/log відповідає субресурсу log Podʼів.
* відповідає всім ресурсам та їх субресурсам.
pods/* відповідає всім субресурсам Podʼів.
*/scale відповідає всім субресурсам масштабу.
Якщо присутній підстановочний знак, правило перевірки забезпечить, що ресурси не перекриваються між собою.
Порожній список означає, що застосовуються всі ресурси та субресурси в цій API групі.
resourceNames []string
resourceNames — це список імен екземплярів ресурсів, які відповідають політиці. Використання цього поля вимагає, щоб Ресурси були вказані. Порожній список означає, що кожен екземпляр ресурсу відповідає.
Рівень, на якому записуються запити, що відповідають цьому правилу.
users []string
Користувачі (за автентифікованим імʼям користувача), до яких застосовується це правило. Порожній список означає всіх користувачів.
userGroups []string
Групи користувачів, до яких застосовується це правило. Користувач вважається відповідним, якщо він є членом будь-якої з UserGroups. Порожній список означає всі групи користувачів.
verbs []string
Дії, що відповідають цьому правилу. Порожній список означає всі дії.
OmitStages — це список стадій, для яких не створюються події. Зверніть увагу, що це також може бути зазначено для всієї політики, в такому випадку обʼєднання обох буде виключено. Порожній список означає, що обмеження не застосовуються.
omitManagedFields bool
OmitManagedFields вказує, чи слід виключати керовані поля з тіла запиту та відповіді з логу аудиту API.
значення 'true' виключає керовані поля з логу аудиту API
значення 'false' вказує, що керовані поля повинні бути включені в логу аудиту API. Зверніть увагу, що значення, якщо зазначене, у цьому правилі буде переважати над глобальним стандартним значенням. Якщо значення не зазначено, то діє глобальне стандартне значення, вказане в Policy.OmitManagedFields.
TracingConfiguration надає версійну конфігурацію для клієнтів трасування OpenTelemetry.
Поле
Опис
endpoint string
Точка доступу колектора, до якої цей компонент буде надсилати трейси. Зʼєднання є незахищеним і наразі не підтримує TLS. Рекомендовано не встановлювати, точкою доступу є стандартне значення otlp grpc, localhost:4317.
samplingRatePerMillion int32
SamplingRatePerMillion — це кількість зразків, які потрібно зібрати на мільйон відрізків. Рекомендується не встановлювати. Якщо не встановлено, семплер дотримується частоти дискретизації батьківського відрізка, але в іншому випадку ніколи не виконує дискретизацію.
AdmissionConfiguration
AdmissionConfiguration надає версійовану конфігурацію для контролерів допуску.
jwt — це список автентифікаторів для автентифікації користувачів Kubernetes за допомогою токенів, сумісних із JWT. Автентифікатор спробує проаналізувати необроблений ідентифікаційний токен і перевірити, чи він підписаний налаштованим емітентом. Відкритий ключ для перевірки підпису виявляється з публічної точки доступу емітента за допомогою виявлення OIDC. Для вхідного токена кожен автентифікатор JWT буде перевірений у порядку, в якому він вказаний у цьому списку. Однак зверніть увагу, що інші автентифікатори можуть працювати до або після автентифікаторів JWT. Конкретне положення автентифікаторів JWT у звʼязках з іншими автентифікаторами не визначено і не є стабільним у різних версіях. Оскільки кожен автентифікатор JWT повинен мати унікальний URL-адресу емітента, максимум один автентифікатор JWT спробує криптографічно перевірити токен.
Авторизатори — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорець --authorization-modes kube-apiserver Має бути принаймні один.
EncryptionConfiguration
EncryptionConfiguration зберігає повну конфігурацію для провайдерів шифрування. Він також дозволяє використовувати шаблони для вказання ресурсів, які повинні бути зашифровані. Використовуйте '*.<group>' для шифрування всіх ресурсів у групі або '*.*' для шифрування всіх ресурсів. '*.' можна використовувати для шифрування всіх ресурсів у основній групі. '*.*' зашифрує всі ресурси, навіть користувацькі, які додаються після запуску сервера API. Використання шаблонів, що перекриваються в межах одного списку ресурсів або між кількома записами, не дозволяється, оскільки частина конфігурації буде неефективною. Списки ресурсів обробляються в порядку, причому перші списки мають пріоритет.
Приклад:
kind:EncryptionConfigurationapiVersion:apiserver.config.k8s.io/v1resources:- resources:- eventsproviders:- identity:{}# не шифрувати події, навіть якщо *.* зазначено нижче- resources:- secrets- configmaps- pandas.awesome.bears.exampleproviders:- aescbc:keys:- name:key1secret:c2VjcmV0IGlzIHNlY3VyZQ==- resources:- '*.apps'providers:- aescbc:keys:- name:key2secret:c2VjcmV0IGlzIHNlY3VyZSwgb3IgaXMgaXQ/Cg==- resources:- '*.*'providers:- aescbc:keys:- name:key3secret:c2VjcmV0IGlzIHNlY3VyZSwgSSB0aGluaw==
keys — це список ключів, які використовуються для створення AES-трансформера. Кожен ключ повинен бути 32 байти для AES-CBC та 16, 24 або 32 байти для AES-GCM.
Configuration — це вбудований конфігураційний обʼєкт, який використовується як конфігурація втулка. Якщо він присутній, то буде використовуватися замість шляху до конфігураційного файлу.
Тип відноситься до типу авторизатора "Webhook" підтримується в загальному API сервері. Інші API сервери можуть підтримувати додаткові типи авторизаторів, такі як Node, RBAC, ABAC тощо.
name[Обовʼязково] string
Name використовується для опису веб-хука. Це явно використовується в механізмах моніторингу для метрик. Примітка: Імена мають бути у вигляді міток DNS1123, наприклад myauthorizername або піддомени, як myauthorizer.example.domain. Обовʼязкове, без стандартного значення.
username представляє опцію для атрибуту імені користувача. Значення вимоги повинно бути єдиним рядком. Те саме, що й прапорці --oidc-username-claim та --oidc-username-prefix. Якщо встановлено username.expression, вираз повинен утворювати значення рядка. Якщо username.expression використовує 'claims.email', то 'claims.email_verified' має використовуватися в username.expression або extra[].valueExpression або claimValidationRules[].expression. Прикладом виразу правила перевірки заявки, який відповідає перевірці, що автоматично застосовується, коли username.claim встановлено на 'email', є 'claims.?email_verified.orValue(true) == true'. Явно порівнюючи значення з true, ми дозволяємо перевірці типу бачити, що результат буде булевим, і переконуємося, що небулева заявка email_verified буде виявлена під час виконання.
У підході на основі прапорців --oidc-username-claim та --oidc-username-prefix є необовʼязковими. Якщо --oidc-username-claim не встановлено, стандартним значенням є "sub". Для конфігурації автентифікації не існує стандартних значень для claim або prefix. Claim та prefix необхідно встановлювати явно. Для claim, якщо --oidc-username-claim не було встановлено за допомогою підходу на основі прапорців, налаштуйте username.claim="sub" у конфігурації автентифікації. Для prefix: (1) --oidc-username-prefix="-", до імені користувача не було додано префікс. Для такої самої поведінки з використанням конфігурації автентифікації встановіть username.prefix="" (2) --oidc-username-prefix="" і --oidc-username-claim != "email", префікс був "<значення --oidc-issuer-url>#". Для такої самої поведінки з використанням конфігурації автентифікації встановіть username.prefix="#" (3) --oidc-username-prefix="". Для такої самої поведінки з використанням конфігурації автентифікації встановіть username.prefix=""
groups представляє опцію для атрибуту groups. Значення вимоги повинно бути рядком або масивом рядків. Якщо встановлено groups.claim, необхідно вказати префікс (який може бути порожнім рядком). Якщо встановлено groups.expression, вираз повинен утворювати значення рядка або масиву рядків. Значення "", [], та null трактуються як відсутність відповідності групи.
uid представляє опцію для атрибуту uid. Claim повинен бути рядком в однині. Якщо встановлено uid.expression, вираз повинен утворювати рядкове значення.
extra представляє опцію для додаткового атрибуту. Вираз повинен створювати значення рядка або масиву рядків. Якщо значення порожнє, додаткове зіставлення не буде присутнє.
жорстко закодований ключ / значення extra
key: "foo"valueExpression: "'bar'" Це призведе до появи додаткового атрибуту — foo: ["bar"]
жорстко закодований ключ, значення копіюється зі значення claim
key: "foo" valueExpression: "claims.some_claim" Це призведе до появи додаткового атрибуту — foo: [значення some_claim]
hжорстко закодований ключ, значення походить від значення claim
ClaimOrExpression забезпечує конфігурацію для окремого твердження або виразу.
Поле
Опис
claim string
claim — це JWT-вимога, яку потрібно використовувати. Необхідно встановити або claim, або expression. Взаємовиключні з expression.
expression string
expression представляє вираз, який буде обчислюватися CEL.
Вирази CEL мають доступ до вмісту вимог токенів, організованих у змінну CEL:
'claims' — це map імен вимог до значень вимог. Наприклад, до змінної з іменем 'sub' можна отримати доступ як 'claims.sub'. До вкладених вимог можна отримати доступ за допомогою крапкової нотації, наприклад 'claims.foo.bar'.
ClaimValidationRule забезпечує конфігурацію для правила перевірки однієї вимоги.
Поле
Опис
claim string
claim — це назва потрібної вимоги. Те саме, що й прапорець --oidc-required-claim. Підтримуються лише ключі вимог типу string. Взаємовиключні з expression та message.
requiredValue string
requiredValue — це значення потрібної вимоги. Те саме, що й прапорець --oidc-required-claim. Підтримуються лише значення вимог у вигляді string. Якщо вимога встановлена, а requiredValue не встановлено, вимога має бути присутня із значенням, встановленим як порожній рядок. Взаємовиключне з expression та message.
expression string
expression представляє вираз, який буде оцінений CEL. Повинен повертати логічне значення.
Вирази CEL мають доступ до вмісту вимог токенів, організованих у змінні CEL:
'claims' — це map імен вимог до значень вимог. Наприклад, до змінної з іменем 'sub' можна отримати доступ як 'claims.sub'. До вкладених вимог можна отримати доступ за допомогою крапкової нотації, наприклад 'claims.foo.bar'. Для проходження перевірки необхідно повернути значення true.
message налаштовує повідомлення про помилку, яке повертається, коли вираз повертає значення false. message є літеральним рядком. Взаємовиключний з claim та requiredValue.
ExtraMapping забезпечує конфігурацію для одного додаткового зіставлення.
Поле
Опис
key[Обовʼязково] string
key — це рядок, який використовується як додатковий атрибут key. key повинен бути префіксом домену (наприклад, example.org/foo). Усі символи перед першим "/" повинні бути дійсним піддоменом, як визначено в RFC 1123. Усі символи після першого "/" повинні бути дійсними символами шляху HTTP, як визначено в RFC 3986. key повинен бути в нижньому регістрі. Повинен бути унікальним.
valueExpression[Обовʼязково] string
valueExpression — це вираз CEL для отримання додаткового значення атрибута. valueExpression повинен створювати значення типу рядок або масив рядків. Значення "", [] і null розглядаються як відсутність додаткового зіставлення. Порожні значення рядків, що містяться в масиві рядків, відфільтровуються.
Вирази CEL мають доступ до вмісту вимог токенів, організованих у змінну CEL:
'claims' — це map імен вимог до значень вимог. Наприклад, до змінної з іменем 'sub' можна отримати доступ як 'claims.sub'. До вкладених вимог можна отримати доступ за допомогою крапкової нотації, наприклад 'claims.foo.bar'.
Issuer надає конфігурацію для конкретних налаштувань зовнішнього постачальника.
Поле
Опис
url[Обовʼязково] string
url вказує на URL-адресу емітента у форматі https://url або https://url/path. Вона повинна відповідати запиту "iss" у представленому JWT та емітенту, отриманому з виявлення. Те саме значення, що й прапорець --oidc-issuer-url. Інформація про виявлення отримується з "{url}/.well-known/openid-configuration", якщо вона не замінена discoveryURL. Повинна бути унікальною для всіх автентифікаторів JWT. Зверніть увагу, що конфігурація селектору egress не використовується для цього мережевого зʼєднання.
discoveryURL string
discoveryURL, якщо вказано, замінює URL-адресу, яка використовується для отримання інформації про виявлення, замість використання "{url}/.well-known/openid-configuration". Використовується точне вказане значення, тому "/.well-known/openid-configuration" має бути включено в discoveryURL, якщо це необхідно.
Поле "issuer" у отриманій інформації про виявлення повинно відповідати полю "issuer.url" в AuthenticationConfiguration і буде використовуватися для перевірки заявки "iss" у представленому JWT. Це стосується сценаріїв, коли відомі та jwks точки доступу розміщені в іншому місці, ніж емітент (наприклад, локально в кластері).
Приклад: URL-адреса виявлення, яка відкривається за допомогою сервісу Kubernetes 'oidc' в просторі імен 'oidc-namespace', а інформація про виявлення доступна за адресою '/.well-known/openid-configuration'. discoveryURL: "https://oidc.oidc-namespace/.well-known/openid-configuration" certificateAuthority використовується для перевірки зʼєднання TLS, а імʼя хосту в сертифікаті leaf має бути встановлено на 'oidc.oidc-namespace'.
discoveryURL повинен відрізнятися від url. Повинен бути унікальним для всіх автентифікаторів JWT. Зверніть увагу, що конфігурація селектора egress не використовується для цього мережевого зʼєднання.
certificateAuthority string
certificateAuthority містить сертифікати центру сертифікації, закодовані у форматі PEM, які використовуються для перевірки зʼєднання під час отримання інформації про виявлення. Якщо не встановлено, використовується системний верифікатор. Те саме значення, що й вміст файлу, на який посилається прапорець --oidc-ca-file.
audiences[Обовʼязково] []string
audiences — набір дозволених аудиторій, яким має бути видано JWT. Принаймні один із записів має відповідати вимозі "aud" у представлених JWT. Те саме значення, що й прапорець --oidc-client-id (хоча це поле підтримує масив). Повинно бути не порожнім.
audienceMatchPolicy визначає, як поле "audiences" використовується для зіставлення з вимогою "aud" у представленому JWT. Допустимі значення:
"MatchAny", коли вказано кілька аудиторій, і
порожній (або не встановлений) або "MatchAny", коли вказано одну аудиторію.
MatchAny: вимога "aud" у представленому JWT повинна відповідати принаймні одному із записів у полі "audiences". Наприклад, якщо "audiences" дорівнює ["foo", "bar"], то вимога "aud" у представленому JWT повинна містити або "foo", або "bar" (а може містити і те, і інше).
"": Політика відповідності може бути порожньою (або не встановленою), коли в полі "audiences" вказана одна аудиторія. Вимога "aud" у представленому JWT повинна містити одну аудиторію (і може містити інші).
Для більш детальної перевірки аудиторії використовуйте claimValidationRules. Приклад: claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])' для вимагання точної відповідності.
egressSelectorType — це індикатор, який вказує, який селектор egress слід використовувати для надсилання всього трафіку, що має звʼязки з цим емітентом (виявлення, JWKS, розподілені вимоги тощо). Якщо не вказано, номеронабирач користувача не використовується. Якщо вказано, допустимими варіантами є "controlplane" та "cluster". Вони відповідають повʼязаним значенням у --egress-selector-config-file.
controlplane: для трафіку, призначеного для передачі на панель управління.
cluster: для трафіку, призначеного для системи, що управляється Kubernetes.
userValidationRules — це правила, які застосовуються до кінцевого користувача перед завершенням автентифікації. Вони дозволяють застосовувати інваріанти до вхідних ідентифікаторів, наприклад, запобігати використанню префікса системи, який зазвичай використовується компонентами Kubernetes. Правила перевірки обʼєднуються за допомогою логічного оператора AND і повинні повертати значення true, щоб перевірка пройшла успішно.
KMSConfiguration містить назву, розмір кешу та шлях до конфігураційного файлу для трансформера конвертів на основі KMS.
Поле
Опис
apiVersion string
apiVersion KeyManagementService
name[Обовʼязково] string
name — це назва втулка KMS,який буде використовуватися.
cachesize int32
cachesize — це максимальна кількість секретів, які кешуються в памʼяті. Стандартне значення — 1000. Встановіть негативне значення, щоб вимкнути кешування. Це поле дозволено лише для провайдерів KMS v1.
endpoint[Обовʼязково] string
endpoint — це адреса прослуховувння gRPC сервера, наприклад, "unix:///var/run/kms-provider.sock".
PrefixedClaimOrExpression забезпечує конфігурацію для одного префіксованого твердження або виразу.
Поле
Опис
claim string
claim — це JWT-вимога, яку слід використовувати. Взаємовиключна з expression.
prefix string
prefix додається до значення claim, щоб запобігти конфліктам з наявними іменами. prefix потрібно встановити, якщо встановлено claim, і може бути порожнім рядком. Взаємовиключний з expression.
expression string
expression представляє вираз, який буде обчислюватися CEL.
Вирази CEL мають доступ до вмісту вимог токенів, організованих у змінну CEL:
'claims' — це map імен вимог до значень вимог. Наприклад, до змінної з іменем 'sub' можна отримати доступ як 'claims.sub'. До вкладених вимог можна отримати доступ за допомогою крапкової нотації, наприклад 'claims.foo.bar'.
ResourceConfiguration зберігає конфігурацію для кожного ресурсу.
Поле
Опис
resources[Обовʼязково] []string
resources — це список ресурсів Kubernetes, які мають бути зашифровані. Імена ресурсів походять від resource або resource.group з group/version/resource. Наприклад: pandas.awesome.bears.example — це ресурс користувача з 'group': awesome.bears.example, 'resource': pandas. Використовуйте '\*.\*' для шифрування всіх ресурсів і '\*.\' для шифрування всіх ресурсів у певній групі. Наприклад: '\*.awesome.bears.example' зашифрує всі ресурси у групі 'awesome.bears.example'. Наприклад: '\*.' зашифрує всі ресурси в основній групі (такі як pods, configmaps тощо).
UserValidationRule забезпечує конфігурацію для окремого правила перевірки інформації про користувача.
Поле
Опис
expression[Обовʼязково] string
expression представляє вираз, який буде оцінений CEL. Повинен повертати true, щоб перевірка пройшла успішно.
Вирази CEL мають доступ до вмісту UserInfo, організованого у змінну CEL:
'user' - authentication.k8s.io/v1, обʼєкт Kind=UserInfo посилається на https://github.com/kubernetes/api/blob/release-1.28/authentication/v1/types.go#L105-L122 для отримання визначення. Документація API: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#userinfo-v1-authentication-k8s-io
Тривалість кешування 'authorized' відповідей від авторизатора вебхуку. Теж, що й встановлення прапорця --authorization-webhook-cache-authorized-ttl. Стандартно: 5m0s
cacheAuthorizedRequests bool
CacheAuthorizedRequests визначає, чи слід кешувати авторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля AuthorizedTTL. Стандартно: true
Тривалість кешування 'unauthorized' відповідей від авторизатора вебхуку. Теж, що й встановлення прапорця --authorization-webhook-cache-unauthorized-ttl. Стандартно: 30s
cacheUnauthorizedRequests bool
CacheUnauthorizedRequests визначає, чи слід кешувати неавторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля UnauthorizedTTL. Стандартно: true
Таймаут для запиту веб-хука. Максимально допустиме значення — 30 секунд. Обовʼязкове, без стандартного значення.
subjectAccessReviewVersion[Обовʼязково] string
Версія API authorization.k8s.io SubjectAccessReview, яку потрібно надсилати до веб-хука та очікувати від нього. Теж, що й встановлення прапорця --authorization-webhook-version. Допустимі значення: v1beta1, v1. Обовʼязкове, без стандартного значення.
MatchConditionSubjectAccessReviewVersion specifies the SubjectAccessReview version the CEL expressions are evaluated against. Допустимі значення: v1. Обовʼязкове, без стандартного значення.
failurePolicy[Обовʼязково] string
Керує рішенням про авторизацію, коли вебхук не може завершити запит або повертає неправильну відповідь чи помилки в оцінці matchConditions. Допустимі значення:
NoOpinion: продовжити до наступних авторизаторів, щоб побачити, чи дозволив хтось із них запит
Deny: відхилити запит без узгодження з наступними авторизаторами. Обовʼязкове, без стандартного значення.
matchConditions — це список умов, яким повинен відповідати запит, щоб бути відправленим на цей вебхук. Порожній список matchConditions відповідає всім запитам. Допускається максимум 64 умови збігу.
Логіка точного збігу така (по порядку):
Якщо хоча б одне значення matchCondition дорівнює FALSE, то вебхук пропускається.
Якщо ALL matchConditions мають значення TRUE, то викликається веб-хук.
Якщо хоча б одне matchCondition повертає помилку (але жодне з них не є FALSE):
If failurePolicy=Deny, тоді веб-хук відхиляє запит
If failurePolicy=NoOpinion, то помилка ігнорується і веб-хук пропускається
Керує тим, як веб-хук повинен взаємодіяти з сервером. Допустимі значення:
KubeConfigFile: використовуйте файл, вказаний у kubeConfigFile, щоб визначити місцезнаходження сервера.
InClusterConfig: використовувати внутрішньокластерну конфігурацію для виклику API SubjectAccessReview, розміщеного на kube-apiserver. Цей режим не дозволено для kube-apiserver.
kubeConfigFile[Обовʼязково] string
Шлях до KubeConfigFile для інформації про зʼєднання. Обов'язковий, якщо connectionInfo. Має тип KubeConfig
expression представляє вираз, який буде обчислено CEL. Повинен мати тип bool. Вирази CEL мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана в subjectAccessReviewVersion у змінній запиту, має значення v1beta1, вміст буде перетворено у версію v1 перед обчисленням виразу CEL.
'resourceAttributes' описує інформацію для запиту доступу до ресурсу і не встановлюється для нересурсних запитів, наприклад, has(request.resourceAttributes) && request.resourceAttributes.namespace == 'default'
'nonResourceAttributes' описує інформацію для запиту доступу до нересурсів і не встановлюється для запитів до ресурсів. наприклад, has(request.nonResourceAttributes) && request.nonResourceAttributes.path == '/healthz'.
'user' — користувач, для якого потрібно перевірити, наприклад, request.user == 'alice'
'groups' — це групи, для яких потрібно протестувати, наприклад, ('group1' в request.groups)
'extra' відповідає методу user.Info.GetExtra() з автентифікатора.
'uid' — інформація про користувача, який надіслав запит, наприклад, request.uid == '1'.
TracingConfiguration надає версійну конфігурацію для клієнтів OpenTelemetry tracing.
Поле
Опис
endpoint string
Endpoint колектора, куди цей компонент буде надсилати трасування. Зʼєднання є незахищеним і наразі не підтримує TLS. Рекомендується не вказувати, і використовувати стандартно otlp grpc localhost:4317.
samplingRatePerMillion int32
SamplingRatePerMillion — це кількість зразків, які потрібно збирати на мільйон проміжків. Рекомендується не вказувати. Якщо не вказано, зразок буде відповідати ставці зразка батьківського проміжку, але інакше ніколи не буде зібраний.
AdmissionConfiguration
AdmissionConfiguration надає версійну конфігурацію для контролерів допуску.
jwt — це список автентифікаторів для автентифікації користувачів Kubernetes за допомогою JWT-сумісних токенів. Автентифікатор спробує розпарсити ID токен, перевірити, чи він підписаний налаштованим постачальником. Публічний ключ для перевірки підпису знаходиться на публічній точці доступу постачальника, використовуючи OIDC discovery. Для вхідного токена кожен JWT-автентифікатор буде спробований у порядку, в якому він зазначений у цьому списку. Зверніть увагу, що інші автентифікатори можуть запускатися до або після JWT-автентифікаторів. Специфічне розташування JWT-автентифікаторів відносно інших автентифікаторів не визначено і не є стабільним у різних версіях. Оскільки кожен JWT-автентифікатор повинен мати унікальний URL постачальника, в більшості випадків лише один JWT-автентифікатор спробує криптографічно перевірити токен.
Мінімальне дійсне наповнення JWT повинно містити наступні вимоги:
Authorizers — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорец --authorization-modes в kube-apiserver. Повинен бути принаймні один.
EgressSelectorConfiguration
EgressSelectorConfiguration надає версійну конфігурацію для клієнтів вибору виходу
Configuration — це вбудований обʼєкт конфігурації, який буде використовуватися як конфігурація втулка. Якщо він присутній, він буде використовуватися замість шляху до конфігураційного файлу.
Type визначає тип авторизатора. "Webhook" підтримується в загальному API-сервері. Інші API-сервери можуть підтримувати додаткові типи авторизаторів, такі як Node, RBAC, ABAC тощо.
name[Обовʼязково] string
Name використовується для опису вебхука. Це явно використовується в механізмах моніторингу для метрик. Примітка: Імена повинні бути у форматі DNS1123, такі як myauthorizername або піддомени, такі як myauthorizer.example.domain. Обовʼязково, без стандартного значення.
username представляє опцію для атрибута імені користувача. Значення заявки повинно бути єдиним рядком. Також використовується для прапорців --oidc-username-claim і --oidc-username-prefix. Якщо встановлено username.expression, вираз повинен повертати значення рядка. Якщо username.expression використовує 'claims.email', тоді 'claims.email_verified' повинно бути використане в username.expression або extra[*].valueExpression or claimValidationRules[*].expression. Приклад виразу правил перевірки заявок, який відповідає перевірці, автоматично застосованій, коли username.claim встановлено в 'email', є 'claims.?email_verified.orValue(true) == true'. Явно порівнюючи значення значення з true, ми дозволимо перевірці типів побачити, що результат буде булевим, і переконатися, що небулевий email_verified буде перехоплено під час виконання.
У підході на основі прапорців, --oidc-username-claim і --oidc-username-prefix є необовʼязковими. Якщо --oidc-username-claim не встановлено, стандартне значення — "sub". Для конфігурації автентифікації немає стандартного значення для заявки або префікса. Заявка та префікс повинні бути явно встановлені. Для заявки, якщо --oidc-username-claim не був встановлений з допомогою підходу старого прапорця, налаштуйте username.claim="sub" у конфігурації автентифікації. Для префікса: (1) --oidc-username-prefix="-" не додає префікс до імені користувача. Для такої ж поведінки, використовуючи конфігурацію автентифікації, налаштуйте username.prefix="" (2) --oidc-username-prefix="" і --oidc-username-claim != "email", префікс був ""<value of --oidc-issuer-url>#". Для такої ж поведінки, використовуючи конфігурацію автентифікації, налаштуйте username.prefix="#" (3) --oidc-username-prefix="". Для такої ж поведінки, використовуючи конфігурацію автентифікації, налаштуйте username.prefix=""
groups представляє опцію для атрибута груп. Значення заявки повинно бути рядком або масивом рядків. Якщо встановлено groups.claim, префікс повинен бути зазначений (і може бути пустим рядком). Якщо встановлено groups.expression, вираз повинен повертати рядок або масив рядків. "" (пустий рядок), [] (пустий масив) і null значення трактуються як відсутність зіставлення груп.
extra представляє опцію для атрибута extra. вираз повинен повертати рядок або масив рядків. Якщо значення порожнє, відображення extra не буде присутнім.
жорстко закодоване додаткові ключ/значення
key: "foo"
valueExpression: "'bar'"
Це призведе до додаткового атрибута — foo: ["bar"]
жорстко закодований ключ копіює значення заявки
key: "foo"
valueExpression: "claims.some_claim"
Це призведе до додаткового атрибута — foo: [value of some_claim]
жорстко закодований ключ, значення, що походить від значення заявки
ClaimOrExpression надає конфігурацію для однієї заявки або виразу.
Поле
Опис
claim string
claim — це заявка JWT, яку потрібно використовувати. Або claim, або expression повинно бути встановлено. Взаємно виключаються в expression.
expression string
expression представляє вираз, який буде оцінений CEL.
Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL:
'claims' це map назв заявок до значень заявок.
Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'.
Вкладені заявки можна отримати за допомогою позначки крапки, наприклад, 'claims.foo.bar'.
ClaimValidationRule надає конфігурацію для однієї правила перевірки заявки.
Поле
Опис
claim string
claim — це імʼя обовʼязкової заявки. Також використовується для прапорця --oidc-required-claim. Підтримуються тільки рядкові ключі заявок. Взаємно виключається в expression і message.
requiredValue string
requiredValue — це значення обовʼязкової заявки. Також використовується для прапорця --oidc-required-claim. Підтримуються тільки рядкові значення заявок. Якщо claim встановлено, а requiredValue не встановлено, заявка повинна бути присутньою зі значенням, встановленим у порожній рядок. Взаємно виключається з expression і message.
expression string
expression представляє вираз, який буде оцінений CEL. Повинно повернути boolean.
Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL:
'claims' це map назв заявок до значень заявок. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені заявки можна отримати за допомогою позначки крапки, наприклад, 'claims.foo.bar'. Повинно повернути true для проходження перевірки.
message налаштовує повернуте повідомлення про помилку, коли вираз повертає false. message є літеральним рядком. Взаємно виключається з claim і requiredValue.
transport визначає конфігурації транспорту, які ми використовуємо для зʼєднання з сервером konnectivity. Це потрібно, якщо ProxyProtocol — HTTPConnect або GRPC.
EgressSelection надає конфігурацію для одного клієнта egress selection.
Поле
Опис
name[Обовʼязково] string
name — це назва egress selection. Підтримувані значення: "controlplane", "master", "etcd" та "cluster". "master" egress selector застарілий і замінений на "controlplane".
ExtraMapping надає конфігурацію для одного додаткового зіставлення.
Поле
Опис
key[Обовʼязково] string
key — це рядок, що використовується як ключ додаткового атрибуту. key повинен бути шляхом з префіксом домену (наприклад, example.org/foo). Усі символи перед першим "/" повинні бути дійсним піддоменом, як визначено у RFC 1123. Усі символи після першого "/" повинні бути дійсними символами шляху HTTP, як визначено у RFC 3986. key повинен бути у нижньому регістрі. Має бути унікальним.
valueExpression[Обовʼязково] string
valueExpression — це вираз CEL для вилучення значення додаткового атрибуту. valueExpression повинен виробляти рядкове або масив рядкових значень. "", [], і null значення трактуються як відсутність додаткового зіставлення. Порожні рядкові значення, що містяться в масиві рядків, відфільтровуються.
Вирази CEL мають доступ до вмісту заявок токена, організованих у змінній CEL:
'claims' це map назв заявок до значень заявок. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені заявки можна отримати за допомогою позначки крапки, наприклад, 'claims.foo.bar'.
Issuer надає конфігурацію для конкретних налаштувань зовнішнього постачальника.
Поле
Опис
url[Обовʼязково] string
url вказує на URL-адресу видавця у форматі https://url або https://url/path. Це повинно відповідати заявці "iss" у поданому JWT і видавцю, повернутому з виявлення. Те ж саме значення, що і прапорець --oidc-issuer-url. Інформація про виявлення отримується з "{url}/.well-known/openid-configuration", якщо не перевизначено за допомогою discoveryURL. Має бути унікальним для всіх JWT автентифікаторів. Зверніть увагу, що конфігурація вибору egress не використовується для цього мережевого зʼєднання.
discoveryURL string
discoveryURL, якщо вказано, перевизначає URL, який використовується для отримання інформації про виявлення, замість використання "{url}/.well-known/openid-configuration". Використовується точне вказане значення, тому "/.well-known/openid-configuration" повинно бути включено в discoveryURL, якщо це потрібно.
Поле "issuer" у отриманій інформації про виявлення повинно відповідати полю "issuer.url" у AuthenticationConfiguration і буде використовуватися для перевірки заявки "iss" у поданому JWT. Це для сценаріїв, коли точки доступу well-known і jwks розміщені в іншому місці, ніж видавець (наприклад, локально в кластері).
Приклад: URL виявлення, який опублікований за допомогою сервіса kubernetes 'oidc' у просторі імен 'oidc-namespace', а інформація про виявлення доступна за адресою '/.well-known/openid-configuration'. discoveryURL: "https://oidc.oidc-namespace/.well-known/openid-configuration" certificateAuthority використовується для перевірки зʼєднання TLS, а імʼя хоста на сертифікаті повинно бути встановлено як 'oidc.oidc-namespace'.
discoveryURL повинен відрізнятися від url. Має бути унікальним для всіх JWT автентифікаторів. Зверніть увагу, що конфігурація вибору egress не використовується для цього мережевого зʼєднання.
certificateAuthority string
certificateAuthority містить PEM-кодовані сертифікати органу сертифікації, які використовуються для перевірки зʼєднання під час отримання інформації про виявлення. Якщо не встановлено, використовується системний перевіряючий. Те ж саме значення, що і вміст файлу, на який посилається прапорець --oidc-ca-file.
audiences[Обовʼязково] []string
audiences — це набір прийнятних аудиторій, до яких повинен бути виданий JWT. Принаймні один з записів повинен відповідати заявці "aud" у поданих JWT. Те ж саме значення, що і прапорець --oidc-client-id (хоча це поле підтримує масив). Має бути непорожнім.
audienceMatchPolicy визначає, як поле "audiences" використовується для відповідності заявці "aud" у поданому JWT. Допустимі значення:
"MatchAny" при вказанні кількох аудиторій та
порожній (або не встановлений) або "MatchAny" при вказанні однієї аудиторії.
MatchAny: заявка "aud" у поданому JWT повинна відповідати принаймні одному з записів у полі "audiences". Наприклад, якщо "audiences" — ["foo", "bar"], заявка "aud" у поданому JWT повинна містити або "foo", або "bar" (і може містити обидва).
"": Політика відповідності може бути порожньою (або не встановленою) при вказанні однієї аудиторії у полі "audiences". Заявка "aud" у поданому JWT повинна містити одну аудиторію (і може містити інші).
Для більш детальної перевірки аудиторій використовуйте claimValidationRules. приклад: claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])' для вимоги точної відповідності.
egressSelectorType — це індикатор, який вказує, який селектор egress слід використовувати для надсилання всього трафіку, що має звʼязки з цим емітентом (виявлення, JWKS, розподілені вимоги тощо). Якщо не вказано, номеронабирач користувача не використовується. Якщо вказано, допустимими варіантами є "controlplane" та "cluster". Вони відповідають повʼязаним значенням у --egress-selector-config-file.
controlplane: для трафіку, призначеного для передачі на панель управління.
cluster: для трафіку, призначеного для системи, що управляється Kubernetes.
userValidationRules - це правила, які застосовуються до кінцевого користувача перед завершенням автентифікації. Ці правила дозволяють застосовувати інваріанти до вхідних ідентичностей, такі як запобігання використанню префіксу system:, який зазвичай використовується компонентами Kubernetes. Правила перевірки поєднуються логічним AND і повинні всі повертати true для успішної перевірки.
PrefixedClaimOrExpression надає конфігурацію для однієї префіксованої заявки або виразу.
Поле
Опис
claim string
claim — це заявка JWT для використання. Є взаємовиключою з expression.
prefix string
prefix додається до значення заявки, щоб уникнути конфліктів з існуючими іменами. prefix повинен бути встановлений, якщо встановлена заявка, і може бути порожнім рядком. Взаємовиключається з expression.
expression string
expression представляє вираз, який буде оцінюватися CEL.
CEL вирази мають доступ до вмісту заявок токена, організованого в CEL змінну:
'claims' — це мапа імен заявок до їх значень. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені заявки можна отримати за допомогою нотації крапок, наприклад, 'claims.foo.bar'.
TLSConfig надає інформацію для автентифікації для підключення до konnectivity server. Використовується тільки з TCPTransport.
Поле
Опис
caBundle string
caBundle — це розташування файлу з CA, який буде використовуватися для встановлення довіри з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Якщо відсутній, коли URL TCPTransport має префікс https://, стандартно використовуються системні корені довіри.
clientKey string
clientKey — це розташування файлу з ключем клієнта, який буде використовуватися в mtls-рукостисканнях з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Повинно бути налаштованим, якщо URL TCPTransport має префікс https://
clientCert string
clientCert — це розташування файлу з сертифікатом клієнта, який буде використовуватися в mtls-рукостисканнях з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Повинно бути налаштованим, якщо URL TCPTransport має префікс https://
tlsServerName string
tlsServerName використовується для перевірки сертифіката сервера. Якщо tlsServerName порожній, використовується імʼя хоста, яке використовується для звʼязку з сервером.
TCP — це конфігурація TCP для звʼязку з konnectivity server через TCP. ProxyProtocol з GRPC наразі не підтримується з TCP транспортом. Потрібно налаштувати принаймні один з TCP або UDS.
UDSTransport надає інформацію для підключення до konnectivity server через UDS.
Поле
Опис
udsName[Обовʼязкове] string
UDSName — це назва unix domain socket для підключення до konnectivity server. Це не використовує префікс unix://. (Наприклад: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket)
Тривалість кешування відповідей "authorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця --authorization-webhook-cache-authorized-ttl Стандартно: 5m0s
cacheAuthorizedRequests bool
CacheAuthorizedRequests визначає, чи слід кешувати авторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля AuthorizedTTL. Стандартно: true
Тривалість кешування відповідей "unauthorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця --authorization-webhook-cache-unauthorized-ttl Стандартно: 30s
cacheUnauthorizedRequests bool
CacheUnauthorizedRequests визначає, чи слід кешувати неавторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля UnauthorizedTTL. Стандартно: true
Час очікування відповіді від вебхука Максимально дозволене значення — 30s. Обовʼязкове, стандартне значення відсутнє.
subjectAccessReviewVersion[Обовʼязкове] string
Версія API authorization.k8s.io SubjectAccessReview, яку потрібно відправити та очікувати від вебхука. Те ж саме, що й встановлення прапорця --authorization-webhook-version Дійсні значення: v1beta1, v1. Обовʼязкове, стандартне значення відсутнє
MatchConditionSubjectAccessReviewVersion визначає версію SubjectAccessReview, яку використовують для оцінки виразів CEL. Дійсні значення: v1. Обовʼязкове, стандартне значення відсутнє
failurePolicy[Обовʼязкове] string
Контролює рішення про авторизацію, коли запит вебхука не вдається завершити або повертає некоректну відповідь або помилки при оцінці matchConditions. Дійсні значення:
NoOpinion: продовжити до наступних авторизаторів, щоб побачити, чи один з них дозволить запит
Deny: відхилити запит без консультації з наступними авторизаторами. Обовʼязкове, стандартне значення відсутнє.
matchConditions — це список умов, які мають бути виконані, щоб запит було надіслано на цей вебхук. Порожній список matchConditions відповідає всім запитам. Максимально допустимо 64 умови відповідності.
Точна логіка відповідності (в порядку):
Якщо принаймні одна умова відповідності оцінюється як FALSE, то вебхук пропускається.
Якщо ВСІ умови відповідності оцінюються як TRUE, то вебхук викликається.
Якщо принаймні одна умова відповідності оцінюється як помилка (але жодна з них не є FALSE):
Якщо failurePolicy=Deny, то вебхук відхиляє запит
Якщо failurePolicy=NoOpinion, то помилка ігнорується, і вебхук пропускається
Контролює, як вебхук повинен спілкуватися з сервером. Дійсні значення:
KubeConfigFile: використовувати файл, зазначений у kubeConfigFile, щоб знайти сервер.
InClusterConfig: використовувати внутрішньокластерну конфігурацію для виклику SubjectAccessReview API, який розміщений kube-apiserver. Цей режим не дозволено для kube-apiserver.
kubeConfigFile[Обовʼязкове] string
Шлях до KubeConfigFile для інформації про підключення. Обовʼязково, якщо connectionInfo.Type є KubeConfig
expression представляє вираз, який буде оцінюватися за допомогою CEL. Повинен оцінюватися як bool. CEL вирази мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана в subjectAccessReviewVersion у змінній запиту, є v1beta1, вміст буде перетворено на версію v1 перед оцінкою виразу CEL.
'resourceAttributes' описує інформацію для запиту доступу до ресурсу і не встановлюється для нересурсних запитів, наприклад, has(request.resourceAttributes) && request.resourceAttributes.namespace == 'default'
'nonResourceAttributes' описує інформацію для запиту доступу до нересурсів і не встановлюється для запитів до ресурсів. наприклад, has(request.nonResourceAttributes) && request.nonResourceAttributes.path == '/healthz'.
'user' — користувач, для якого потрібно перевірити, наприклад, request.user == 'alice'
'groups' — це групи, для яких потрібно протестувати, наприклад, ('group1' in request.groups)
'extra' відповідає методу user.Info.GetExtra() з автентифікатора.
'uid' — інформація про користувача, який надіслав запит, наприклад, request.uid == '1'.
TracingConfiguration надає версійні налаштування для клієнтів трасування OpenTelemetry.
Поле
Опис
endpoint string
Точка доступу колектора, до якого цей компонент буде надсилати трасування. Зʼєднання є незахищеним і наразі не підтримує TLS. Рекомендовано не встановлювати, стандартна точка доступу для otlp grpc — localhost:4317.
samplingRatePerMillion int32
SamplingRatePerMillion — це кількість зразків для збору на мільйон відрізків. Рекомендовано не встановлювати. Якщо не задано, семплер дотримується частоти дискретизації батьківського діапазону а якщо ні, то ніколи не робить вибірки.
AuthenticationConfiguration
AuthenticationConfiguration надає версійні налаштування для автентифікації.
jwt — це список автентифікаторів для автентифікації користувачів Kubernetes за допомогою токенів, що відповідають стандартам JWT. Автентифікатор спробує розібрати необроблений ID токен, перевірити, чи підписаний він налаштованим видавцем. Публічний ключ для перевірки підпису виявляється з публічної кінцевої точки видавця за допомогою OIDC discovery. Для вхідного токена кожен JWT автентифікатор буде спробуваний у порядку, в якому він зазначений у цьому списку. Однак зверніть увагу, що інші автентифікатори можуть працювати до або після JWT автентифікаторів. Конкретне положення JWT автентифікаторів щодо інших автентифікаторів не визначено і не стабільне між випусками. Оскільки кожен JWT автентифікатор повинен мати унікальний URL видавця, максимум один JWT автентифікатор спробує криптографічно перевірити токен.
Мінімально допустимий JWT payload повинен містити наступні заявки:
Authorizers — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорець — --authorization-modes kube-apiserver. Має бути принаймні один.
EgressSelectorConfiguration
EgressSelectorConfiguration надає версійні налаштування для клієнтів вибору egress.
Тип відноситься до типу авторизатора "Webhook" підтримується у загальному API сервері Інші API сервери можуть підтримувати додаткові типи авторизаторів такі як Node, RBAC, ABAC і т.д.
name[Обовʼязково] string
Імʼя, яке використовується для опису webhook Це явно використовується в моніторинговій машинерії для метрик Примітка: Імена повинні бути мітками DNS1123, такими як myauthorizername або піддоменами, такими як myauthorizer.example.domain Обовʼязково, стандартного значення немає
username представляє опцію для атрибуту username. Значення claim має бути одним рядком. Те ж саме, що й прапори --oidc-username-claim та --oidc-username-prefix. Якщо встановлено username.expression, вираз повинен видавати значення рядка. Якщо username.expression використовує 'claims.email', тоді 'claims.email_verified' повинен використовуватися в username.expression або extra[*].valueExpression or claimValidationRules[*].expression. Приклад виразу правила валідації claims, який відповідає валідації, що автоматично застосовується, коли username.claim встановлено на 'email', — це 'claims.?email_verified.orValue(true) == true'. Явно порівнюючи значення значення з true, ми дозволимо перевірці типів побачити, що результат буде булевим, і переконатися, що небулевий email_verified буде перехоплено під час виконання.
У підході на основі прапорів, прапорці --oidc-username-claim та --oidc-username-prefix є необовʼязковими. Якщо --oidc-username-claim не встановлено, стандартне значення — "sub". Для конфігурації автентифікації стандартне значення для claim або prefix відсутні. Claim та prefix повинні бути встановлені явно. Для claim, якщо прапорець --oidc-username-claim не було встановлено за допомогою старого підходу, налаштуйте username.claim="sub" у конфігурації автентифікації. Для prefix: (1) --oidc-username-prefix="-", префікс не додавався до імені користувача. Для такої ж поведінки за допомогою конфігурації автентифікації, встановіть username.prefix="" (2) --oidc-username-prefix="" та --oidc-username-claim != "email", префікс був "<значення --oidc-issuer-url>#". Для такої ж поведінки за допомогою конфігурації автентифікації, встановіть username.prefix="#" (3) --oidc-username-prefix="". Для такої ж поведінки за допомогою конфігурації автентифікації, встановіть username.prefix=""
groups представляє опцію для атрибуту groups. Значення claim має бути рядком або масивом рядків. Якщо groups.claim встановлено, префікс повинен бути вказаний (і може бути порожнім рядком). Якщо groups.expression встановлено, вираз повинен видавати значення рядка або масиву рядків. "", [], і null значення розглядаються як відсутність мапінгу групи.
uid представляє опцію для атрибуту uid. Claim повинен бути одним рядковим claim. Якщо uid.expression встановлено, вираз повинен видавати значення рядка.
extra представляє опцію для атрибуту extra. вираз повинен видавати значення рядка або масиву рядків. Якщо значення порожнє, мапінг extra не буде присутнім.
жорстко закодований extra ключ/значення
key: "foo"
valueExpression: "'bar'"
Це призведе до появи extra атрибуту — foo: ["bar"]
жорстко закодований ключ, значення копіюється з значення claim
key: "foo"
valueExpression: "claims.some_claim"
Це призведе до появи extra атрибуту - foo: [значення some_claim]
жорстко закодований ключ, значення виводиться з значення claim
ClaimOrExpression надає налаштування для одного claim або виразу.
Поле
Опис
claim string
claim — це JWT claim для використання. Має бути встановлено або claim, або expression. Взаємовиключне з expression.
expression string
expression представляє вираз, який буде оцінюватися за допомогою CEL.
CEL вирази мають доступ до вмісту claims токену, організованих у CEL змінну:
'claims' — це map з назвами claims до значень claims. Наприклад, змінну з назвою 'sub' можна отримати доступом як 'claims.sub'. Вкладені claims можна отримати доступом за допомогою нотації через крапку, наприклад 'claims.foo.bar'.
ClaimValidationRule забезпечує конфігурацію для одного правила валідації заяви.
Поле
Опис
claim string
claim — це імʼя необхідної заяви. Такий же, як прапорець --oidc-required-claim. Підтримуються тільки ключі заяв у форматі рядка. Взаємно виключає з expression та message.
requiredValue string
requiredValue — це значення необхідної заяви. Такий же, як прапорець --oidc-required-claim. Підтримуються тільки значення заяв у форматі рядка. Якщо claim встановлено, а requiredValue не встановлено, заява повинна бути присутня з значенням, яке дорівнює порожньому рядку. Взаємновиключнє з expression та message.
expression string
expression представляє вираз, який буде оцінений CEL. Повинен повернути булеве значення.
Вирази CEL мають доступ до вмісту заявок токена, організованого у змінну CEL:
'claims' — це відображення імен заявок на значення заявок. Наприклад, змінна з імʼям 'sub' може бути доступна як 'claims.sub'. Вкладені заяви можна отримати, використовуючи крапкову нотацію, наприклад 'cl ims.foo.bar'. Повинен повернути true для успішної валідації.
message налаштовує повідомлення про помилку, яке повертається, коли expression повертає false. message є літералним рядком. Взаємовиключне з claim та requiredValue.
Transport визначає транспортні конфігурації, які ми використовуємо для зʼєднання з konnectivity сервером. Це обовʼязково, якщо ProxyProtocol — це HTTPConnect або GRPC.
EgressSelection надає конфігурацію для одного клієнта вибору egress зʼєднання.
Поле
Опис
name[Обовʼязково] string
name — це назва вибору egress зʼєднання. На даний момент підтримуються значення "controlplane", "master", "etcd" та "cluster". Селекторо egress зʼєднання "master" застарілий і його рекомендується замінити на "controlplane".
ExtraMapping надає конфігурацію для одного додаткового зіставлення.
Поле
Опис
key[Обовʼязково] string
key — це рядок, який використовується як ключ додаткового атрибуту. key повинен бути шляхом з префіксом домену (наприклад, example.org/foo). Усі символи перед першим "/" повинні бути дійсним субдоменом, як це визначено RFC 1123. Усі символи, що йдуть після першого "/", повинні бути дійсними символами шляху HTTP, як це визначено RFC 3986. key повинен бути написаний малими літерами. Має бути унікальним.
valueExpression[Обовʼязково] string
valueExpression — це вираз CEL для отримання значення додаткового атрибуту. valueExpression повинен повертати значення рядка або масиву рядків. "", [], та null значення розглядаються як відсутність додаткового зіставлення. Порожні рядкові значення, що містяться у масиві рядків, відфільтровуються.
Вирази CEL мають доступ до вмісту токенів, організованих у змінну CEL:
'claims' — це зіставлення імен вимог до значень вимог. Наприклад, змінна з імʼям 'sub' може бути доступна як 'claims.sub'. Вкладені вимоги можуть бути доступні за допомогою крапкової нотації, наприклад, 'claims.foo.bar'.
Issuer надає конфігурацію для специфічних налаштувань зовнішнього постачальника.
Поле
Опис
url[Обовʼязково] string
url вказує на URL видавця у форматі https://url або https://url/path. Це повинно відповідати вимозі "iss" у наданому JWT і видавцю, який повертається discovery. Таке саме значення, як і прапорець --oidc-issuer-url. Інформація про discovery отримується з "{url}/.well-known/openid-configuration", якщо discoveryURL не перевизначений. Вимагається бути унікальним серед усіх JWT автентифікаторів. Зверніть увагу, що конфігурація вибору вихідного зʼєднання не використовується для цього мережевого зʼєднання.
discoveryURL string
discoveryURL, якщо вказано, перевизначає URL, використовуваний для отримання інформації про discovery, замість використання "{url}/.well-known/openid-configuration". Використовується точне вказане значення, тому "/.well-known/openid-configuration" повинен бути включений у discoveryURL, якщо це необхідно.
Поле "issuer" у отриманій інформації про discovery повинно відповідати полю "issuer.url" в AuthenticationConfiguration і буде використовуватися для перевірки вимоги "iss" у наданому JWT. Це призначено для сценаріїв, коли загальновідомі та точки доступу jwks розміщуються в іншому місці, ніж видавець (наприклад, локально у кластері).
Приклад: URL discovery, який експонується за допомогою сервіса kubernetes 'oidc' у просторі імен 'oidc-namespace' і інформація про discovery доступна за адресою '/.well-known/openid-configuration'. discoveryURL: "https://oidc.oidc-namespace/.well-known/openid-configuration" certificateAuthority використовується для перевірки TLS-зʼєднання, і імʼя хоста на сертифікаті повинно бути налаштовано на 'oidc.oidc-namespace'.
discoveryURL повинен відрізнятися від url. Має бути унікальним серед усіх JWT автентифікаторів. Зверніть увагу, що конфігурація вибору вихідного зʼєднання не використовується для цього мережевого зʼєднання.
certificateAuthority string
certificateAuthority містить сертифікати уповноважених органів, закодовані в PEM, які використовуються для перевірки зʼєднання під час отримання інформації про discovery. Якщо не встановлено, використовується системний перевіряльник. Таке саме значення, як і вміст файлу, на який посилається прапорець --oidc-ca-file.
audiences[Обовʼязково] []string
audiences — це набір прийнятних аудиторій, для яких повинен бути виданий JWT. Щонайменше один з записів повинен відповідати вимозі "aud" у наданих JWT. Таке саме значення, як і прапорець --oidc-client-id (хоча це поле підтримує масив). Має бути непорожнім.
audienceMatchPolicy визначає, як поле "audiences" використовується для співставлення з вимогою "aud" у наданому JWT. Допустимі значення:
"MatchAny", коли вказано кілька аудиторій
порожнє (або не встановлене) або "MatchAny", коли вказано одну аудиторію.
MatchAny: вимога "aud" у наданому JWT повинна відповідати щонайменше одному з записів у полі "audiences". Наприклад, якщо "audiences" містить ["foo", "bar"], вимога "aud" у наданому JWT повинна містити або "foo", або "bar" (і може містити обидва).
"": Політика співставлення може бути порожньою (або не встановленою), коли у полі "audiences" вказано одну аудиторію. Вимога "aud" у наданому JWT повинна містити одну аудиторію (і може містити інші).
Для більш точного перевірки аудиторій використовуйте claimValidationRules. Приклад: claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])', щоб вимагати точного співпадіння.
egressSelectorType — це індикатор, який вказує, який селектор egress слід використовувати для надсилання всього трафіку, що має звʼязки з цим емітентом (виявлення, JWKS, розподілені заявки тощо). Якщо не вказано, номеронабирач користувача не використовується. Якщо вказано, допустимими варіантами є "controlplane" та "cluster". Вони відповідають повʼязаним значенням у --egress-selector-config-file.
controlplane: для трафіку, призначеного для проходження до панелі управління.
cluster: для трафіку, призначеного для системи, що управляється Kubernetes.
userValidationRules — це правила, які застосовуються до кінцевого користувача перед завершенням автентифікації. Ці правила дозволяють застосовувати інваріанти до вхідних ідентичностей, наприклад, забороняти використання префіксу system:, який зазвичай використовується компонентами Kubernetes. Правила перевірки логічно повʼязані оператором AND і всі повинні повернути true, щоб перевірка пройшла.
PrefixedClaimOrExpression надає конфігурацію для одного префіксованого вимоги або виразу.
Поле
Опис
claim string
claim — це JWT вимога для використання. Взаємовиключне з expression.
prefix string
prefix додається до значення вимоги, щоб уникнути конфліктів з існуючими іменами. prefix необхідно встановити, якщо встановлено claim, і він може бути порожнім рядком. Взаємовиключне з expression.
expression string
expression представляє вираз, який буде оцінюватися за допомогою CEL.
CEL вирази мають доступ до вмісту вимог токену, організованого у змінну CEL:
'claims' є зіставленням імен вимог до значень вимог. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені вимоги можна отримати за допомогою нотації з крапкою, наприклад 'claims.foo.bar'.
TLSConfig надає інформацію для автентифікації для підключення до konnectivity серверу. Використовується тільки з TCPTransport
Поле
Опис
caBundle string
caBundle — це місцезнаходження файлу CA, який буде використовуватися для визначення довіри до konnectivity серверу. Має бути відсутнім/порожнім, якщо TCPTransport.URL починається з http:// Якщо відсутній, а TCPTransport.URL починається з https://, стандартно використовуються системні корені довіри.
clientKey string
clientKey — це місцезнаходження файлу клієнтського ключа, який буде використовуватися в mtls рукостисканнях з konnectivity сервером. Має бути відсутнім/порожнім, якщо TCPTransport.URL починається з http:// Має бути налаштований, якщо TCPTransport.URL починається з https://
clientCert string
clientCert — це місцезнаходження файлу клієнтського сертифіката, який буде використовуватися в mtls рукостисканнях з konnectivity сервером. Має бути відсутнім/порожнім, якщо TCPTransport.URL починається з http:// Має бути налаштований, якщо TCPTransport.URL починається з https://
tlsServerName string
tlsServerName використовується для перевірки сертифіката сервера. Якщо tlsServerName порожній, використовується імʼя хоста, яке використовується для звʼязку з сервером.
TCP — це конфігурація TCP для звʼязку з konnectivity сервером через TCP. ProxyProtocol GRPC наразі не підтримується з TCP транспортом. Вимагає налаштування хоча б одного з TCP або UDS
UDSTransport надає інформацію для підключення до konnectivity серверу через UDS
Поле
Опис
udsName[Обовʼязкове] string
UDSName — це назва unix domain socket для підключення до konnectivity серверу. Не використовує префікс unix://. (Наприклад: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket)
Тривалість кешування відповідей 'authorized' від webhook авторизатора. Те ж саме, що і встановлення --authorization-webhook-cache-authorized-ttl прапорця. Стандартно: 5m0s
cacheAuthorizedRequests bool
CacheAuthorizedRequests визначає, чи слід кешувати авторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля AuthorizedTTL. Стандартно: true
Тривалість кешування відповідей 'unauthorized' від webhook авторизатора. Те ж саме, що і встановлення --authorization-webhook-cache-unauthorized-ttl прапорця. Стандартно: 30s
cacheUnauthorizedRequests bool
CacheUnauthorizedRequests визначає, чи слід кешувати неавторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля UnauthorizedTTL. Стандартно: true
Тайм-аут для запиту webhook. Максимальне допустиме значення - 30s. Обовʼязкове, стандартного значення немає.
subjectAccessReviewVersion[Обовʼязкове] string
Версія API authorization.k8s.io SubjectAccessReview, яка буде відправлена та очікувана від webhook. Те ж саме, що і встановлення --authorization-webhook-version прапорця. Допустимі значення: v1beta1, v1. Обовʼязкове, стандартного значення немає
MatchConditionSubjectAccessReviewVersion визначає версію SubjectAccessReview, для якої оцінюються CEL вирази. Допустимі значення: v1. Обовʼязкове, стандартного значення немає
failurePolicy[Обовʼязкове] string
Контролює рішення про авторизацію, коли запит webhook не вдається завершити або повертає некоректну відповідь або помилки при оцінці matchConditions. Допустимі значення:
NoOpinion: продовжувати до наступних авторизаторів, щоб перевірити, чи дозволяє запит хоча б один з них
Deny: відхилити запит без консультацій з наступними авторизаторами. Обовʼязкове, стандартного значення немає.
matchConditions — це список умов, які повинні бути виконані, щоб запит був відправлений на цей webhook. Порожній список matchConditions відповідає всім запитам. Максимум 64 умови відповідності дозволені.
Точна логіка відповідності (у порядку):
Якщо хоча б одна matchCondition оцінюється як FALSE, то webhook пропускається.
Якщо ВСІ matchConditions оцінюються як TRUE, то викликається webhook.
Якщо хоча б одна matchCondition оцінюється як помилка (але жодна не є FALSE):
Якщо failurePolicy=Deny, то webhook відхиляє запит
Якщо failurePolicy=NoOpinion, то помилка ігнорується, і webhook пропускається
Контролює, як webhook має спілкуватися з сервером. Допустимі значення:
KubeConfigFile: використовувати файл, вказаний у kubeConfigFile, для знаходження сервера.
InClusterConfig: використовувати конфігурацію у кластері для виклику SubjectAccessReview API, розміщеного kube-apiserver. Цей режим не дозволений для kube-apiserver.
kubeConfigFile[Обовʼязкове] string
Шлях до KubeConfigFile для інформації про зʼєднання. Обовʼязкове, якщо connectionInfo.Type — KubeConfig
expression представляє вираз, який буде оцінюватися CEL. Повинен оцінюватися як bool. CEL вирази мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана у змінній запиту subjectAccessReviewVersion, є v1beta1, вміст буде конвертовано у версію v1 перед оцінкою виразу CEL.
'resourceAttributes' описує інформацію для запиту доступу до ресурсу і не встановлюється для нересурсних запитів, наприклад, has(request.resourceAttributes) && request.resourceAttributes.namespace == 'default'
'nonResourceAttributes' описує інформацію для запиту доступу до нересурсів і не встановлюється для запитів до ресурсів. наприклад, has(request.nonResourceAttributes) && request.nonResourceAttributes.path == '/healthz'.
'user' — користувач, для якого потрібно перевірити, наприклад, request.user == 'alice'
'groups' — це групи, для яких потрібно протестувати, наприклад, ('group1' in request.groups)
'extra' відповідає методу user.Info.GetExtra() з автентифікатора.
'uid' — інформація про користувача, який надіслав запит, наприклад, request.uid == '1'.
ClientConnectionConfiguration містить деталі для конструювання клієнта.
Поле
Опис
kubeconfig[Обовʼязково] string
kubeconfig — шлях до файлу KubeConfig.
acceptContentTypes[Обовʼязково] string
acceptContentTypes визначає заголовок Accept, що надсилається клієнтами при підключенні до сервера, замінюючи стандартне значення 'application/json'. Це поле буде контролювати всі зʼєднання з сервером, що використовуються конкретним клієнтом.
contentType[Обовʼязково] string
contentType — тип контенту, який використовується при надсиланні даних на сервер з цього клієнта.
qps[Обовʼязково] float32
qps контролює кількість запитів на секунду, дозволених для цього зʼєднання.
burst[Обовʼязково] int32
burst дозволяє накопичувати додаткові запити, коли клієнт перевищує свій ліміт.
LeaderElectionConfiguration визначає конфігурацію клієнтів виборів лідера для компонентів, які можуть працювати з увімкненими виборами лідера.
Поле
Опис
leaderElect[Обовʼязково] bool
leaderElect дозволяє клієнту, який обирає лідера, отримати лідерство перед виконанням основного циклу. Увімкніть цей параметр під час запуску реплікованих компонентів для забезпечення високої доступності.
leaseDuration — це тривалість, протягом якої кандидати, що не є лідерами, чекатимуть після поновлення лідерства, перш ніж спробувати зайняти лідерство в лідируючому, але не поновленому лідерському слоті. Це фактично максимальна тривалість, на яку лідер може бути зупинений, перш ніж його замінить інший кандидат. Це застосовується лише у тому випадку, якщо вибори лідера увімкнені.
renewDeadline — інтервал між спробами виконуючого обов'язки майстра поновити слот лідерства до того, як він перестане бути лідером. Він має бути меншим або рівним тривалості оренди. Це застосовується лише у тому випадку, якщо вибори лідера увімкнені.
retryPeriod — це час, протягом якого клієнти повинні чекати між спробою отримання та поновленням лідерства. Це застосовується лише у тому випадку, якщо вибори лідера увімкнені.
resourceLock[Обовʼязково] string
resourceLock вказує тип обʼєкта ресурсу, який буде використовуватися для блокування під час циклів обрання лідера.
resourceName[Обовʼязково] string
resourceName вказує імʼя обʼєкта ресурсу, який буде використовуватися для блокування під час циклів обрання лідера.
resourceNamespace[Обовʼязково] string
resourceNamespace вказує на простір імен обʼєкта ресурсу, який буде використовуватися для блокування під час циклів обрання лідера.
NodeControllerConfiguration містить елементи, що описують NodeController.
Поле
Опис
ConcurrentNodeSyncs[Обовʼязкове] int32
ConcurrentNodeSyncs — це кількість процесів, які одночасно синхронізують вузли
ConcurrentNodeStatusUpdates[Обовʼязкове] int32
ConcurrentNodeStatusUpdates — це кількість процесів, які одночасно оновлюють статуси вузлів. Якщо не вказано або значення 0, використовується ConcurrentNodeSyncs.
ServiceControllerConfiguration містить елементи, що описують ServiceController.
Поле
Опис
ConcurrentServiceSyncs[Обовʼязкове] int32
concurrentServiceSyncs — це кількість служб, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління службами, але більше навантаження на процесор (і мережу).
CloudControllerManagerConfiguration
CloudControllerManagerConfiguration містить елементи, що описують cloud-controller manager.
CloudProviderConfiguration містить конфігурацію для функцій, повʼязаних з CloudProvider.
ExternalCloudVolumePlugin[Обовʼязкове] string
externalCloudVolumePlugin вказує втулок, який використовувати, коли cloudProvider є "external". Наразі він використовується хмарними провайдерами з репо для керування вузлами та томами в KCM.
UseServiceAccountCredentials[Обовʼязкове] bool
useServiceAccountCredentials вказує, чи повинні контролери працювати з окремими службовими обліковими даними.
AllowUntaggedCloud[Обовʼязкове] bool
дозволяє запуск з непозначеними теґами хмарними екземплярами
nodeSyncPeriod — це період для синхронізації вузлів з постачальником хмар. Довші періоди зменшать кількість викликів до постачальника хмар, але можуть затримати додавання нових вузлів в кластер.
WebhookConfiguration містить конфігурацію, повʼязану з вебхуками, розгорнутими в cloud-controller-manager.
Поле
Опис
Webhooks[Обовʼязкове] []string
Webhooks — це список вебхуків для активації або деактивації:
'*' означає "всі стандартно активовані вебхуки"
'foo' означає "активувати 'foo'"
'-foo' означає "деактивувати 'foo'"
перший елемент для конкретного імені виграє
ControllerLeaderConfiguration надає конфігурацію для блокування мігруючого лідера.
Поле
Опис
name[Обовʼязкове] string
Name — це назва контролера, що мігрує, наприклад, service-controller, route-controller, cloud-node-controller тощо
component[Обовʼязкове] string
Component — це назва компонента, в якому контролер має працювати, наприклад, kube-controller-manager, cloud-controller-manager тощо. Або '*' означає, що контролер може працювати під будь-яким компонентом, який бере участь у міграції.
leaderElection визначає конфігурацію клієнта вибору лідера.
Controllers[Обовʼязкове] []string
Controllers — це список контролерів для активації або деактивації:
'*' означає "всі контролери, що стандартно активовані"
'foo' означає "активувати 'foo'"
'-foo' означає "деактивувати 'foo'"
перший елемент для конкретного імені виграє
Reconciler виконує періодичний цикл для узгодження бажаного стану з фактичним станом, ініціюючи операції прикріплення/відкріплення. Цей прапорець включає або вимикає узгодження. Станадртне значення — false, отже, включено.
ReconcilerSyncLoopPeriod — це період часу, протягом якого цикл узгодження станів чекає між наступними виконаннями. Стандартне знаячення — 60 секунд.
disableForceDetachOnTimeout[Обовʼязкове] bool
DisableForceDetachOnTimeout вимикає примусове відкріплення, коли максимальний час розмонтування перевищено. Стандартне значення — false, отже, примусове відкріплення при відключенні увімкнено.
CSRSigningControllerConfiguration містить елементи, що описують CSRSigningController.
Поле
Опис
ClusterSigningCertFile[Обовʼязкове] string
clusterSigningCertFile — це імʼя файлу, що містить PEM-кодований сертифікат X509 CA, використовується для видачі сертифікатів з обмеженням на кластер
ClusterSigningKeyFile[Обовʼязкове] string
clusterSigningKeyFile — це імʼя файлу, що містить PEM-кодований приватний ключ RSA або ECDSA, який використовується для видачі сертифікатів з обмеженням на кластер
kubeletClientSignerConfiguration містить сертифікат і ключ, які використовуються для видачі сертифікатів для kubernetes.io/kube-apiserver-client-kubelet
clusterSigningDuration — це максимальний період дії сертифікатів, які видаються. Окремі CSR можуть запитувати коротші сертифікати, встановлюючи spec.expirationSeconds.
CronJobControllerConfiguration містить елементи, що описують CronJobController.
Поле
Опис
ConcurrentCronJobSyncs[Обовʼязкове] int32
concurrentCronJobSyncs — це кількість обʼєктів job, які дозволено синхронізувати одночасно. Більше число = більш швидка реакція job, але більше навантаження на CPU (і мережу).
DaemonSetControllerConfiguration містить елементи, що описують DaemonSetController.
Поле
Опис
ConcurrentDaemonSetSyncs[Обовʼязкове] int32
concurrentDaemonSetSyncs — це кількість обʼєктів daemonset, які дозволено синхронізувати одночасно. Більше число = більш швидка реакція daemonset, але більше навантаження на CPU (і мережу).
DeploymentControllerConfiguration містить елементи, що описують DeploymentController.
Поле
Опис
ConcurrentDeploymentSyncs[Обовʼязкове] int32
concurrentDeploymentSyncs — це кількість обʼєктів deployment, які дозволено синхронізувати одночасно. Більше число = більш швидка реакція deployments, але більше навантаження на CPU (і мережу).
DeviceTaintEvictionControllerConfiguration містить елементи, що конфігурують контролер виселення пристроїв позначених taint.
Поле
Опис
ConcurrentSyncs[Обовʼязкове] int32
ConcurrentSyncs — це кількість операцій (видалення пода, оновлення статусу ResourcClaim тощо), які будуть виконуватися одночасно. Більше число = більше обробки, але більше навантаження на CPU (і мережу).
EndpointControllerConfiguration містить елементи, що описують EndpointController
Поле
Опис
ConcurrentEndpointSyncs[Обовʼязкове] int32
concurrentEndpointSyncs — це кількість операцій синхронізації точок доступу, які будуть виконуватись одночасно. Більше число = швидше оновлення, але більше навантаження на CPU (і мережу).
EndpointUpdatesBatchPeriod описує тривалість періоду пакетного оновлення точок доступу. Обробка змін у pod буде затримана на цей час, щоб обʼєднати їх з потенційними майбутніми оновленнями та зменшити загальну кількість оновлень точок доступу.
EndpointSliceControllerConfiguration містить елементи, що описують EndpointSliceController.
Поле
Опис
ConcurrentServiceEndpointSyncs[Обовʼязкове] int32
concurrentServiceEndpointSyncs — це кількість операцій синхронізації точок доступу сервісу, які будуть виконуватись одночасно. Більше число = швидше оновлення EndpointSlice, але більше навантаження на CPU (і мережу).
MaxEndpointsPerSlice[Обовʼязкове] int32
maxEndpointsPerSlice — максимальна кількість точок доступу, які будуть додані до одного EndpointSlice. Більше точок доступу на один slice призведе до меншої кількості та більших за розміром endpoint slices, але більших ресурсів.
EndpointUpdatesBatchPeriod описує тривалість періоду пакетного оновлення точок доступу. Обробка змін у pod буде затримана на цей час, щоб обʼєднати їх з потенційними майбутніми оновленнями та зменшити загальну кількість оновлень точок доступу.
mirroringConcurrentServiceEndpointSyncs — це кількість операцій синхронізації точок доступу сервісу, які будуть виконуватись одночасно. Більше число = швидше оновлення EndpointSlice, але більше навантаження на CPU (і мережу).
MirroringMaxEndpointsPerSubset[Обовʼязкове] int32
mirroringMaxEndpointsPerSubset — максимальна кількість точок доступу, які будуть відображені в EndpointSlice для одного EndpointSubset.
mirroringEndpointUpdatesBatchPeriod можна використовувати для пакетного оновлення EndpointSlice. Усі оновлення, викликані змінами в EndpointSlice, будуть затримані до 'mirroringEndpointUpdatesBatchPeriod'. Якщо інші адреси в тому ж ресурсі Endpoints зміняться в цей період, вони будуть обʼєднані в одне оновлення EndpointSlice. Стандартне значення 0 означає, що кожне оновлення Endpoints викликає оновлення EndpointSlice.
EphemeralVolumeControllerConfiguration містить елементи, що описують EphemeralVolumeController.
Поле
Опис
ConcurrentEphemeralVolumeSyncs[Обовʼязкове] int32
ConcurrentEphemeralVolumeSyncs — це кількість операцій синхронізації ефемерних томів, які будуть виконуватись одночасно. Більше число = швидше оновлення ефемерних томів, але більше навантаження на CPU (і мережу).
GarbageCollectorControllerConfiguration містить елементи, що описують GarbageCollectorController.
Поле
Опис
EnableGarbageCollector[Обовʼязкове] bool
Увімкнення загального збирача сміття. ПОВИННО бути синхронізовано з відповідним прапорцем kube-apiserver. УВАГА: загальний збирач сміття є альфа-функцією.
ConcurrentGCSyncs[Обовʼязкове] int32
ConcurrentGCSyncs — це кількість процесів збирача сміття, які дозволяється синхронізувати одночасно.
ConcurrentHorizontalPodAutoscalerSyncs — кількість обʼєктів HPA, які дозволено синхронізувати одночасно. Більше число = більш чутка обробка HPA, але більше навантаження на CPU (та мережу).
HorizontalPodAutoscalerDownscaleStabilizationWindow — період, протягом якого автомасштабувальник буде переглядати і не зменшувати кількість Podʼів нижче будь-яких рекомендацій, зроблених протягом цього періоду.
HorizontalPodAutoscalerInitialReadinessDelay — період після запуску Podʼа, протягом якого зміни готовності вважаються як готовність, що встановлюється вперше. Єдиний ефект цього — HPA буде ігнорувати проби CPU від неготових Podʼів, у яких остання зміна готовності відбулася під час цього періоду.
JobControllerConfiguration містить елементи, що описують JobController.
Поле
Опис
ConcurrentJobSyncs[Обовʼязкове] int32
concurrentJobSyncs — кількість обʼєктів job, які дозволено синхронізувати одночасно. Більше число = більш чутка обробка job, але більше навантаження на CPU (та мережу).
CleanUpPeriod — період часу з моменту останнього використання автоматично згенерованого токена службового облікового запису перед тим, як його можна буде видалити.
NodeIPAMControllerConfiguration містить елементи, що описують NodeIpamController.
Поле
Опис
ServiceCIDR[Обовʼязкове] string
serviceCIDR — CIDR-діапазон для сервісів в кластері.
SecondaryServiceCIDR[Обовʼязкове] string
secondaryServiceCIDR — CIDR-діапазон для сервісів в кластері, що використовується в двостекових кластерах. SecondaryServiceCIDR має бути іншої IP-сімʼї, ніж ServiceCIDR.
NodeCIDRMaskSize[Обовʼязкове] int32
NodeCIDRMaskSize — маска розміру для CIDR вузлів в кластері.
NodeCIDRMaskSizeIPv4[Обовʼязкове] int32
NodeCIDRMaskSizeIPv4 — маска розміру для CIDR вузлів в двостековому кластері.
NodeCIDRMaskSizeIPv6[Обовʼязкове] int32
NodeCIDRMaskSizeIPv6 — маска розміру для CIDR вузлів в двостековому кластері.
nodeMonitorGracePeriod — період часу, протягом якого дозволяється вузлу не відгукуватись, перш ніж позначити його як несправний. Має бути N разів більше, ніж nodeStatusUpdateFrequency kubeletʼа, де N означає кількість спроб, дозволених для kubelet для надсилання статусу вузла. Це значення також має бути більшим за суму HTTP2_PING_TIMEOUT_SECONDS і HTTP2_READ_IDLE_TIMEOUT_SECONDS.
podEvictionTimeout — період для належного видалення Podʼів на неактивних вузлах.
LargeClusterSizeThreshold[Обовʼязкове] int32
secondaryNodeEvictionRate явно перезаписується на 0 для кластерів, менших або рівних largeClusterSizeThreshold.
UnhealthyZoneThreshold[Обовʼязкове] float32
Зона вважається несправною в nodeEvictionRate та secondaryNodeEvictionRate, коли щонайменше unhealthyZoneThreshold (не менше 3) вузлів у зоні є NotReady.
PersistentVolumeRecyclerConfiguration містить елементи, що описують втулки для постійних томів.
Поле
Опис
MaximumRetry[Обовʼязкове] int32
maximumRetry — кількість спроб, які recycler PV виконає у разі невдачі при переробці PV.
MinimumTimeoutNFS[Обовʼязкове] int32
minimumTimeoutNFS — мінімальний ActiveDeadlineSeconds для використання для Podʼа NFS Recycler.
PodTemplateFilePathNFS[Обовʼязкове] string
podTemplateFilePathNFS — шлях до файлу з визначенням Podʼа, що використовується як шаблон для переробки постійного тому NFS.
IncrementTimeoutNFS[Обовʼязкове] int32
incrementTimeoutNFS — приріст часу, який додається за кожен Gi до ActiveDeadlineSeconds для Podʼа NFS scrubber.
PodTemplateFilePathHostPath[Обовʼязкове] string
podTemplateFilePathHostPath — шлях до файлу з визначенням Podʼа, що використовується як шаблон для переробки постійного тому HostPath. Це лише для розробки та тестування і не працює в кластері з кількома вузлами.
MinimumTimeoutHostPath[Обовʼязкове] int32
minimumTimeoutHostPath — мінімальний ActiveDeadlineSeconds для використання для Podʼа HostPath Recycler. Це лише для розробки та тестування і не працює в кластері з кількома вузлами.
IncrementTimeoutHostPath[Обовʼязкове] int32
incrementTimeoutHostPath — приріст часу, який додається за кожен Gi до ActiveDeadlineSeconds для Podʼа HostPath scrubber. Це лише для розробки та тестування і не працює в кластері з кількома вузлами.
PodGCControllerConfiguration містить елементи, що описують PodGCController.
Поле
Опис
TerminatedPodGCThreshold[Обовʼязкове] int32
terminatedPodGCThreshold — кількість завершених Podʼів, які можуть існувати перед тим, як збирач сміття завершених почне видаляти завершені поди. Якщо <= 0, збирач сміття завершених Podʼів вимкнено.
ReplicaSetControllerConfiguration містить елементи, що описують ReplicaSetController.
Поле
Опис
ConcurrentRSSyncs[Обовʼязкове] int32
concurrentRSSyncs — кількість replica set, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління репліками, але більше завантаження на процесор (і мережу).
ReplicationControllerConfiguration містить елементи, що описують ReplicationController.
Поле
Опис
ConcurrentRCSyncs[Обовʼязкове] int32
concurrentRCSyncs — кількість контролерів реплікацій, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління репліками, але більше завантаження на процесор (і мережу).
ResourceClaimControllerConfiguration містить елементи, що конфігурують контролер запитів ресурсів.
Поле
Опис
ConcurrentSyncs[Обовʼязкове] int32
ConcurrentSyncs — кількість операцій (видалення пода, оновлення статусу ResourceClaim тощо), які будуть виконуватися одночасно. Більше число = більш чутливе управління, але більше завантаження на процесор (і мережу).
resourceQuotaSyncPeriod — період для синхронізації статусу використання квоти в системі.
ConcurrentResourceQuotaSyncs[Обовʼязкове] int32
concurrentResourceQuotaSyncs — кількість ресурсних квот, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління квотами, але більше завантаження на процесор (і мережу).
SAControllerConfiguration містить елементи, що описують ServiceAccountController.
Поле
Опис
ServiceAccountKeyFile[Обовʼязкове] string
serviceAccountKeyFile — імʼя файлу, що містить PEM-кодований приватний RSA-ключ, який використовується для підписання токенів службовиї облікових записів.
ConcurrentSATokenSyncs[Обовʼязкове] int32
concurrentSATokenSyncs — кількість операцій синхронізації токенів службових облікових записів які будуть виконуватись одночасно.
RootCAFile[Обовʼязкове] string
rootCAFile — кореневий сертифікат центру сертифікації, який буде включено у секрет токена службових облікових записів. Це має бути дійсний PEM-кодований CA пакет.
StatefulSetControllerConfiguration містить елементи, що описують StatefulSetController.
Поле
Опис
ConcurrentStatefulSetSyncs[Обовʼязкове] int32
concurrentStatefulSetSyncs — кількість обʼєктів StatefulSet, які дозволено синхронізувати одночасно. Більше число = більше чутливість statefulsets, але більше навантаження на ЦП (і мережу).
ValidatingAdmissionPolicyStatusControllerConfiguration містить елементи, що описують ValidatingAdmissionPolicyStatusController.
Поле
Опис
ConcurrentPolicySyncs[Обовʼязкове] int32
ConcurrentPolicySyncs — кількість обʼєктів політики, які дозволено синхронізувати одночасно. Більша кількість = швидше перевірка типів, але більше навантаження на ЦП (і мережу). Стандартне значення — 5.
VolumeConfiguration містить усі перераховані прапорці, призначені для конфігурації всіх втулків томів. З цієї конфігурації бінарний файл controller-manager створить багато екземплярів volume.VolumeConfig, кожен з яких містить лише конфігурацію, необхідну для конкретного втулка, які потім передаються відповідному втулку. Бінарний файл ControllerManager є єдиною частиною коду, яка знає, які втулки підтримуються і які прапорці відповідають кожному втулку.
Поле
Опис
EnableHostPathProvisioning[Обовʼязкове] bool
enableHostPathProvisioning дозволяє створення PV HostPath при запуску без хмарного постачальника. Це дозволяє тестування та розробку функцій provisioning. HostPath provisioning не підтримується в жодному вигляді, не працює в кластері з кількома вузлами і не слід використовувати для нічого іншого, крім тестування або розробки.
EnableDynamicProvisioning[Обовʼязкове] bool
enableDynamicProvisioning дозволяє створення томів при запуску в середовищі, яке підтримує динамічне створення. Стандартне значення — true.
Максимальний проміжок часу між скиданнями журналу. Якщо рядок, розбирається як тривалість (тобто "1s") Якщо int, максимальна кількість наносекунд (тобто 1s = 1000000000). Ігнорується, якщо вибраний бекенд записує повідомлення журналу без буферизації.
Докладність — це поріг, який визначає, які повідомлення буде записано до журналу. Стандартно встановлено нульове значення, за якого до журналу записуються лише найважливіші повідомлення. Вищі значення вмикають додаткові повідомлення. Повідомлення про помилки завжди записуються до журналу.
[Alpha] Опції містять додаткові параметри, специфічні для різних форматів журналювання. Використовуються лише параметри для вибраного формату, але всі вони перевіряються. Доступно лише тоді, коли увімкнено функцію LoggingAlphaOptions.
LoggingOptions
LoggingOptions можна використовувати з ValidateAndApplyWithOptions для перевизначення певних стандартних налаштувань.
OutputRoutingOptions містить опції, які підтримуються як "text", так і "json".
Поле
Опис
splitStream[Обовʼязково] bool
[Alpha] SplitStream перенаправляє повідомлення про помилки до stderr, а інформаційні повідомлення — до stdout, з буферизацією. Стандартно, обидва потоки записуються у stdout без буферизації. Доступно лише за умови увімкнення функції LoggingAlphaOptions.
[Alpha] InfoBufferSize задає розмір інформаційного потоку при використанні розділених потоків. Стандартно дорівнює нулю, що вимикає буферизацію. Доступно лише за умови увімкнення функції LoggingAlphaOptions.
ClientConnectionConfiguration містить деталі для створення клієнта.
Поле
Опис
kubeconfig[Обовʼязкове] string
kubeconfig — шлях до файлу KubeConfig.
acceptContentTypes[Обовʼязкове] string
acceptContentTypes визначає заголовок Accept, що надсилається клієнтами при підключенні до сервера, переважаючи стандартне значення 'application/json'. Це поле контролює всі підключення до сервера, що використовуються конкретним клієнтом.
contentType[Обовʼязкове] string
contentType — це тип вмісту, що використовується при надсиланні даних на сервер з цього клієнта.
qps[Обовʼязкове] float32
qps контролює кількість запитів на секунду, дозволених для цього зʼєднання.
burst[Обовʼязкове] int32
burst дозволяє накопичувати додаткові запити, коли клієнт перевищує свій поріг.
LeaderElectionConfiguration визначає конфігурацію клієнтів вибору лідера для компонентів, які можуть працювати з увімкненим вибором лідера.
Поле
Опис
leaderElect[Обовʼязкове] bool
leaderElect дозволяє клієнту вибору лідера отримати лідерство перед виконанням основного циклу. Увімкніть це при запуску повторюваних компонентів для високої доступності.
leaseDuration — це тривалість, яку не-лідери кандидати будуть чекати після спостереження за поновленням лідерства, перш ніж спробувати отримати лідерство замісць лідера, який не був поновлений. Це фактично максимальна тривалість, протягом якої лідер може бути зупинений перед заміною іншим кандидатом. Це застосовується тільки в разі увімкнення вибору лідера.
renewDeadline — це інтервал між спробами діючого майстра поновити слот лідерства перед тим, як він перестане бути лідером. Це має бути менше або дорівнювати тривалості оренди. Це застосовується тільки в разі увімкнення вибору лідера.
retryPeriod — це тривалість, протягом якої клієнти повинні чекати між спробами отримання і поновлення лідерства. Це застосовується тільки в разі увімкнення вибору лідера.
resourceLock[Обовʼязкове] string
resourceLock вказує тип обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера.
resourceName[Обовʼязкове] string
resourceName вказує імʼя обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера.
resourceNamespace[Обовʼязкове] string
resourceNamespace вказує простір імен обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера.
KubeProxyConfiguration
KubeProxyConfiguration містить все необхідне для налаштування проксі-сервера Kubernetes.
Поле
Опис
apiVersion string
kubeproxy.config.k8s.io/v1alpha1
kind string
KubeProxyConfiguration
featureGates[Обовʼязкове] map[string]bool
featureGates є зіставленням імен функцій до булевих значень, які дозволяють або забороняють альфа/експериментальні функції.
logging вказує параметри ведення логу. Дивіться Logs Options для додаткової інформації.
hostnameOverride[Обовʼязкове] string
hostnameOverride, якщо не порожній, буде використовуватися як імʼя вузла, на якому працює kube-proxy. Якщо не задано, імʼя вузла вважається таким же, як і hostname вузла.
bindAddress[Обовʼязкове] string
bindAddress може бути використано для переозначення IP-адреси вузла, яка є основною для kube-proxy. Зверніть увагу, що імʼя є історичним артефактом, і kube-proxy насправді не привʼязує жодні сокети до цього IP.
healthzBindAddress[Обовʼязкове] string
healthzBindAddress — це IP-адреса та порт для сервера перевірки стану, на якому він буде служити, стандартно "0.0.0.0:10256" (якщо bindAddress не встановлено або IPv4), або "[::]:10256" (якщо bindAddress є IPv6).
metricsBindAddress[Обовʼязкове] string
metricsBindAddress — це IP-адреса та порт для сервера метрик, на якому він буде служити, стандартно "127.0.0.1:10249" (якщо bindAddress не встановлено або IPv4), або "[::1]:10249" (якщо bindAddress є IPv6). (Встановіть на "0.0.0.0:10249" / "[::]:10249", щоб привʼязатися до всіх інтерфейсів.)
bindAddressHardFail[Обовʼязкове] bool
bindAddressHardFail, якщо true, вказує kube-proxy вважати помилку привʼязки до порту фатальною і вийти
enableProfiling[Обовʼязкове] bool
enableProfiling дозволяє профілювання через веб-інтерфейс на обробнику /debug/pprof. Обробники профілювання будуть оброблені сервером метрик.
showHiddenMetricsForVersion[Обовʼязкове] string
showHiddenMetricsForVersion — це версія, для якої ви хочете показати приховані метрики.
detectLocal містить додаткові параметри конфігурації, що стосуються DetectLocalMode.
clusterCIDR[Обовʼязкове] string
clusterCIDR — це діапазон CIDR для Podʼів у кластері. (Для кластерів з подвійними стеками це може бути пара діапазонів CIDR, розділених комою). Коли DetectLocalMode встановлено в ClusterCIDR, kube-proxy буде вважати трафік локальним, якщо його вихідний IP знаходиться в цьому діапазоні. (Інакше не використовується.)
nodePortAddresses[Обовʼязкове] []string
nodePortAddresses — це список діапазонів CIDR, які містять допустимі IP-адреси вузлів, або, як варіант, єдиний рядок 'primary'. Якщо задано список CIDR, зʼєднання з сервісами NodePort будуть прийматися лише на IP-адресах вузлів в одному з вказаних діапазонів. Якщо встановлено значення 'primary', сервіси NodePort будуть прийматися лише на основну IPv4 та/або IPv6 адресу вузла згідно з обʼєктом Node. Якщо не встановлено, зʼєднання NodePort будуть прийматися на всіх локальних IP.
oomScoreAdj[Обовʼязкове] int32
oomScoreAdj — це значення oom-score-adj для процесу kube-proxy. Значення повинні бути в межах [-1000, 1000]
DetectLocalConfiguration містить необовʼязкові налаштування, що стосуються параметра DetectLocalMode
Поле
Опис
bridgeInterface[Обовʼязкове] string
bridgeInterface — це імʼя інтерфейсу моста (bridge). Коли DetectLocalMode встановлено в LocalModeBridgeInterface, kube-proxy буде вважати трафік локальним, якщо він походить з цього моста.
interfaceNamePrefix[Обовʼязкове] string
interfaceNamePrefix — це префікс імені інтерфейсу. Коли DetectLocalMode встановлено в LocalModeInterfaceNamePrefix, kube-proxy буде вважати трафік локальним, якщо він походить з будь-якого інтерфейсу, чиє імʼя починається з цього префіксу.
KubeProxyConntrackConfiguration містить налаштування conntrack для
Kubernetes proxy server.
Поле
Опис
maxPerCore[Обовʼязкове] int32
maxPerCore — максимальна кількість NAT зʼєднань, які слід відстежувати на однt процесорнt ядро (0 для того, щоб залишити обмеження без змін і проігнорувати min).
min[Обовʼязкове] int32
min — мінімальне значення записів connect-tracking, які слід виділити, незалежно від maxPerCore (встановіть maxPerCore=0, щоб залишити обмеження без змін).
tcpCloseWaitTimeout — як довго неактивний запис conntrack у стані CLOSE_WAIT залишиться в таблиці conntrack (наприклад, '60s'). Має бути більше 0 для встановлення.
tcpBeLiberal[Обовʼязкове] bool
tcpBeLiberal, якщо true, kube-proxy налаштує conntrack
для роботи в ліберальному режимі для TCP зʼєднань, і пакети з
послідовними номерами за межами вікна не будуть позначені як INVALID.
udpTimeout — як довго неактивний запис conntrack для UDP у стані UNREPLIED залишиться в таблиці conntrack (наприклад, '30s'). Має бути більше 0 для встановлення.
udpStreamTimeout — як довго неактивний запис conntrack для UDP у стані ASSURED залишиться в таблиці conntrack (наприклад, '300s'). Має бути більше 0 для встановлення.
KubeProxyIPTablesConfiguration містить налаштування, повʼязані з iptables,
для Kubernetes proxy server.
Поле
Опис
masqueradeBit[Обовʼязкове] int32
masqueradeBit — біт iptables fwmark простору, який слід використовувати для SNAT, якщо використовується режим iptables або ipvs. Значення повинні бути в межах [0, 31].
masqueradeAll[Обовʼязкове] bool
masqueradeAll вказує kube-proxy виконувати SNAT для всього трафіку, надісланого на IP-адреси сервісів кластера, при використанні режиму iptables або ipvs. Це може бути необхідно для деяких плагінів CNI.
localhostNodePorts[Обовʼязкове] bool
localhostNodePorts, якщо false, вказує kube-proxy вимкнути застарілу поведінку дозволу доступу до сервісів NodePort через localhost. (Застосовується лише для режиму iptables та IPv4; localhost NodePorts ніколи не дозволяються з іншими режимами проксі або з IPv6.)
syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0.
minSyncPeriod — мінімальний період між повторними синхронізаціями правил iptables (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації iptables.
syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0.
minSyncPeriod — мінімальний період між повторними синхронізаціями правил IPVS (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації IPVS.
scheduler[Обовʼязкове] string
scheduler — IPVS планувальник, який слід використовувати
excludeCIDRs[Обовʼязкове] []string
excludeCIDRs — список CIDR, які IPVS proxier не повинен торкатися при очищенні IPVS сервісів.
strictARP[Обовʼязкове] bool
strictARP налаштовує arp_ignore та arp_announce, щоб уникнути відповіді на ARP запити з інтерфейсу kube-ipvs0
KubeProxyNFTablesConfiguration містить деталі конфігурації, що стосуються nftables для Kubernetes proxy server.
Поле
Опис
masqueradeBit[Обовʼязкове] int32
masqueradeBit — це біт простору iptables fwmark, який слід використовувати для SNAT при використанні режиму nftables. Значення повинні бути в межах [0, 31].
masqueradeAll[Обовʼязкове] bool
masqueradeAll вказує kube-proxy, щоб SNAT весь трафік, що надходить на IP-адреси кластерів Service, при використанні режиму nftables. Це може бути необхідним для деяких CNI втулків.
syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0.
minSyncPeriod — мінімальний період між повторними синхронізаціями правил iptables (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації iptables.
ProxyMode представляє режими, що використовуються сервером проксі Kubernetes.
На даний момент доступні три режими проксі на платформах Linux: iptables, ipvs та nftables. Один режим проксі доступний на платформах Windows:kernelspace.
Якщо режим проксі не вказано, буде використано стандартний режим проксі (на даний момент це iptables в Linux і kernelspace у Windows). Якщо вибраний режим проксі не може бути використаний (через відсутність підтримки в ядрі, відсутність компонентів користувацького простору тощо), kube-proxy вийде з помилкою.
ClientConnectionConfiguration містить деталі для створення клієнта.
Поле
Опис
kubeconfig[Обовʼязкове] string
kubeconfig — шлях до файлу KubeConfig.
acceptContentTypes[Обовʼязкове] string
acceptContentTypes визначає заголовок Accept, який надсилається клієнтами при підключенні до сервера, перевизначаючи стандатне значення 'application/json'. Це поле буде контролювати всі зʼєднання з сервером, що використовуються певним клієнтом.
contentType[Обовʼязкове] string
contentType — тип вмісту, який використовується при надсиланні даних на сервер від цього клієнта.
qps[Обовʼязкове] float32
qps контролює кількість запитів на секунду, дозволених для цього зʼєднання.
burst[Обовʼязкове] int32
burst дозволяє накопичувати додаткові запити, коли клієнт перевищує свою норму.
LeaderElectionConfiguration визначає конфігурацію клієнтів вибору лідера для компонентів, які можуть працювати з увімкненим вибором лідера.
Поле
Опис
leaderElect[Обовʼязкове] bool
leaderElect увімкне клієнта вибору лідера для отримання лідерства перед виконанням основного циклу. Увімкніть це при запуску реплікованих компонентів для високої доступності.
leaseDuration — це період часу, протягом якого кандидати, які не є лідерами, чекатимуть після поновлення лідерства, перш ніж спробувати зайняти лідерство в лідерському слоті, який вже зайнятий, але не поновлений. Це фактично максимальний термін, на який лідер може бути зупинений, перш ніж його замінить інший кандидат. Це може бути застосовано лише у випадку, якщо вибори лідера увімкнено.
renewDeadline — це інтервал між спробами діючого лідера оновити слот лідерства перед тим, як він припинить лідирування. Це має бути менше або дорівнювати тривалості оренди. Це застосовно тільки тоді, коли вибір лідера увімкнено.
retryPeriod — це тривалість, яку клієнти повинні чекати між спробами отримання та оновлення лідерства. Це застосовно тільки тоді, коли вибір лідера увімкнено.
resourceLock[Обовʼязкове] string
resourceLock вказує тип обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера.
resourceName[Обовʼязкове] string
resourceName вказує на імʼя обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера.
resourceNamespace[Обовʼязкове] string
resourceNamespace вказує на простір імен обʼєкта ресурсу, який буде використовуватися для блокування під час циклів вибору лідера.
DefaultPreemptionArgs
DefaultPreemptionArgs містить аргументи, які використовуються для налаштування втулка DefaultPreemption.
Поле
Опис
apiVersion string
kubescheduler.config.k8s.io/v1
kind string
DefaultPreemptionArgs
minCandidateNodesPercentage[Обовʼязкове] int32
MinCandidateNodesPercentage — це мінімальна кількість кандидатів для відбору при тестуванні виселення як відсоток від кількості вузлів. Має бути в межах [0, 100]. Стандартно дорівнює 10% від розміру кластера, якщо не вказано.
minCandidateNodesAbsolute[Обовʼязкове] int32
MinCandidateNodesAbsolute — це абсолютна мінімальна кількість кандидатів для відбору. Ймовірна кількість кандидатів, які будуть перераховані для тестування виселення, розраховується за формулою:
Ми говоримо "ймовірна", оскільки є й інші фактори, такі як порушення PDB, які впливають на кількість кандидатів для відбору. Має бути не менше 0 вузлів. Стандартно дорівнює 100 вузлам, якщо не вказано.
DynamicResourcesArgs
DynamicResourcesArgs містить аргументи, що використовуються для налаштування втулків DynamicResources.
FilterTimeout обмежує час, який може зайняти операція фільтрації на кожному вузлі для пошуку пристроїв, які можуть бути виділені для планувальника pod на цей вузол.
У типових сценаріях ця операція повинна завершитися за 10–200 мілісекунд, але може тривати довше залежно від кількості запитів на ResourceClaim, кількості ResourceClaims, кількості опублікованих пристроїв у ResourceSlices та складності запитів. Інші перевірки, крім оцінки CEL, також займають час (перевірка використання, відповідність атрибутів тощо).
Тому втулок планувальника застосовує цей тайм-аут. Якщо тайм-аут досягнуто, Pod вважається таким, що не підлягає плануванню для вузла. Якщо фільтрування для деяких інших вузлів є успішним, то замість них вибираються саме вони. Якщо фільтрування не вдається для всіх вузлів, Pod поміщається в чергу, що не підлягає плануванню. Він буде перевірений знову, якщо зміни, наприклад, в ResourceSlices або ResourceClaims, вказують на те, що інша спроба планування може бути успішною. Якщо це повторно не вдається, експоненціальне відхилення уповільнює майбутні спроби.
Стандартно встановлено 10 секунд. Цього достатньо, щоб запобігти найгіршим сценаріям, не впливаючи на нормальне використання DRA. Однак повільна фільтрація може уповільнити планування Pod, навіть для Pod, які не використовують DRA. Адміністратори можуть зменшити час очікування після перевірки метрик scheduler_framework_extension_point_duration_seconds.
Встановлення значення нуль повністю вимикає тайм-аут.
BindingTimeout обмежує час, протягом якого розширення PreBind може чекати на виконання умов привʼязки пристрою ResourceClaim, коли такі умови присутні. Під час очікування планувальник періодично перевіряє стан пристрою. Якщо час очікування закінчується до того, як всі необхідні умови стануть істинними (або будь-які умови bindingFailureConditions стануть істинними), розподіл ресурсів скасовується, а Pod знову потрапляє в чергу планування. Зверніть увагу, що за можливості може бути обрано той самий або інший вузол; в іншому випадку Pod поміщається в чергу, що не підлягає плануванню, і повторюється на основі змін кластера та повернення.
Стандартні значення тафункціональні можливіості:
Стандартне значення — 10 хвилин, коли увімкнено функціональну можливість DRADeviceBindingConditions.
Діє тільки тоді, коли ОДНОЧАСНО ввімкнені DRADeviceBindingConditions та DRAResourceClaimDeviceStatus; в іншому випадку це поле пропускається.
Коли DRADeviceBindingConditions вимкнено, встановлення цього поля вважається помилкою.
Дійсні значення:
=1s (не нуль). Верхня межа не встановлена.
Рекомендації щодо налаштування:
Нижчі значення скорочують час повторної спроби, коли пристрої не готові, але можуть збільшити відтік клієнтів, якщо драйверам зазвичай потрібно більше часу, щоб повідомити про готовність.
Перегляньте показники затримки планувальника (наприклад, тривалість PreBind у scheduler_framework_extension_point_duration_seconds) та поведінку готовності драйвера перед тим, як скоротити цей час очікування.
InterPodAffinityArgs
InterPodAffinityArgs містить аргументи, які використовуються для налаштування втулка InterPodAffinity.
Поле
Опис
apiVersion string
kubescheduler.config.k8s.io/v1
kind string
InterPodAffinityArgs
hardPodAffinityWeight[Обовʼязкове] int32
HardPodAffinityWeight — це вага оцінки для наявних Podʼів з відповідною жорсткою спорідненністю до вхідного Podʼа.
IgnorePreferredTermsOfExistingPods налаштовує планувальник ігнорувати бажані правила спорідненості наявних Podʼів при оцінці кандидатів вузлів, якщо вхідний Pod не має спорідненості між Podʼами.
(Члени DebuggingConfiguration вбудовані в цей тип.)
DebuggingConfiguration містить налаштування для функцій, повʼязаних із налагодженням. TODO: Ми можемо зробити це підструктурою як налагодження componentbaseconfigv1alpha1.DebuggingConfiguration
percentageOfNodesToScore[Обовʼязкове] int32
PercentageOfNodesToScore — це відсоток усіх вузлів, які, як тільки будуть визнані придатними для запуску Podʼа, планувальник припиняє пошук інших придатних вузлів у кластері. Це допомагає покращити продуктивність планувальника. Планувальник завжди намагається знайти принаймні "minFeasibleNodesToFind" придатних вузлів незалежно від значення цього прапорця. Приклад: якщо розмір кластера 500 вузлів і значення цього прапорця 30, то планувальник припиняє пошук далі придатних вузлів, як тільки знайде 150 придатних. Коли значення дорівнює 0, стандартно буде оцінено відсоток вузлів (5%—50% залежно від розміру кластера). Він перекривається рівнем профілю PercentageOfNodesToScore.
podInitialBackoffSeconds[Обовʼязкове] int64
PodInitialBackoffSeconds — це початкова фора для непридатних для планування Podʼів. Якщо вказано, він повинен бути більше 0. Якщо це значення нульове, буде використано стандартне значення (1s).
podMaxBackoffSeconds[Обовʼязкове] int64
PodMaxBackoffSeconds — це максимальна фора для непридатних для планування Podʼів. Якщо вказано, він повинен бути більше podInitialBackoffSeconds. Якщо це значення нульове, буде використано стандартне значення (10s).
Profiles — це профілі планування, які підтримує kube-scheduler. Podʼи можуть вибрати, щоб їх планували за певним профілем, встановивши відповідну назву планувальника. Podʼи, які не вказують жодної назви планувальника, плануються за допомогою профілю "default-scheduler", якщо він присутній тут.
Extenders — це список розширень планувальника, кожне з яких містить значення, як спілкуватися з розширенням. Ці розширення використовуються всіма профілями планувальника.
delayCacheUntilActive[Обовʼязкове] bool
DelayCacheUntilActive визначає, коли починати кешування. Якщо це true і вибори лідера увімкнені, планувальник чекатиме, щоб заповнити кеші інформаторів, поки не стане лідером. Це призведе до повільнішого перемикання з резервного на основний вузол із перевагою нижчого використання пам’яті під час очікування стати лідером. Стандартно — false.
NodeAffinityArgs
NodeAffinityArgs містить аргументи для налаштування втулка NodeAffinity.
AddedAffinity застосовується до всіх Podʼів додатково до NodeAffinity, вказаного в PodSpec. Тобто вузли повинні відповідати AddedAffinity І .spec.NodeAffinity. AddedAffinity є станадртно порожнім (є збіг зі всіма вузлами). Коли використовується AddedAffinity, деякі Podʼи з вимогами щодо спорідненості, які збігаються з конкретним вузлом (наприклад, Podʼи Daemonset), можуть залишатися непридатними для планування.
NodeResourcesBalancedAllocationArgs
NodeResourcesBalancedAllocationArgs містить аргументи для налаштування втулка NodeResourcesBalancedAllocation.
Ресурси, якими потрібно керувати, стандартно: "cpu" та "memory", якщо не вказано інше.
NodeResourcesFitArgs
NodeResourcesFitArgs містить аргументи для налаштування втулка NodeResourcesFit.
Поле
Опис
apiVersion string
kubescheduler.config.k8s.io/v1
kind string
NodeResourcesFitArgs
ignoredResources[Обовʼязково] []string
IgnoredResources — список ресурсів, які фільтр NodeResources повинен ігнорувати. Це не застосовується до оцінювання.
ignoredResourceGroups[Обовʼязково] []string
IgnoredResourceGroups визначає список груп ресурсів, які фільтр NodeResources повинен ігнорувати. наприклад, якщо група - ["example.com"], вона ігноруватиме всі імена ресурсів, які починаються з "example.com", такі як "example.com/aaa" і "example.com/bbb". Імʼя групи ресурсів не може містити '/'. Це не застосовується до оцінювання.
DefaultConstraints визначає обмеження на розподіл топології, які будуть застосовані до Podʼів, що не мають визначених обмежень у pod.spec.topologySpreadConstraints. .defaultConstraints[*].labelSelectors повинні бути порожніми, оскільки вони виводяться з приналежності Podʼа до Services, ReplicationControllers, ReplicaSets або StatefulSets. Якщо не порожньо, .defaultingType має бути "List".
DefaultingType визначає, як виводяться .defaultConstraints. Може бути одним з "System" або "List".
"System": Використовувати визначені kubernetes обмеження, які розподіляють Podʼи серед вузлів і зон.
"List": Використовувати обмеження, визначені в .defaultConstraints.
Стандартно "System".
VolumeBindingArgs
VolumeBindingArgs містить аргументи для налаштування втулка VolumeBinding.
Поле
Опис
apiVersion string
kubescheduler.config.k8s.io/v1
kind string
VolumeBindingArgs
bindTimeoutSeconds[Обовʼязкове] int64
BindTimeoutSeconds — це тайм-аут в секундах у операції привʼязки томів. Значення повинно бути невідʼємним цілим числом. Значення нуль означає, що немає очікування. Якщо це значення не вказано, буде використано стандартне значення (600).
Shape вказує точки, що визначають форму функції оцінки, яка використовується для оцінки вузлів на основі використання наданих PV. Використання розраховується шляхом поділу загального запитаного обсягу сховища Podʼа на загальну ємність доступних PV на кожному вузлі. Кожна точка містить використання (у діапазоні від 0 до 100) та відповідну оцінку (у діапазоні від 0 до 10). Ви можете налаштувати пріоритет, вказуючи різні оцінки для різних рівнів використання. Стандартні точки Shape:
10 для 0 використання
0 для 100 використання. Всі точки повинні бути відсортовані у зростаючому порядку за використанням.
Extender містить параметри, що використовуються для звʼязку з розширювачем. Якщо дієслово не вказано/пусте, вважається, що розширювач вирішів не надавати це розширення.
Поле
Опис
urlPrefix[Обовʼязкове] string
URLPrefix за яким доступний розширювач
filterVerb[Обовʼязкове] string
Дієслово для виклику фільтрації, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику фільтрації розширювача.
preemptVerb[Обовʼязкове] string
Дієслово для виклику витіснення, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику витіснення розширювача.
prioritizeVerb[Обовʼязкове] string
Дієслово для виклику пріоритезації, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику пріоритезації розширювача.
weight[Обовʼязкове] int64
Числовий множник для оцінок вузлів, які генерує виклик пріоритезації. Вага повинна бути додатним цілим числом
bindVerb[Обовʼязкове] string
Дієслово для виклику привʼязки, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику привʼязки розширювача. Якщо цей метод реалізовано розширювачем, це відповідальність розширювача привʼязати Pod до apiserver. Тільки один розширювач може реалізовувати цю функцію.
enableHTTPS[Обовʼязкове] bool
EnableHTTPS вказує, чи слід використовувати https для звʼязку з розширювачем
HTTPTimeout вказує тривалість тайм-ауту для виклику розширювача. Тайм-аут фільтрації призводить до невдалої спроби планування Podʼа. Тайм-аут пріоритезації ігнорується, пріоритети k8s/інших розширювачів використовуються для вибору вузла.
nodeCacheCapable[Обовʼязкове] bool
NodeCacheCapable вказує, що розширювач здатний кешувати інформацію про вузли, отже, планувальник повинен надсилати лише мінімальну інформацію про придатні вузли, припускаючи, що розширювач вже кешував повні дані про всі вузли в кластері
ManagedResources — це список розширених ресурсів, що керуються
цим розширювачем.
Pod буде надіслано до розширювача на етапах фільтрації, пріоритезації та привʼязки (якщо розширювач є звʼязувальним) тільки якщо Pod запитує принаймні
один з розширених ресурсів у цьому списку. Якщо список порожній або не вказаний,
всі Podʼи будуть надіслані до цього розширювача.
Якщо IgnoredByScheduler встановлено в true для ресурсу, kube-scheduler
буде пропускати перевірку ресурсу в предикатах.
ignorable[Обовʼязкове] bool
Ignorable вказує, чи можна ігнорувати розширювач, тобто планування не повинно не вдасться, якщо розширювач повертає помилку або недоступний.
ExtenderTLSConfig містить налаштування для увімкнення TLS з розширювачем
Поле
Опис
insecure[Обовʼязкове] bool
Сервер повинен бути доступний без перевірки сертифікату TLS. Тільки для тестування.
serverName[Обовʼязкове] string
ServerName передається серверу для SNI та використовується в клієнті для перевірки сертифікатів сервера. Якщо ServerName порожній, використовується імʼя хоста, яке використовується для звʼязку з сервером.
certFile[Обовʼязкове] string
Сервер вимагає автентифікацію клієнтського сертифікату TLS
keyFile[Обовʼязкове] string
Сервер вимагає автентифікацію клієнтського сертифікату TLS
caFile[Обовʼязкове] string
Довірені кореневі сертифікати для сервера
certData[Обовʼязкове] []byte
CertData містить PEM-кодовані байти (зазвичай зчитуються з файлу клієнтського сертифіката). CertData має пріоритет над CertFile
keyData[Обовʼязкове] []byte
KeyData містить PEM-кодовані байти (зазвичай зчитуються з файлу ключа клієнтського сертифіката). KeyData має пріоритет над KeyFile
caData[Обовʼязкове] []byte
CAData містить PEM-кодовані байти (зазвичай зчитуються з файлу з кореневими сертифікатами). CAData має пріоритет над CAFile
SchedulerName є імʼям планувальника, асоційованого з цим профілем. Якщо SchedulerName відповідає значенню "spec.schedulerName" Podʼа, то Pod буде плануватися з цим профілем.
percentageOfNodesToScore[Обовʼязкове] int32
PercentageOfNodesToScore є відсотком усіх вузлів, після знаходження яких, планувальник припиняє пошук більш придатних вузлів у кластері для запуску Podʼа. Це допомагає покращити продуктивність планувальника. Планувальник завжди намагається знайти принаймні "minFeasibleNodesToFind" придатних вузлів незалежно від значення цього прапорця. Наприклад, якщо розмір кластера становить 500 вузлів і значення цього прапорця становить 30, то планувальник припиняє пошук далі, як тільки знаходить 150 придатних вузлів. Коли значення 0, стандартно буде оцінено відсоток (5%–50% в залежності від розміру кластера) вузлів. Це матиме перевагу перед глобальним PercentageOfNodesToScore. Якщо це пусто, буде використано глобальний PercentageOfNodesToScore.
Plugins визначають набір втулків, які мають бути увімкнені або вимкнені. Увімкнені втулки — це ті, які мають бути увімкнені додатково до стандартних втулків. Вимкнені втулки — це будь-які зі стандартних втулків, які мають бути вимкнені. Коли жоден увімкнений або вимкнений втулок не зазначений для точки розширення, будуть використані стандартні втулки для цієї точки розширення, якщо такі є. Якщо зазначено втулок QueueSort, то той самий втулок QueueSort та PluginConfig повинні бути зазначені для всіх профілів.
PluginConfig є необовʼязковим набором параметрів для кожного втулка. Виключення конфігураційних аргументів для втулка є еквівалентним використанню стандартної конфігурації для цього втулка.
PluginConfig визначає аргументи, які повинні бути передані втулку під час ініціалізації. Втулок, який викликається на кількох точках розширення, ініціалізується один раз. Args можуть мати довільну структуру. Обробка цих аргументів залежить від самого втулка.
PluginSet визначає включені та виключені втулки для точки розширення. Якщо масив порожній, відсутній або nil, використовуватимуться стандартні втулки для цієї точки розширення.
Enabled визначає втулки, які повинні бути активовані додатково до стандартних втулків. Якщо стандартний втулок також конфігуровано у файлі конфігурації планувальника, вага втулка буде перезаписана відповідно. Ці втулки викликаються після стандартних втулків і в тому ж порядку, як зазначено тут.
Disabled визначає стандартні втулки, які повинні бути вимкнені. Коли всі стандартні втулки потрібно вимкнути, слід надати масив, що містить лише один символ "*".
Plugins включає кілька точок розширення. Коли вони вказані, список втулків для конкретної точки розширення є єдиними активованими втулками. Якщо точка розширення пропущена з конфігурації, тоді використовуються стандартні втулки для цієї точки розширення. Активовані втулки викликаються в порядку, зазначеному тут, після стандартних втулків. Якщо їх потрібно викликати перед стандартними втулками, стандартні втулки повинні бути вимкнені і знову увімкнені тут у бажаному порядку.
Bind — це список втулків, які повинні бути викликані на точці розширення "Bind" фреймворку планування. Планувальник викликає ці втулки по порядку. Планувальник пропускає решту цих втулків, як тільки один з них повертає успіх.
MultiPoint — це спрощений розділ конфігурації для активації втулків для всіх дійсних точок розширення. Втулки, активовані через MultiPoint, автоматично реєструються для кожної індивідуальної точки розширення, яку втулок реалізував. Вимкнення втулка через MultiPoint вимикає таку поведінку. Те ж саме стосується вимкнення "*" через MultiPoint (жоден стандартний втулок не буде автоматично зареєстрований). Втулки все ще можна вимкнути через їх окремі точки розширення.
Що стосується пріоритету, конфігурація втулків дотримується цієї основної ієрархії
Специфічні точки розширення
Явно сконфігуровані втулки MultiPoint
Набір стандартних втулків, як втулки MultiPoint. Це означає, що втулок з вищим пріоритетом буде виконуватися першим і перезаписувати будь-які налаштування всередині MultiPoint. Явно сконфігуровані втулки користувача також мають вищий пріоритет над стандартними втулками. В межах цієї ієрархії, параметр Enabled має вищий пріоритет над Disabled. Наприклад, якщо втулок зазначено як в multiPoint.Enabled та multiPoint.Disabled, втулок буде активовано. Подібним чином, включення multiPoint.Disabled = '*' і multiPoint.Enabled = pluginA все ще зареєструє цей конкретний втулок через MultiPoint. Це слідує тій же поведінці, що й у всіх інших конфігураціях точок розширення.
Ресурси, які слід враховувати при оцінюванні. Стандартний набір ресурсів включає "cpu" та "memory" з однаковою вагою. Дозволені ваги від 1 до 100. Стандартна вага дорівнює 1, якщо не вказана або явно встановлена в 0.
UtilizationShapePoint представляє окрему точку функції пріоритету.
Поле
Опис
utilization[Обовʼязково] int32
Utilization (вісь x). Дійсні значення від 0 до 100. Повністю використаний вузол відповідає 100.
score[Обовʼязково] int32
Оцінка, присвоєна даній утилізації (вісь y). Дійсні значення від 0 до 10.
15.13 - kubeadm Configuration (v1beta3)
Огляд
Пакунок v1beta3 визначає версію v1beta3 формату конфігураційного файлу kubeadm. Ця версія покращує формат v1beta2, виправляючи деякі незначні проблеми і додаючи кілька нових полів.
Список змін з версії v1beta2:
Видалено застаріле поле "ClusterConfiguration.useHyperKubeImage". Kubeadm більше не підтримує образ hyperkube.
Поле "ClusterConfiguration.dns.type" було видалено, оскільки CoreDNS є єдиним типом DNS-сервера, який підтримується kubeadm.
Додано теги "datapolicy" до полів, які містять секрети. Це призведе до того, що значення полів буде пропущено, коли структури API буде надруковано за допомогою klog.
Додано "InitConfiguration.skipPhases", "JoinConfiguration.SkipPhases", щоб дозволити пропустити список фаз під час виконання команд kubeadm init/join.
Додано "InitConfiguration.nodeRegistration.imagePullPolicy" та "JoinConfiguration.nodeRegistration.imagePullPolicy", щоб дозволити вказати політику отримання образів під час kubeadm "init" та "join". Значення має бути одним з "Always", "Never" або "IfNotPresent". "IfNotPresent" — це стандартне значення, яке використовувалося до цього оновлення.
Додано "InitConfiguration.patches.directory", "JoinConfiguration.patches.directory", щоб дозволити користувачеві конфігурувати теку, з якої буде братися патч для компонентів, розгорнутих за допомогою kubeadm.
Перенесено API BootstrapToken* та повʼязані з ним утиліти з групи API "kubeadm" до нової групи "bootstraptoken". API kubeadm версії v1beta3 більше не містить структур BootstrapToken*.
Міграція зі старих версій конфігурації kubeadm
kubeadm v1.15.x і новіше можна використовувати для міграції з v1beta1 на v1beta2.
kubeadm v1.22.x і новіші більше не підтримують v1beta1 і старіші API, але можуть бути використані для міграції з v1beta2 на v1beta3.
kubeadm v1.27.x і новіші більше не підтримують v1beta2 і старіші API.
Основи
Найкращим способом налаштування kubeadm є передача конфігураційного файлу у форматі YAML з опцією --config. Деякі з параметрів конфігурації, визначених у конфігураційному файлі kubeadm, також доступні як прапорці командного рядка, але у цьому випадку підтримуються лише найпоширеніші/простіші випадки використання.
Конфігураційний файл kubeadm може містити декілька типів конфігурацій, розділених трьома тире (---).
Перелік типів конфігурацій, які необхідно включити до конфігураційного файлу, залежить від дії, яку ви виконуєте (init або join), а також від параметрів конфігурації, які ви збираєтесь використовувати (стандартні або розширені налаштування).
Якщо деякі типи конфігурацій не передбачено або передбачено лише частково, kubeadm використовуватиме стандартні значення; стандартно kubeadm також забезпечує узгодженість значень між компонентами, коли це необхідно (наприклад, прапорець --cluster-cidr на менеджері контролерів та clusterCIDR у kube-proxy).
Користувачам завжди дозволено перевизначати стандартні значення, за винятком невеликої підгрупи налаштувань, що мають стосунок до безпеки (наприклад, примусово вмикати режим авторизації Node і RBAC на api-сервері).
Якщо користувач надасть типи конфігурації, які не очікуються для дії, яку ви виконуєте, kubeadm проігнорує ці типи і видасть попередження.
Типи конфігурації Kubeadm init
При виконанні kubeadm init з опцією --config можуть бути використані наступні типи конфігурацій: InitConfiguration, ClusterConfiguration, KubeProxyConfiguration, KubeletConfiguration, але тільки один з них поміж InitConfiguration та ClusterConfiguration є обовʼязковим.
Тип InitConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm init є конфігурація токена завантажувача та всі параметри, специфічні для вузла, на якому виконується kubeadm, включно з ними:
NodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
LocalAPIEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі; використовуйте його, наприклад, для налаштування адреси оголошення сервера API.
Тип InitConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm init є конфігурація токена завантажувача та всі параметри, специфічні для вузла, на якому виконується kubeadm, включно з ними:
NodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
LocalAPIEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі; використовуйте його, наприклад, для налаштування адреси оголошення сервера API.
Тип ClusterConfiguration слід використовувати для налаштування параметрів всього кластера, включаючи налаштування для:
networking, що містить конфігурацію мережевої топології кластера; використовуйте їх, наприклад, для налаштування підмережі Pod або підмережі сервісів.
etcd: використовуйте для налаштування локального etcd або для налаштування сервера API для використання зовнішнього кластера etcd.
конфігурації kube-apiserver, kube-scheduler, kube-controller-manager; використовуйте для налаштування компонентів панелі управління шляхом додавання індивідуальних налаштувань або перевизначення стандартних налаштувань kubeadm.
Тип KubeProxyConfiguration слід використовувати для зміни конфігурації, що передається екземплярам kube-proxy, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні значення.
Тип KubeletConfiguration слід використовувати для зміни конфігурацій, які буде передано всім екземплярам kubelet, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні налаштування.
Тип JoinConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm join є метод виявлення, що використовується для доступу до інформації про кластер, а також всі налаштування, специфічні для вузла, на якому виконується kubeadm, включно з:
nodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
apiEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі.
ЗАСТАРІЛО: v1beta3 застаріло на користь v1beta4 і буде видалено в майбутньому випуску, 1.34 або пізнішому. Будь ласка, перейдіть на нову версію.
token використовується для встановлення двосторонньої довіри між вузлами та панелями управління. Використовується для приєднання вузлів до кластера.
description string
description встановлює зрозуміле людини повідомлення про те, чому існує цей токен і для чого він використовується, щоб інші адміністратори знали його призначення.
expires вказує на мітку часу, коли цей токен закінчується. Стандартно встановлюється динамічно під час виконання на основі ttl. expires та ttl взаємовиключні.
usages []string
usages описує способи, якими цей токен може бути використаний. Стандартно може бути використаний для встановлення двосторонньої довіри, але це можна змінити тут.
groups []string
groups визначає додаткові групи, з якими цей токен буде автентифікуватися, якщо/коли використовуватиметься для автентифікації
BootstrapTokenString — це токен у форматі abcdef.abcdef0123456789, який використовується як для валідації практичності API-сервера з погляду вузла, що приєднується, так і як метод автентифікації вузла на етапі завантаження
у фазі "kubeadm join". Цей токен є і повинен бути короткотривалим.
Поле
Опис
-[Обовʼязково] string
Опис відсутній.
-[Обовʼязково] string
Опис відсутній.
ClusterConfiguration
ClusterConfiguration містить конфігурацію для всього кластера kubeadm.
networking містить конфігурацію для мережевої топології кластера.
kubernetesVersion string
kubernetesVersion — це цільова версія панелі управління.
controlPlaneEndpoint string
controlPlaneEndpoint встановлює стабільну IP-адресу або DNS-імʼя для панелі управління. Це може бути дійсна IP-адреса або субдомен RFC-1123 DNS з додатковим TCP портом. Якщо controlPlaneEndpoint не вказано, використовуються advertiseAddress + bindPort; якщо controlPlaneEndpoint вказано без TCP порту, використовується bindPort. Можливі варіанти використання:
У кластері з більше ніж одним екземпляром панелі управління це поле повинно бути присвоєно адресу зовнішнього балансувальника навантаження перед екземплярами панелі управління.
У середовищах з обовʼязковим перерозподілом вузлів controlPlaneEndpoint може бути використаний для призначення стабільного DNS панелі управління.
dns визначає опції для DNS надбудови, встановленої в кластері.
certificatesDir string
certificatesDir вказує, де зберігати або шукати всі необхідні сертифікати.
imageRepository string
imageRepository встановлює реєстр контейнерів для завантаження образів. Якщо порожнє, стандартно буде використано registry.k8s.io. Якщо версія Kubernetes є CI-збіркою (версія Kubernetes починається з ci/), gcr.io/k8s-staging-ci-images буде використовуватись для компонентів панелі управління та для kube-proxy, тоді як registry.k8s.io буде використано для всіх інших образів.
featureGates map[string]bool
featureGates містить функціональні можливості, увімкнені користувачем.
clusterName string
Назва кластера. Ця назва буде використовуватися у файлах kubeconfig, що генеруються kubeadm, а також буде передаватися як значення прапорця --cluster-name kube-controller-manager. Стандартне значення — "kubernetes".
InitConfiguration
InitConfiguration містить список елементів, специфічних для "kubeadm init"-тільки під час виконання. Тільки інформація kubeadm init. Ці поля використовуються виключно під час першого запуску kubeadm init. Після цього інформація в цих полях НЕ завантажується в kubeadm-config ConfigMap, який використовується, наприклад, під час kubeadm upgrade. Ці поля мають бути порожніми.
bootstrapTokens використовується під час kubeadm init і описує набір Bootstrap Tokens для створення. Ця інформація НЕ завантажується в kubeadm cluster configmap, частково через її конфіденційний характер
localAPIEndpoint представляє точку доступу екземпляра API сервера, яка розгорнута на цьому вузлі панелі управління. У HA-налаштуваннях це відрізняється від ClusterConfiguration.controlPlaneEndpoint в тому сенсі, що controlPlaneEndpoint є глобальною точкою доступу для кластера, яка потім розподіляє запити на кожен окремий API сервер. Цей конфігураційний обʼєкт дозволяє налаштувати, яку IP-адресу/DNS-імʼя та порт локальний API сервер оголошує як доступні. Стандартно kubeadm намагається автоматично визначити типову IP-адресу інтерфейсу та використовувати її, але в разі невдачі ви можете встановити бажане значення тут.
certificateKey string
certificateKey встановлює ключ, яким сертифікати та ключі шифруються перед завантаженням у Secret в кластері під час фази uploadcerts init. Ключ сертифіката є кодуванням шістнадцяткового рядка, який є AES ключем розміром 32 байти.
skipPhases []string
skipPhases — це список фаз, які потрібно пропустити під час виконання команди. Список фаз можна отримати за допомогою команди kubeadm init --help. Прапорець "--skip-phases" має пріоритет перед цим полем.
nodeRegistration містить поля, що стосуються реєстрації нового
вузла панелі управління в кластері.
caCertPath string
caCertPath — це шлях до SSL центра сертифікації, що використовується для захисту звʼязку між вузлом та панеллю управління. Стандартно — /etc/kubernetes/pki/ca.crt.
controlPlane визначає додатковий екземпляр панелі управління, який буде розгорнутий на приєднаному вузлі. Якщо nil, додатковий екземпляр панелі управління не буде розгорнуто.
skipPhases []string
skipPhases — це список фаз, які потрібно пропустити під час виконання команди. Список фаз можна отримати за допомогою команди kubeadm join --help. Прапорець --skip-phases має пріоритет перед цим полем.
BootstrapTokenDiscovery використовується для налаштування параметрів виявлення на основі маркера початкового завантаження.
Поле
Опис
token[Обовʼязкове] string
token — це маркер, що використовується для перевірки інформації про кластер, отриманої з панелі управління.
apiServerEndpoint string
apiServerEndpoint — це IP-адреса або доменне імʼя до API сервера, з якого буде отримана інформація.
caCertHashes []string
caCertHashes вказує набір публічних ключів для перевірки при використанні виявлення на основі маркера. Кореневий сертифікат CA, знайдений під час виявлення, повинен відповідати одному з цих значень. Зазначення порожнього набору відключає закріплення кореневого сертифіката CA, що може бути небезпечним. Кожен хеш зазначається у форматі <type>:<value>, де єдиним підтримуваним типом на даний момент є "sha256". Це хеш SHA-256 у шістнадцятковому форматі, який обчислюється за допомогою обʼєкта Subject Public Key Info (SPKI) у DER-кодованому форматі ASN.1. Ці хеші можна обчислити за допомогою, наприклад, OpenSSL.
unsafeSkipCAVerification bool
unsafeSkipCAVerification дозволяє виявлення на основі маркера без перевірки CA за допомогою caCertHashes. Це може послабити безпеку kubeadm, оскільки інші вузли можуть видавати себе за панель управління.
ControlPlaneComponent містить налаштування, спільні для компонентів панелі управління кластера.
Поле
Опис
extraArgs map[string]string
extraArgs — це додатковий набір параметрів, що передаються компоненту панелі кправління. Ключ у цьому map — це імʼя параметра, як воно зʼявляється в командному рядку, без попереднього дефіса(ів).
file використовується для вказівки файлу або URL-адреси до файлу kubeconfig, з якого завантажується інформація про кластер.
bootstrapToken і file є взаємовиключними.
tlsBootstrapToken string
tlsBootstrapToken є токеном, який використовується для TLS bootstrapping. Якщо bootstrapToken встановлено, це поле стандартно встановлюється на .bootstrapToken.token, але може бути перевизначено. Якщо встановлено file, це поле має бути встановлено у випадку, якщо KubeConfigFile не містить іншої інформації для автентифікації.
ExternalEtcd описує зовнішній кластер etcd. Kubeadm не має знань про знаходження файлів сертифікатів, і вони повинні бути надані.
Поле
Опис
endpoints[Обовʼязково] []string
endpoints містить список учасників etcd.
caFile[Обовʼязково] string
caFile є файлом сертифіката SSL Certificate Authority (CA), який використовується для захисту звʼязку etcd. Обовʼязковий, якщо використовується TLS-зʼєднання.
certFile[Обовʼязково] string
certFile є файлом сертифіката SSL, який використовується для захисту звʼязку etcd. Обовʼязковий, якщо використовується TLS-зʼєднання.
keyFile[Обовʼязково] string
keyFile є файлом ключа SSL, який використовується для захисту звʼязку etcd. Обовʼязковий, якщо використовується TLS-зʼєднання.
ImageMeta дозволяє налаштувати образи, що використовуються для компонентів, які не походять з процесу випуску Kubernetes/Kubernetes
Поле
Опис
imageRepository string
imageRepository встановлює реєстр контейнерів, з якого будуть завантажені образи. Якщо не встановлено, буде використовуватися imageRepository, визначений у ClusterConfiguration.
imageTag string
imageTag дозволяє вказати теґ для образу. Якщо це значення встановлено, kubeadm не буде автоматично змінювати версію вище зазначених компонентів під час оновлень.
localAPIEndpoint представляє точку доступу для екземпляра API-сервера, який буде розгорнуто на цьому вузлі.
certificateKey string
certificateKey є ключем, який використовується для дешифрування сертифікатів після їх завантаження з секрету під час приєднання нового вузла панелі упралвіння. Відповідний ключ шифрування знаходиться в InitConfiguration. Ключ сертифіката є рядком у шістнадцятковому кодуванні, що є AES-ключем розміром 32 байти.
ImageMeta дозволяє налаштувати образ контейнера, що використовується для etcd. Передача власного образу etcd повідомляє kubeadm upgrade, що цей образ управляється користувачем і його оновлення необхідно пропустити.
dataDir[Обовʼязкове] string
dataDir — це тека, в якій etcd розміщуватиме свої дані. Стандартно використовується "/var/lib/etcd".
extraArgs map[string]string
extraArgs — додаткові аргументи, що передаються бінарному файлу etcd при його запуску всередині статичного Pod. Ключ у цьому map є імʼям прапорця, як він зʼявляється на командному рядку, але без дефісів на початку.
serverCertSANs []string
serverCertSANs задає додаткові Subject Alternative Names (SANs) для сертифіката підпису сервера etcd.
peerCertSANs []string
peerCertSANs задає додаткові Subject Alternative Names (SANs) для сертифіката підпису peer etcd.
NodeRegistrationOptions містить поля, що стосуються реєстрації нової панелі управління або вузла в кластері, як через kubeadm init, так і через kubeadm join.
Поле
Опис
name string
name — це поле .metadata.name обʼєкта Node API, який буде створений в процесі kubeadm init або kubeadm join. Це поле також використовується в полі CommonName клієнтського сертифікату kubelet до API сервера. Стандартно буде використано імʼя хоста вузла, якщо не надано.
criSocket string
criSocket використовується для отримання інформації про середовище виконання контейнерів. Ця інформація буде анотована до обʼєкта Node API для подальшого використання.
taints вказує на taints, з якими обʼєкт Node API повинен бути зареєстрований. Якщо це поле не встановлено, тобто nil, воно буде стандартно з control-plane taint для вузлів control-plane. Якщо ви не хочете taint для вашого вузла control-plane, встановіть в це поле порожній список, тобто taints: [] у YAML файлі. Це поле використовується виключно для реєстрації вузлів.
kubeletExtraArgs map[string]string
kubeletExtraArgs передає додаткові аргументи до kubelet. Аргументи тут передаються в командний рядок kubelet через файл середовища kubeadm, що створюється під час виконання, щоб kubelet міг його використовувати. Це переважає загальну базову конфігурацію в ConfigMap kubelet-config. Прапорці мають вищий пріоритет під час парсингу. Ці значення локальні та специфічні для вузла, на якому виконується kubeadm. Ключ у цьому словнику — це назва прапорці, як вона зʼявляється в командному рядку, але без початкових дефісів.
ignorePreflightErrors []string
ignorePreflightErrors надає список помилок перед запуском, які слід ігнорувати під час реєстрації поточного вузла, наприклад, IsPrevilegedUser,Swap. Значення all ігнорує помилки від усіх перевірок.
imagePullPolicy вказує політику для витягування образів під час операцій kubeadm "init" та "join". Значення цього поля повинно бути одне з "Always", "IfNotPresent" або "Never". Якщо це поле не встановлено, kubeadm стандартно встановить його в "IfNotPresent", або витягне необхідні образи, якщо вони не присутні на хості.
Patches містить параметри, повʼязані з застосуванням патчів до компонентів, розгорнутих за допомогою kubeadm.
Поле
Опис
directory string
directory — це шлях до теки, що містить файли, названі
"target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json" та відповідати форматам патчів, підтримуваних kubectl. Стандартно "patchtype" — "strategic". "extension" повинна бути або "json", або "yaml". "suffix" — це необовʼязковий рядок, який може бути використаний для визначення, які патчі застосовуються першими за алфавітним порядком.
15.14 - kubeadm Configuration (v1beta4)
Огляд
Пакунок v1beta4 визначає версію v1beta4 формату конфігураційного файлу kubeadm. Ця версія покращує формат v1beta3, виправляючи деякі незначні проблеми і додаючи кілька нових полів.
Список змін з версії v1beta3:
v1.35:
Додано поле httpEndpoints до ClusterConfiguration.etcd.externalEtcd, яке можна використовувати для налаштування точок доступу HTTP для комунікації etcd у v1beta4. Це поле використовується для відокремлення трафіку HTTP (такого як точки доступу /metrics та /health) від трафіку gRPC, що обробляється endpoints. Таке розділення дозволяє краще контролювати доступ, оскільки точки доступу HTTP можуть бути відкриті без відкриття основного інтерфейсу gRPC. Відповідає конфігурації etcd --listen-client-http-urls. Якщо не вказано, endpoints буде використовуватися як для трафіку gRPC, так і для трафіку HTTP.
v1.34:
Додано "ECDSA-P384" до дозволених опцій алгоритму шифрування для ClusterConfiguration.encryptionAlgorithm
v1.33:
Додає поле EtcdUpgrade до UpgradeConfiguration.plan, яке може бути використане для керування тим, чи треба показувати план оновлення etcd.
Підтримуйте власні змінні оточення у компонентах панелі управління у розділі ClusterConfiguration. Використовуйте apiServer.extraEnvs, controllerManager.extraEnvs, scheduler.extraEnvs, etcd.local.extraEnvs.
Тип API ResetConfiguration тепер підтримується у v1beta4. Користувачі можуть скинути конфігурацію вузла, передавши kubeadm reset файл --config.
режим dry-run тепер налаштовується у InitConfiguration та JoinConfiguration.
Замінено існуючі map додаткових аргументів типу рядок/рядок на структуровані додаткові аргументи, які підтримують дублікати. Зміни застосовано до ClusterConfiguration — apiServer.extraArgs, controllerManager.extraArgs, scheduler.extraArgs, etcd.local.extraArgs. Також до nodeRegistration.kubeletExtraArgs.
Додано ClusterConfiguration.encryptionAlgorithm, за допомогою якого можна задати алгоритм асиметричного шифрування, що використовується для ключів і сертифікатів цього кластера. Може бути один з "RSA-2048" (стандартно), "RSA-3072", "RSA-4096" або "ECDSA-P256".
Додано ClusterConfiguration.dns.disabled та ClusterConfiguration.proxy.disabled, за допомогою яких можна вимкнути надбудови CoreDNS та kube-proxy під час ініціалізації кластера. Якщо пропустити повʼязані з ними етапи під час створення кластера, ці ж поля буде встановлено у значення true.
Додано поле nodeRegistration.imagePullSerial у InitConfiguration та JoinConfiguration, за допомогою якого можна контролювати, чи kubeadm витягує образи послідовно або паралельно.
API kubeadm UpgradeConfiguration тепер підтримується у v1beta4 при передачі --config до команд kubeadm upgrade. Використання конфігурації компонентів для kubelet та kube-proxy, InitConfiguration та ClusterConfiguration є застарілим і буде проігноровано при передачі --config до команд upgrade.
Додано структуру Timeouts до InitConfiguration, JoinConfiguration, ResetConfiguration та UpgradeConfiguration, яку можна використовувати для налаштування різних тайм-аутів. Поле ClusterConfiguration.timeoutForControlPlane замінено на Timeouts.controlPlaneComponentHealthCheck. Поле JoinConfiguration.discovery.timeout замінено на timeouts.Discovery.
Додано поля certificateValidityPeriod та caCertificateValidityPeriod до ClusterConfiguration. Ці поля можна використовувати для контролю терміну дії сертифікатів, згенерованих kubeadm під час виконання таких підкоманд, як init, join, upgrade і certs. Стандартні значення залишаються 1 рік для сертифікатів без CA і 10 років для сертифікатів з CA. Лише сертифікати без CA можна поновлювати командою kubeadm certs renew.
Міграція зі старих версій конфігурації kubeadm
kubeadm v1.15.x і новіше можна використовувати для міграції з v1beta1 на v1beta2.
kubeadm v1.22.x і новіші більше не підтримують v1beta1 і старіші API, але можуть бути використані для міграції з v1beta2 на v1beta3.
kubeadm v1.27.x і новіші більше не підтримують v1beta2 і старіші API.
kubeadm v1.31.x і новіше можна використовувати для міграції з v1beta3 на v1beta4.
Основи
Найкращим способом налаштування kubeadm є передача конфігураційного файлу у форматі YAML з опцією --config. Деякі з параметрів конфігурації, визначених у конфігураційному файлі kubeadm, також доступні як прапорці командного рядка, але цей спосіб підтримує лише найпоширеніші/найпростіші випадки використання.
Конфігураційний файл kubeadm може містити декілька типів конфігурацій, розділених трьома тире (---).
Перелік типів конфігурацій, які необхідно включити до конфігураційного файлу, залежить від дії, яку ви виконуєте (init або join), а також від параметрів конфігурації, які ви збираєтеся використовувати (стандартні або розширені налаштування).
Якщо деякі типи конфігурацій не передбачено або передбачено лише частково, kubeadm використовуватиме стандартні значення; стандартне налаштування kubeadm включає також забезпечення узгодженості значень між компонентами, коли це необхідно (наприклад, прапорець --cluster-cidr на менеджері контролерів та clusterCIDR на kube-proxy).
Користувачам завжди дозволено перевизначати стандартні значення, за винятком невеликої підгрупи налаштувань, що мають відношення до безпеки (наприклад, включення режиму авторизації Node і RBAC на api-сервері).
Якщо користувач надасть типи конфігурації, які не очікуються для дії, яку ви виконуєте, kubeadm проігнорує ці типи та виведе попередження.
Типи конфігурацій Kubeadm init
При виконанні kubeadm init з опцією --config можуть бути використані наступні типи конфігурацій: InitConfiguration, ClusterConfiguration, KubeProxyConfiguration, KubeletConfiguration, але тільки один з них між InitConfiguration і ClusterConfiguration є обовʼязковим.
Тип InitConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm init є конфігурація токена завантажувача та всі параметри, специфічні для вузла, на якому виконується kubeadm, включно з:
NodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
LocalAPIEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі; використовуйте його, наприклад, для налаштування адреси оголошень сервера API.
Тип ClusterConfiguration слід використовувати для налаштування параметрів всього кластера, включаючи налаштування для:
networking, що зберігає конфігурацію мережевої топології кластера; використовуйте його, наприклад, для налаштування підмережі Pod або підмережі сервісів.
etcd: використовуйте його, наприклад, для налаштування локального etcd або для налаштування сервера API для використання зовнішнього кластера etcd.
конфігурації kube-apiserver, kube-scheduler, kube-controller-manager; використовуйте його для налаштування компонентів панелі управління, додаючи індивідуальні налаштування або перевизначаючи стандартні налаштування kubeadm.
Тип KubeProxyConfiguration слід використовувати для зміни конфігурації, що передається екземплярам kube-proxy, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні значення.
Тип KubeletConfiguration слід використовувати для зміни конфігурацій, які буде передано всім екземплярам kubelet, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні налаштування.
Тип JoinConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm join є метод виявлення, що використовується для доступу до інформації про кластер, а також всі налаштування, специфічні для вузла, на якому виконується kubeadm, включно з:
nodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
apiEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі.
Типи конфігурацій Kubeadm reset
При виконанні kubeadm reset з опцією --config слід вказати тип ResetConfiguration.
Структура UpgradeConfiguration містить кілька підструктур, які застосовуються тільки різних команд kubeadm upgrade. Наприклад, apply використовується з командою kubeadm upgrade apply тож всі інші підструктури будуть проігноровані.
token використовується для встановлення двосторонньої довіри між вузлами та панеллю управління. Використовується для приєднання вузлів до кластера.
description string
description встановлює зрозуміле людині повідомлення про те, чому існує цей токен і для чого він використовується, щоб інші адміністратори могли зрозуміти його призначення.
expires вказує на момент, коли цей токен закінчує свою дію. Стандартно встановлюється динамічно під час виконання на основі ttl.
expires та ttl є взаємовиключними.
usages []string
usages описує способи, якими цей токен може бути використаний. Може стандартно використовуватися для встановлення двосторонньої довіри, але це можна змінити тут.
groups []string
groups вказує на додаткові групи, до яких цей токен буде автентифікуватися при використанні для автентифікації
BootstrapTokenString є токеном формату abcdef.abcdef0123456789, який використовується як для перевірки практичності API сервера з погляду вузла, що приєднується, так і як метод автентифікації вузла в фазі bootstrap команди "kubeadm join". Цей токен є і має бути короткочасним.
Поле
Опис
-[Обовʼязкове] string
Опис не надано.
-[Обовʼязкове] string
Опис не надано.
ClusterConfiguration
ClusterConfiguration містить конфігурацію на рівні кластера для кластера kubeadm.
networking містить конфігурацію для мережевої топології кластера.
kubernetesVersion string
kubernetesVersion — це цільова версія панелі управління.
controlPlaneEndpoint string
controlPlaneEndpoint встановлює стабільну IP-адресу або DNS-імʼя для панелі управління; Може бути дійсною IP-адресою або піддоменом RFC-1123 DNS, обидва з необовʼязковим TCP портом. Якщо controlPlaneEndpoint не зазначено, використовуються advertiseAddress + bindPort; якщо controlPlaneEndpoint зазначено, але без TCP порту, використовується bindPort. Можливі використання:
У кластері з більше ніж однією панеллю управління, це поле має бути присвоєно адресі зовнішнього балансувальника навантаження перед екземплярами панелі управління.
У середовищах з примусовою утилізацією вузлів, controlPlaneEndpoint може використовуватися для присвоєння стабільного DNS панелі управління.
proxy визначає параметри для надбудови проксі, встановленої в кластері.
certificatesDir string
certificatesDir вказує, де зберігати або шукати всі необхідні сертифікати.
imageRepository string
imageRepository встановлює реєстр контейнерів для витягування зображень. Якщо порожньо, стандартно використовується registry.k8s.io. У випадку, якщо версія Kubernetes є CI-збіркою (версія Kubernetes починається з ci/) gcr.io/k8s-staging-ci-images буде використовуватись для компонентів панелі управління та для kube-proxy, тоді як registry.k8s.io буде використовуватися для всіх інших образів.
featureGates map[string]bool
featureGates містить функціональні можливості kubeadm, увімкнені користувачем.
clusterName string
Назва кластера. Ця назва буде використовуватися у файлах kubeconfig, що генеруються kubeadm, а також буде передаватися як значення прапорця --cluster-name kube-controller-manager. Стандартне значенням — "kubernetes".
encryptionAlgorithm містить тип асиметричного алгоритму шифрування, що використовується для ключів та сертифікатів. Може бути один з "RSA-2048" (стандартний алгоритм), "RSA-3072", "RSA-4096", "ECDSA-P256" або "ECDSA-P384".
caCertificateValidityPeriod вказує термін дії для СА сертифікату, згенерованого kubeadm. Стандартне значення: 87600h (365 днів * 24 годин * 10 = 10 років)
InitConfiguration
InitConfiguration містить список елементів, що специфічні для тільки для запуску kubeadm init. Ці поля використовуються лише під час першого запуску kubeadm init. Після цього інформація в цих полях НЕ завантажується до ConfigMap kubeadm-config, який використовується, наприклад, при kubeadm upgrade. Ці поля повинні бути опущені.
bootstrapTokens враховується під час kubeadm init і описує набір Bootstrap Token для створення. Ця інформація НЕ завантажується до ConfigMap кластера kubeadm, частково через її чутливий характер.
dryRun[Обовʼязкове] bool
dryRun вказує, чи увімкнено режим перевірки, не застосовувати жодні зміни в режимі перевірки, просто вивести те, що буде зроблено.
localAPIEndpoint представляє точку доступу до екземпляра API сервера, що розгорнутий на цьому вузлі панелі управління. У налаштуваннях HA це відрізняється від ClusterConfiguration.controlPlaneEndpoint тим, що controlPlaneEndpoint є глобальною точкою доступу для кластера, яка потім розподіляє запити між кожним окремим API сервером. Цей обʼєкт конфігурації дозволяє налаштувати, на якій IP/DNS-імʼя та порт локальний API сервер оголошує свою доступність. Стандартно kubeadm намагається автоматично визначити IP адресу інтерфейсу та використовувати її, але якщо цей процес не вдалося, ви можете встановити бажане значення тут.
certificateKey string
certificateKey встановлює ключ, яким шифруються сертифікати та ключі перед завантаженням в Secret в кластері під час фази uploadcerts init. Ключ сертифіката є рядком у форматі hex, що є AES ключем розміром 32 байти.
skipPhases []string
skipPhases є списком фаз, які потрібно пропустити під час виконання команди. Список фаз можна отримати за допомогою команди kubeadm init --help. Прапорець --skip-phases має пріоритет над цим полем.
nodeRegistration містить поля, що стосуються реєстрації нового вузла панелі управління в кластері.
caCertPath string
caCertPath є шляхом до SSL центру сертифікації, що використовується для забезпечення комунікацій між вузлом та панеллю управління. Стандартно — /etc/kubernetes/pki/ca.crt.
controlPlane визначає додатковий екземпляр панелі управління, який буде розгорнуто на вузлі, що приєднується. Якщо nil, жоден додатковий екземпляр панелі управління не буде розгорнуто.
skipPhases []string
skipPhases є списком фаз, які потрібно пропустити під час виконання команди. Список фаз можна отримати за допомогою команди kubeadm join --help. Прапорець --skip-phases має пріоритет над цим полем.
timeouts містить різні тайм-аути, які застосовуються до команд kubeadm.
ResetConfiguration
ResetConfiguration містить список полів, що є специфічними для режиму kubeadm reset.
Поле
Опис
apiVersion string
kubeadm.k8s.io/v1beta4
kind string
ResetConfiguration
cleanupTmpDir bool
cleanupTmpDir вказує, чи слід очищати теку /etc/kubernetes/tmp під час процесу скидання.
certificatesDir string
certificatesDir вказує теку, де зберігаються сертифікати. Якщо вказано, вона буде очищена під час процесу скидання.
criSocket string
criSocket використовується для отримання інформації про середовище виконання контейнерів для видалення контейнерів. Якщо criSocket не вказано через прапорець або файл конфігурації, kubeadm спробує виявити дійсний CRI сокет.
dryRun bool
dryRun вказує, чи увімкнено режим перевірки. Якщо так, жодні зміни не застосовуються, а просто виводиться те, що буде зроблено.
force bool
Флаг force інструктує kubeadm скинути вузол без запиту підтвердження.
ignorePreflightErrors []string
ignorePreflightErrors надає список помилок перед стартом, які слід ігнорувати під час процесу скидання, наприклад, IsPrivilegedUser,Swap. Значення all ігнорує помилки з усіх перевірок.
skipPhases []string
skipPhases є списком фаз, які потрібно пропустити під час виконання команди. Список фаз можна отримати за допомогою команди kubeadm reset phase --help.
unmountFlags []string
unmountFlags — список прапорців syscall unmount2(), які kubeadm може використовувати при розмонтуванні тек під час " reset". Цей прапорець може бути одним з: "MNT_FORCE", "MNT_DETACH", "MNT_EXPIRE", "UMOUNT_NOFOLLOW". Стандартно цей список порожній.
BootstrapTokenDiscovery використовується для налаштування параметрів для виявлення з використанням токенів.
Поле
Опис
token[Обовʼязкове] string
token є токеном, що використовується для перевірки інформації про кластер, отриманої від панелі управління.
apiServerEndpoint string
apiServerEndpoint є IP-адресою або доменним імʼям API-сервера, з якого буде отримана інформація.
caCertHashes []string
caCertHashes вказує набір публічних ключів, які потрібно перевірити при використанні виявлення на основі токенів. Кореневий CA, знайдений під час виявлення, повинен відповідати одному з цих значень. Вказівка порожнього набору вимикає привʼязку кореневого CA, що може бути небезпечним. Кожен хеш вказується як <type>:<value>, де єдиний підтримуваний тип наразі — "sha256". Це хеш SHA-256 коду обʼєкта Subject Public Key Info (SPKI) у DER-кодованому ASN.1. Ці хеші можна розрахувати за допомогою, наприклад, OpenSSL.
unsafeSkipCAVerification bool
unsafeSkipCAVerification дозволяє виявлення на основі токенів без перевірки CA через caCertHashes. Це може ослабити безпеку kubeadm, оскільки інші вузли можуть видавати себе за панель управління.
extraArgs — це додатковий набір прапорців, які передаються компоненту панелі управління. Назва аргументу в цьому списку є назвою прапорця, як вона зʼявляється в командному рядку, але без початковиї дефісів. Додаткові аргументи переважатимуть існуючі стандартні аргументи. Дублікати додаткових аргументів дозволені.
extraEnvs — це додатковий набір змінних середовища, які передаються компоненту панелі управління. Змінні середовища, передані за допомогою extraEnvs, переважатимуть будь-які існуючі змінні середовища або змінні середовища *_proxy, які kubeadm додає стандартно.
file використовується для вказівки файлу або URL на kubeconfig файл, з якого завантажується інформація про кластер. bootstrapToken і file є взаємовиключними.
tlsBootstrapToken string
tlsBootstrapToken є токеном, що використовується для TLS bootstrapping. Якщо bootstrapToken встановлено, це поле стандартно буде дорівнювати bootstrapToken.token, але його можна перевизначити. Якщо file встановлено, це поле повинно бути встановлено, якщо файл KubeConfigFile не містить іншої інформації для автентифікації.
ExternalEtcd описує зовнішній кластер etcd. Kubeadm не має інформації про те, де знаходяться файли сертифікатів, і їх необхідно надати.
Поле
Опис
endpoints[Обовʼязкове] []string
endpoints містить список членів etcd. Це визначає URL-адреси клієнта (зазвичай точки доступу gRPC) для звʼязку з etcd. Стандартно ці точки доступу обробляють як трафік gRPC (основний протокол etcd), так і трафік HTTP (метрики, перевірки працездатності). Однак, якщо налаштовано httpEndpoints, трафік gRPC і HTTP можна розділити для підвищення безпеки та продуктивності. Відповідає конфігурації etcd --listen-client-urls.
httpEndpoints []string
httpEndpoints є спеціальними точками доступу HTTP для комунікації etcd. Після налаштування HTTP-трафік (такий як точки доступу /metics та /health) відокремлюється від gRPC-трафіку, що обробляється endpoints. Таке відокремлення дозволяє краще контролювати доступ, оскільки точки доступу HTTP можуть бути експоновані без відкриття основного інтерфейсу gRPC. Відповідає конфігурації etcd --listen-client-http-urls. Якщо не вказано, endpoints буде використовуватися як для трафіку gRPC, так і для трафіку HTTP.
caFile[Обовʼязкове] string
caFile є файлом центру сертифікації (CA) SSL, що використовується для захисту комунікації etcd. Необхідний, якщо використовується зʼєднання TLS.
certFile[Обовʼязкове] string
certFile є файлом сертифікації SSL, що використовується для захисту комунікації etcd. Необхідний, якщо використовується зʼєднання TLS.
keyFile[Обовʼязкове] string
keyFile є файлом ключа SSL, що використовується для захисту комунікації etcd. Необхідний, якщо використовується зʼєднання TLS.
ImageMeta дозволяє налаштувати образ, що використовується для компонентів, які не походять з процесу релізу Kubernetes/Kubernetes.
Поле
Опис
imageRepository string
imageRepository визначає реєстр контейнерів, з якого потрібно завантажити образи. Якщо не вказано, буде використано imageRepository, визначений в ClusterConfiguration.
imageTag string
imageTag дозволяє вказати тег для образу. У випадку, якщо це значення вказане, kubeadm не змінює автоматично версію вищезазначених компонентів під час оновлень.
localAPIEndpoint представляє точку доступу екземпляра API сервера, яка має бути розгорнута на цьому вузлі.
certificateKey string
certificateKey є ключем, що використовується для розшифрування сертифікатів після їх завантаження з Secret при приєднанні нового вузла панелі управління. Відповідний ключ шифрування знаходиться в InitConfiguration. Ключ сертифіката є рядком у шістнадцятковому кодуванні, який є AES ключем розміром 32 байти.
ImageMeta дозволяє налаштувати образ контейнера, що використовується для etcd. Передача власного образу etcd повідомляє kubeadm upgrade, що цей образ управляється користувачем і що його оновлення необхідно пропустити.
dataDir[Обовʼязково] string
dataDir є текою, в якій etcd розміщуватиме свої дані. Стандартно це "/var/lib/etcd".
extraArgs є додатковими аргументами, що передаються бінарному файлу etcd при його запуску всередині статичного Pod. Назва аргументу в цьому списку є іменем прапорця, як вона зʼявляється в командному рядку, за винятком тире на початку. Додаткові аргументи переважатимуть існуючі стандартні аргументи. Дублювання додаткових аргументів дозволяється.
extraEnvs є додатковим набором змінних середовища для передачі компоненту панелі управління. Змінні середовища, передані за допомогою extraEnvs, перезаписуватимуть будь-які існуючі змінні середовища або змінні середовища *_proxy, які kubeadm додає стандартно.
serverCertSANs []string
serverCertSANs встановлює додаткові Subject Alternative Names (SANs) для сертифіката підпису сервера etcd.
peerCertSANs []string
peerCertSANs встановлює додаткові Subject Alternative Names (SANs) для сертифіката підпису peer etcd.
NodeRegistrationOptions містить поля, що стосуються реєстрації новоїпанелі управління або вузла в кластері, або через kubeadm init, або kubeadm join.
Поле
Опис
name string
name є полем .Metadata.Name обʼєкта Node API, який буде створений в операціях kubeadm init або kubeadm join. Це поле також використовується в полі CommonName клієнтського сертифіката kubelet для API сервера. Стандартно використовується імʼя хосту вузла, якщо не задано.
criSocket string
criSocket використовується для отримання інформації про середовище виконання контейнерів. Ця інформація буде анотована до обʼєкта Node API для подальшого використання.
taints вказує на taints, з якими обʼєкт Node API повинен бути зареєстрований. Якщо це поле не встановлено, тобто nil, воно буде стандартно з control-plane taint для вузлів control-plane. Якщо ви не хочете taint для вашого вузла control-plane, встановіть в це поле порожній список, тобто taints: [] у YAML файлі. Це поле використовується виключно для реєстрації вузлів.
kubeletExtraArgs передає додаткові аргументи до kubelet. Аргументи тут передаються командному рядку kubelet через файл середовища, який kubeadm записує під час виконання для джерела kubelet. Це переважає загальну базову конфігурацію у ConfigMap kubelet-config. Прапорці мають вищий пріоритет при розборі. Ці значення є локальними і специфічними для вузла, на якому виконується kubeadm. Назва аргументу в цьому списку є назвою прапорця, як вона зʼявляється в командному рядку, крім дефісів на початку. Додаткові аргументи переважають існуючі стандартні значення. Дублікати додаткових аргументів дозволені.
ignorePreflightErrors []string
ignorePreflightErrors надає масив помилок перед польотом, які слід ігнорувати при реєстрації поточного вузла, наприклад, 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
imagePullPolicy вказує політику витягування образів під час kubeadm init та join операцій. Значення цього поля має бути одне з "Always", "IfNotPresent" або "Never". Якщо це поле не задане, kubeadm стандартно встановить його в "IfNotPresent", або витягне необхідні образи, якщо вони не присутні на хості.
imagePullSerial bool
imagePullSerial вказує, чи витягування образів, яке виконує kubeadm, має відбуватися послідовно або паралельно. Стандартно: true
Patches містить опції, повʼязані із застосуванням патчів до компонентів, розгорнутих kubeadm.
Поле
Опис
directory string
directory є шляхом до теки, що містить файли, названі
"target[suffix][+patchtype].extension". Наприклад, "kube-apiserver0+merge.yaml" або просто "etcd.json". "target" може бути одним з "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment". "patchtype" може бути одним з "strategic", "merge" або "json" і відповідає форматам патчів, підтримуваним kubectl. Стандартно "patchtype" є "strategic". "extension" має бути або "json", або "yaml". "suffix" є необовʼязковим рядком, який можна використовувати для визначення порядку застосування патчів за алфавітним порядком.
controlPlaneComponentHealthCheck є часом очікування для перевірки справності компонентів панелі управління, таких як API сервер, під час kubeadm init та kubeadm join. Стандартно — 4м
kubernetesAPICall є часом очікування для завершення запиту клієнта kubeadm до API сервера. Це застосовується до всіх типів методів (GET, POST тощо). Стандартно — 1м
UpgradeApplyConfiguration містить список параметрів конфігурації, які специфічні для команди kubeadm upgrade apply.
Поле
Опис
kubernetesVersion string
kubernetesVersion є цільовою версією панелі управління.
allowExperimentalUpgrades bool
allowExperimentalUpgrades інструктує kubeadm показувати нестабільні версії Kubernetes як альтернативу оновленню та дозволяє оновлення до альфа/бета/версії-кандидата Kubernetes. Стандартно — false
allowRCUpgrades bool
Увімкнення allowRCUpgrades покаже версії-кандидати релізів Kubernetes як альтернативу оновленню та дозволяє оновлення до версії-кандидата Kubernetes.
certificateRenewal bool
certificateRenewal інструктує kubeadm виконати поновлення сертифікатів під час оновлень. Стандартно — true
dryRun bool
dryRun вказує, чи увімкнено режим перевірки без змін, не застосовувати жодних змін, а лише виводити те, що буде зроблено.
etcdUpgrade bool
etcdUpgrade інструктує kubeadm виконати оновлення etcd під час оновлень. Стандартно — true
forceUpgrade bool
forceUpgrade вказує kubeadm оновити кластер без запиту підтвердження.
ignorePreflightErrors []string
ignorePreflightErrors надає список помилок перевірки перед виконанням, які слід ігнорувати під час процесу оновлення, наприклад, IsPrivilegedUser,Swap. Значення all ігнорує помилки з усіх перевірок.
patches містить параметри, повʼязані із застосуванням патчів до компонентів, розгорнутих kubeadm під час kubeadm upgrade.
printConfig bool
printConfig вказує, чи слід вивести конфігураційний файл, який буде використаний в оновленні.
skipPhases[Обовʼязкове] []string
SkipPhases є списком фаз, які слід пропустити під час виконання команди. ПРИМІТКА: Це поле наразі ігнорується для kubeadm upgrade apply, але в майбутньому буде підтримуватися.
imagePullPolicy визначає політику витягування образів під час операцій kubeadm upgrade apply. Значення цього поля має бути одним з "Always", "IfNotPresent" або "Never". Якщо це поле не встановлено, kubeadm автоматично встановить значення "IfNotPresent", або витягне потрібні образи, якщо їх немає на хості.
imagePullSerial bool
imagePullSerial вказує, чи витягування образів, яке виконує kubeadm, має відбуватися послідовно або паралельно. Стандартно: true
UpgradeNodeConfiguration містить список параметрів конфігурації, які специфічні для команди "kubeadm upgrade node".
Поле
Опис
certificateRenewal bool
certificateRenewal інструктує kubeadm виконати поновлення сертифікатів під час оновлень. Стандартно — true.
dryRun bool
dryRun вказує, чи увімкнено режим попереднього перегляду. Якщо так, зміни не будуть застосовані, а буде виведено тільки те, що було б зроблено.
etcdUpgrade bool
etcdUpgrade інструктує kubeadm виконати оновлення etcd під час оновлень. Стандартно — true.
ignorePreflightErrors []string
ignorePreflightErrors надає список помилок попередньої перевірки, які слід ігнорувати під час процесу оновлення, наприклад, 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
skipPhases []string
skipPhases є списком фаз, які слід пропустити під час виконання команди. Список фаз можна отримати за допомогою команди kubeadm upgrade node phase --help.
imagePullPolicy визначає політику витягування образів під час операцій kubeadm upgrade node. Значенням цього поля має бути одне з "Always", "IfNotPresent" або "Never". Якщо це поле не встановлено, kubeadm автоматично встановить значення "IfNotPresent", або витягне потрібні образи, якщо їх немає на хості.
imagePullSerial bool
imagePullSerial вказує, чи витягування образів, яке виконує kubeadm, має відбуватися послідовно або паралельно. Стандартно: true
UpgradePlanConfiguration містить список параметрів конфігурації, які специфічні для команди "kubeadm upgrade plan".
Поле
Опис
kubernetesVersion[Обовʼязкове] string
kubernetesVersion є цільовою версією панелі управління.
allowExperimentalUpgrades bool
allowExperimentalUpgrades інструктує kubeadm показувати нестабільні версії Kubernetes як альтернативу для оновлення і дозволяє оновлювати до альфа/бета/реліз кандидата версій Kubernetes. Стандартно — false
allowRCUpgrades bool
Увімкнення allowRCUpgrades показуватиме версії-кандидати релізу Kubernetes як альтернативу для оновлення та дозволить оновлення до версії кандидата релізу Kubernetes.
dryRun bool
dryRun вказує, чи увімкнено режим попереднього перегляду. Якщо так, зміни не будуть застосовані, а буде виведено тільки те, що було б зроблено.
etcdUpgrade bool
etcdUpgrade наказує kubeadm виконувати оновлення etcd під час оновлень. Стандартно встановлено значення true.
ignorePreflightErrors []string
ignorePreflightErrors надає список помилок попередньої перевірки, які слід ігнорувати під час процесу оновлення, наприклад, 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки з усіх перевірок.
printConfig bool
printConfig вказує, чи слід виводити конфігураційний файл, який буде використовуватися в процесі оновлення.
Preferences містить загальну інформацію для використання у взаємодії з CLI. Застаріле: це поле застаріле в версії 1.34. Воно не використовується жодним із компонентів Kubernetes.
AuthInfo містить інформацію, яка описує ідентифікаційні дані. Це використовується для інформування кластера Kubernetes, хто ви є.
Поле
Опис
client-certificate string
ClientCertificate — це шлях до файлу клієнтського сертифіката для TLS.
client-certificate-data []byte
ClientCertificateData містить дані в кодуванні PEM з файлу клієнтського сертифіката для TLS. Перезаписує ClientCertificate.
client-key string
ClientKey — це шлях до файлу клієнтського ключа для TLS.
client-key-data []byte
ClientKeyData містить дані в кодуванні PEM з файлу клієнтського ключа для TLS. Перезаписує ClientKey.
token string
Token — це токен, що підтверджує право на доступ до кластера Kubernetes.
tokenFile string
TokenFile — це вказівка на файл, який містить токен (як описано вище). Якщо присутні як Token, так і TokenFile, TokenFile буде періодично зчитуватися, і останнє успішно зчитане значення матиме пріоритет над Token.
as string
Impersonate — імʼя користувача, від імені якого потрібно діяти. Імʼя збігається з прапорцем.
as-uid string
ImpersonateUID — це UID, від імені якого потрібно діяти.
as-groups []string
ImpersonateGroups — це групи, від імені якої потрібно діяти.
as-user-extra map[string][]string
ImpersonateUserExtra містить додаткову інформацію для користувача, від імені якого потрібно діяти.
username string
Username — це імʼя користувача для базової автентифікації в кластері Kubernetes.
password string
Password — це пароль для базової автентифікації в кластері Kubernetes.
CertificateAuthority - це шлях до файлу сертифіката для сертифікаційного центру.
certificate-authority-data []byte
CertificateAuthorityData містить PEM-кодовані сертифікати сертифікаційного центру. Перекриває CertificateAuthority.
proxy-url string
ProxyURL — це URL-адреса проксі, яка буде використовуватися для всіх запитів, здійснюваних цим клієнтом. Підтримуються URL-адреси зі схемами "http", "https" та "socks5". Якщо ця конфігурація не надана або порожній рядок, клієнт спробує створити конфігурацію проксі з змінних середовища http_proxy та https_proxy. Якщо ці змінні середовища не встановлені, клієнт не спробує проксіювати запити.
Проксіювання socks5 наразі не підтримує точки доступу потокової передачі spdy (exec, attach, port forward).
disable-compression bool
DisableCompression дозволяє клієнту відмовитися від стиснення відповіді для всіх запитів до сервера. Це корисно для прискорення запитів (зокрема списків), коли пропускна здатність мережі між клієнтом і сервером достатня, заощаджуючи час на стисненні (на стороні сервера) та розпакуванні (на стороні клієнта): https://github.com/kubernetes/kubernetes/issues/112296.
Context — це набір посилань на кластер (як спілкуватись з кластером Kubernetes), користувача (як користувач ідентифікує себе) і простір імен (з якою підмножиною ресурсів стандартно працювати)
Поле
Опис
cluster[Обовʼязково] string
Cluster —це імʼя кластера для цього контексту
user[Обовʼязково] string
AuthInfo — це імʼя authInfo для цього контексту
namespace string
Namespace — це стандартний простір імен, який використовується для запитів, де простір імен не вказаний
Env визначає додаткові змінні середовища для експонування процесу. Вони обʼєднуються з середовищем хосту, а також зі змінними, які client-go використовує для передачі аргументів втулку.
apiVersion[Обовʼязково] string
Бажана версія введення ExecInfo. Повернені ExecCredentials МАЮТЬ використовувати те ж саме кодування версії, що й ввод.
installHint[Обовʼязково] string
Цей текст показується користувачеві, коли виконуваний файл здається відсутнім. Наприклад, brew install foo-cli може бути гарною підказкою для встановлення foo-cli на системах Mac OS.
provideClusterInfo[Обовʼязково] bool
ProvideClusterInfo визначає, чи слід надавати інформацію про кластер, яка може потенційно містити дуже великі дані CA, цьому exec втулку як частину змінної середовища KUBERNETES_EXEC_INFO. Стандартно встановлено на false. Пакет k8s.io/client-go/tools/auth/exec надає допоміжні методи для отримання цієї змінної середовища.
InteractiveMode визначає звʼязки цього втулку зі стандартним вводом. Дійсні значення: "Never" (цей exec втулок ніколи не використовує стандартний ввод), "IfAvailable" (цей exec втулок хоче використовувати стандартний ввод, якщо він доступний) або "Always" (цей exec втулок вимагає стандартний ввод для функціонування). Див. значення ExecInteractiveMode для більш детальної інформації.
Якщо APIVersion — client.authentication.k8s.io/v1alpha1 або client.authentication.k8s.io/v1beta1, то це поле є необовʼязковим і стандартно встановлено у "IfAvailable" при відсутності значення. В іншому випадку це поле є обовʼязковим.
CredentialProviderConfig є конфігурацією, що містить інформацію про кожного exec credential provider. Kubelet читає цю конфігурацію з диска та активує кожного провайдера відповідно до типу CredentialProvider.
providers є списком втулків провайдерів облікових даних, які будуть активовані kubelet. Кілька провайдерів можуть відповідати одному образу, в такому випадку облікові дані з усіх провайдерів будуть повернуті kubelet. Якщо кілька провайдерів викликаються для одного образу, результати обʼєднуються. Якщо провайдери повертають ключі авторизації, що збігаються, спочатку буде використано значення від провайдера, що знаходиться раніше у списку.
CredentialProvider представляє exec втулок, який буде викликаний kubelet. Втулок викликається лише тоді, коли образ, що завантажується, відповідає образам, які обробляє втулок (див. matchImages).
Поле
Опис
name[Обовʼязково] string
name є обовʼязковим імʼям провайдера облікових даних. Назва повинна відповідати імені виконуваного файлу провайдера, яке бачить kubelet. Виконуваний файл повинен бути в директорії bin kubelet (встановленій за допомогою прапорця --image-credential-provider-bin-dir). Має бути унікальним серед всіх провайдерів.
matchImages[Обовʼязково] []string
matchImages є обовʼязковим списком рядків, які використовуються для зіставлення з образами, щоб визначити, чи потрібно викликати цього провайдера. Якщо один з рядків відповідає запитаному образу від kubelet, втулок буде викликаний і отримає можливість надати облікові дані. Образи повинні містити домен реєстрації та URL шлях.
Кожен запис у matchImages є шаблоном, який може містити порт і шлях. Глоби можна використовувати в домені, але не в порті чи шляху. Глоби підтримуються як піддомени, наприклад '*.k8s.io' або 'k8s.*.io', та топ-рівневі домени, такі як 'k8s.*'. Підмножки часткових піддоменів, такі як 'app*.k8s.io', також підтримуються. Кожен глоб може відповідати тільки одному сегменту піддомену, тому '*.io' не відповідає '*.k8s.io'.
Зіставлення існує між образом і matchImage, коли всі з нижченаведених умов є істинними:
Обидва містять однакову кількість частин домену, і кожна частина має збіг.
URL шлях образу має бути префіксом цільового URL шляху образу.
Якщо imageMatch містить порт, порт також повинен мати збіг в образі.
defaultCacheDuration є стандартною тривалістю, впродовж якої втулок кешуватиме облікові дані в памʼяті, якщо тривалість кешу не надана у відповіді втулка. Це поле є обовʼязковим.
apiVersion[Обовʼязково] string
Обовʼязкова версія вхідного exec CredentialProviderRequest. Повернута CredentialProviderResponse МУСИТЬ використовувати таку ж версію кодування, як і вхідна. Поточні підтримувані значення:
Env визначає додаткові змінні середовища для передачі процесу. Вони обʼєднуються з середовищем хоста, а також змінними, які client-go використовує для передачі аргументів втулку.
tokenAttributes - це конфігурація для токену службового облікового запису, який буде передано втулку. За допомогою цього поля постачальник облікових даних надає згоду на використання токенів облікових записів для витягування образів. Коли це поле встановлено, kubelet згенерує токен службового облікового запису, привʼязаного до podʼа, для якого витягується образ, і передасть його втулку у складі CredentialProviderRequest разом з іншими атрибутами, необхідними для втулка.
Метадані службового облікового запису та атрибути токенів будуть використовуватися як розмірність для кешування облікових даних у kubelet. Ключ кешу генерується шляхом комбінування метаданих службового облікового запису (простір імен, імʼя, UID та ключ анотацій + значення для ключів, визначених у serviceAccountTokenAttribute.requiredServiceAccountAnnotationKeys та serviceAccountTokenAttribute.optionalServiceAccountAnnotationKeys). Метадані podʼа (простір імен, імʼя, UID), які містяться в токені службового облікового запису, не використовуються як розмірність для кешування облікових даних у kubelet. Це означає, що робочі навантаження, які використовують той самий службовий обліковий запис, можуть використовувати ті самі облікові дані для отримання образів. Для втулків, які не бажають такої поведінки, або втулків, які працюють у наскрізному режимі, тобто повертають токен службового облікового запису як є, можна встановити credentialProviderResponse.cacheDuration у 0. Це вимкне кешування облікових даних у kubelet, і втулок буде викликатися під час кожного витягування образу. Це призведе до накладних витрат на генерацію токенів для кожного витягування образу, але це єдиний спосіб гарантувати, що облікові дані не будуть спільно використовуватися різними podʼами (навіть якщо вони використовують один і той самий службовий обліковий запис).
cacheType вказує тип ключа кешу, що використовується для кешування облікових даних, повернутих втулком, коли використовується токен службового облікового запису. Найбільш консервативним варіантом є встановлення цього параметра на "Token", що означає, що kubelet буде кешувати повернуті облікові дані на основі кожного токена. Це слід встановити, якщо термін дії повернутого облікового запису обмежений терміном дії токена службового облікового запису. Якщо логіка втулка отримання облікових даних залежить тільки від службового облікового запису, а не від вимог, специфічних для pod, то втулок може встановити це значення на "ServiceAccount". У цьому випадку kubelet буде кешувати повернуті облікові дані на основі кожного службового облікового запису. Використовуйте це, коли повернуті облікові дані дійсні для всіх pod, що використовують той самий службовий обліковий запис.
requireServiceAccount[Обовʼязково] bool
requireServiceAccount вказує, чи вимагає втулок наявність службового облікового запису. Якщо встановлено у true, kubelet буде викликати втулок лише за наявності службового облікового запису. Якщо встановлено значення false, kubelet буде викликати втулок, навіть якщо він не має службового облікового запису, і не буде включати токен у CredentialProviderRequest у цьому сценарії. Це корисно для втулків, які використовуються для отримання образів для podʼів без службових облікових записів (наприклад, статичних podʼів).
requiredServiceAccountAnnotationKeys []string
requiredServiceAccountAnnotationKeys - список ключів анотацій, які цікавлять втулок і які повинні бути присутніми в службовому обліковому записі. Ключі, визначені у цьому списку, буде вилучено з відповідного службового облікового запису та передано втулку як частину запиту CredentialProviderRequest. Якщо будь-який з ключів, визначених у цьому списку, відсутній в службовому обліковому записі, kubelet не викличе втулок і поверне помилку. Це поле є необовʼязковим і може бути порожнім. Втулки можуть використовувати це поле для отримання додаткової інформації, необхідної для отримання облікових даних, або для того, щоб дозволити робочим навантаженням використовувати токени службових облікових записів для витягування образів. Якщо поле не порожнє, requireServiceAccount має мати значення true. Ключі в цьому списку повинні бути унікальними. Цей список повинен бути взаємовиключним з optionalServiceAccountAnnotationKeys.
optionalServiceAccountAnnotationKeys []string
optionalServiceAccountAnnotationKeys - список ключів анотацій, які цікавлять втулок і які необовʼязково повинні бути присутніми в службовому обліковому записі. Ключі, визначені у цьому списку, будуть витягнуті з відповідного службового облікового запису і передані втулку як частина запиту CredentialProviderRequest. Втулок відповідає за перевірку існування анотацій та їхніх значень. Це поле є необовʼязковим і може бути порожнім. Втулки можуть використовувати це поле для отримання додаткової інформації, необхідної для отримання облікових даних. Ключі в цьому списку повинні бути унікальними.
ServiceAccountTokenCacheType — це тип ключа кешу, який використовується для кешування облікових даних, повернутих втулком, коли використовується токен службового облікового запису.
CredentialProviderConfig є конфігурацією, що містить інформацію про кожен втулок облікових даних exec. Kubelet читає цю конфігурацію з диска та активує кожен втулок відповідно до типу CredentialProvider.
providers є списком втулків провайдерів облікових даних, які будуть активовані kubelet. Кілька провайдерів можуть відповідати одному образу, в такому випадку облікові дані з усіх провайдерів будуть повернуті kubelet. Якщо кілька провайдерів викликаються для одного образу, результати обʼєднуються. Якщо провайдери повертають ключі авторизації, що збігаються, спочатку буде використано значення від провайдера, що знаходиться раніше у списку.
ImagePullIntent
ImagePullIntent - це запис про те, що kubelet намагається витягнути образ.
Поле
Опис
apiVersion string
kubelet.config.k8s.io/v1alpha1
kind string
ImagePullIntent
image[Обовʼязково] string
Image — є специфікацією образ в полі image контейнера. Імʼя файлу — це хеш SHA-256 цього значення. Це робиться для того, щоб уникнути небезпечних символів у назві файлу символів, таких як ':' та '/'.
ImagePulledRecord
ImagePullRecord - це запис образу, який було витягнуто kubelet.
Якщо у полі kubernetesSecrets немає жодного запису, а значення nodeWideCredentials і anonymous дорівнюють false, то при наступному запиті образу, представленого цим записом, потрібно буде повторно перевірити облікові дані.
LastUpdatedTime — час останнього оновлення цього запису
imageRef[Обовʼязково] string
ImageRef — це посилання на образ, представлений цим файлом, отримане від CRI. Імʼя файлу — це хеш SHA-256 цього значення. Це робиться для того, щоб уникнути небезпечних символів у назві файлу, таких як ':' та '/'.
CredentialMapping зіставляє image з набором облікових даних, які використовувалис для попереднього отримання образу. image в цьому випадку — є вмістом поля image контейнера podʼа, зякого вилдалено теґ/дайджест.
CredentialProvider представляє втулок exec, який буде викликаний kubelet. Втулок буде викликаний тільки тоді, коли образ, який завантажується, відповідає образам, які підтримуються втулком (див. matchImages).
Поле
Опис
name[Обовʼязково] string
name є обовʼязковою назвою постачальника облікових даних. Назва повинна відповідати назві виконуваного файлу постачальника, як його бачить kubelet. Виконуваний файл повинен знаходитися в теці bin kubelet (встановленій за допомогою прапорця --image-credential-provider-bin-dir). Має бути унікальним серед всіх провайдерів.
matchImages[Обовʼязково] []string
matchImages є обовʼязковим списком рядків, які використовуються для зіставлення з образами, щоб визначити, чи потрібно викликати цього провайдера. Якщо один з рядків відповідає запитаному образу від kubelet, втулок буде викликаний і отримає можливість надати облікові дані. Образи повинні містити домен реєстрації та URL шлях.
Кожен запис у matchImages є шаблоном, який може містити порт і шлях. Глоби можуть використовуватися в домені, але не в порту чи шляху. Глоби підтримуються як піддомени, такі як *.k8s.io або k8s.*.io, і домени верхнього рівня, такі як k8s.*. Піддомени з частковими збігами, такі як app*.k8s.io, також підтримуються. Кожен шаблон може відповідати лише одному сегменту піддомена, тому *.io не відповідає *.k8s.io.
Відповідність існує між образами і matchImage, коли все з наведеного нижче є істинними:
Обидва містять однакову кількість частин домену, і кожна частина має збіг.
Шлях URL образу matchImage повинен бути префіксом шляху URL цільового образу.
Якщо imageMatch містить порт, порт також повинен мати збіг в образі.
defaultCacheDuration є стандартною тривалістю, впродовж якої втулок кешуватиме облікові дані в памʼяті, якщо тривалість кешу не надана у відповіді втулка. Це поле є обовʼязковим.
apiVersion[Обовʼязково] string
Обовʼязкова версія вхідного exec CredentialProviderRequest. Повернута CredentialProviderResponse МУСИТЬ використовувати таку ж версію кодування, як і вхідна. Поточні підтримувані значення:
credentialprovider.kubelet.k8s.io/v1alpha1
args []string
Аргументи, які слід передати команді при її виконанні.
Env визначає додаткові змінні середовища, які слід надати процесу. Вони обʼєднуються з середовищем хоста, а також з змінними, які використовує client-go для передачі аргументів втулку.
KubernetesServiceAccounts — це індекс координат усіх службових облікових записів Kubernetes, які використовувалися для отримання образу.
nodePodsAccessible bool
NodePodsAccessible - прапорець, який вказує на те, що облікові дані для витягування доступні для всіх podʼів на вузлі, або на те, що для витягування не потрібні жодні облікові дані.
Якщо значення true, воно є взаємовиключним з полем kubernetesSecrets.
ImagePullSecret — це представлення координат обʼєкта секрету Kubernetes разом з хешем облікових даних обʼєкта pull secret, який містить цей обʼєкт.
Поле
Опис
uid[Обовʼязково] string
Опис не надано.
namespace[Обовʼязково] string
Опис не надано.
name[Обовʼязково] string
Опис не надано.
credentialHash[Обовʼязково] string
CredentialHash — це SHA-256, отриманий шляхом хешування вмісту облікових даних для витягування образу з секрету, заданого координатами UID/Namespace/Name.
ImagePullServiceAccount — це представлення координат об'єкта службового облікового запису Kubernetes, для якого kubelet надіслав токен службового облікового запису до втулка постачальника облікових даних для отримання облікових даних для отримання образу.
Максимальний час між очищенням логів. Якщо рядок, розбирається як тривалість (наприклад, "1s"). Якщо ціле число, максимальна кількість наносекунд (наприклад, 1с = 1000000000). Ігнорується, якщо обраний механізм логування записує повідомлення без буферизації.
Verbosity є порогом, який визначає, які повідомлення логу записуються. Стандартне значення — нуль, що записує лише найбільш важливі повідомлення. Більші значення дозволяють додаткові повідомлення. Повідомлення про помилки завжди записуються.
[Alpha] Options містить додаткові параметри, специфічні для різних форматів логування. Використовуються лише параметри для обраного формату, але всі вони перевіряються. Доступно тільки при увімкненій функціональній можливості LoggingAlphaOptions.
LoggingOptions
LoggingOptions можна використовувати з ValidateAndApplyWithOptions для перевизначення деяких глобальних стандартних значень.
OutputRoutingOptions містить параметри, що підтримуються як для формату "text", так і для "json".
Поле
Опис
splitStream[Обовʼязково] bool
[Alpha] SplitStream перенаправляє повідомлення про помилки на stderr, тоді як інформаційні повідомлення відправляються на stdout з буферизацією. Стандартне значення — записувати обидва потоки у stdout без буферизації. Доступно тільки коли увімкнено функціональну можливість LoggingAlphaOptions.
[Alpha] InfoBufferSize встановлює розмір інформаційного потоку при використанні розділених потоків. Стандартне значення — нуль, що вимикає буферизацію. Доступно тільки коли увімкнено функціональну можливість LoggingAlphaOptions.
TracingConfiguration надає версіоновану конфігурацію для клієнтів OpenTelemetry tracing.
Поле
Опис
endpoint string
Endpoint колектора, до якого цей компонент буде відправляти трасування. Зʼєднання не є захищеним і наразі не підтримує TLS. Рекомендується не задавати, і endpoint стандартно буде otlp grpc, localhost:4317.
samplingRatePerMillion int32
SamplingRatePerMillion — кількість зразків для збору на мільйон спанів. Рекомендується не задавати. Якщо не задано, пробник поважає темп рідного спану, але в іншому випадку ніколи не здійснює пробу.
VModuleConfiguration
(Аліас для []k8s.io/component-base/logs/api/v1.VModuleItem)
VerbosityLevel представляє поріг докладності для klog або logr.
CredentialProviderConfig
CredentialProviderConfig — це конфігурація, яка містить інформацію про кожного постачальника облікових даних exec. Kubelet зчитує цю конфігурацію з диска та активує кожного постачальника, як зазначено в типі CredentialProvider.
providers — це список втулків постачальників облікових даних, які будуть активовані kubelet. Кілька постачальників можуть відповідати одному образу, у такому випадку облікові дані від усіх постачальників будуть повернуті kubelet. Якщо кілька постачальників викликаються для одного образуу, результати обʼєднуються. Якщо провайдери повертають ключі авторизації, що збігаються, спочатку буде використано значення від провайдера, що знаходиться раніше у списку.
ImagePullIntent
ImagePullIntent — це запис про спробу kubelet завантажити образ.
Поле
Опис
apiVersion string
kubelet.config.k8s.io/v1beta1
kind string
ImagePullIntent
image[Обовʼязково] string
Image — це специфікація образу з поля image контейнера. Імʼя файлу — це хеш SHA-256 цього значення. Це зроблено для уникнення використання в імені файлу небезпечних символів, таких як «:» і «/».
ImagePulledRecord
ImagePullRecord — це запис образу, який було отримано kubelet.
Якщо в полі kubernetesSecrets немає записів, а nodeWideCredentials і anonymous мають значення false, під час наступного запиту образу, представленого цим записом, необхідно повторно перевірити облікові дані.
LastUpdatedTime — час останнього оновлення цього запису.
imageRef[Обовʼязково] string
ImageRef — це посилання на образ, представлений цим файлом, отриманим від CRI. Імʼя файлу — це хеш SHA-256 цього значення. Це зроблено для уникнення використання в імені файлу небезпечних символів, таких як ':' і '/'.
CredentialMapping відображає image на набір облікових даних, з якими він був раніше витягнутий. image в цьому випадку є вмістом поля image контейнера pod, з якого було видалено теґ/дайджест.
staticPodPath — це шлях до теки з локальними (статичними) Podʼами для запуску, або шлях до окремого статичного файлу Podʼа. Стандартно: ""
podLogsDir string
podLogsDir - власний шлях до кореневої теки, який kubelet використовуватиме для розміщення лог-файлів под'ів. Стандартно: "/var/log/pods/" Примітка: не рекомендується використовувати теку temp як теку логу, оскільки це може спричинити неочікувану поведінку у багатьох місцях.
httpCheckFrequency — інтервал між перевірками http на наявність нових даних. Стандартно: "20s"];
staticPodURL string
staticPodURL — це URL-адреса для доступу до статичних Podʼів для запуску. Стандартно: ""
staticPodURLHeader map[string][]string
staticPodURLHeader — map slice із заголовками HTTP, які потрібно використовувати при доступі до podURL. Стандартно: nil
address string
address — IP-адреса, на якій буде працювати Kubelet (встановлено на 0.0.0.0 для всіх інтерфейсів). Стандартно: "0.0.0.0";
port int32
port — це порт, на якому буде обслуговуватися Kubelet. Номер порту має бути в діапазоні від 1 до 65535 включно. Стандартно: 10250
readOnlyPort int32
readOnlyPort - це порт тільки для читання, на якому Kubelet буде працювати без автентифікації/авторизації. Номер порту повинен бути в діапазоні від 1 до 65535 включно. Встановлення цього поля у 0 вимикає сервіс тільки для читання. Стандартно: 0 (вимкнено)
tlsCertFile string
tlsCertFile — файл, що містить сертифікат x509 для HTTPS. (Сертифікат центру сертифікації, якщо такий є, додається після сертифіката сервера). Якщо tlsCertFile і tlsPrivateKeyFile не вказано, самопідписаний сертифікат і ключ генеруються для публічної адреси і зберігаються у теці, яку передано у прапорці Kubelet --cert-dir. Стандартно: ""
tlsPrivateKeyFile string
tlsPrivateKeyFile — файл, що містить приватний ключ x509, який відповідає tlsCertFile. Стандартно: ""
tlsCipherSuites []string
tlsCipherSuites — список дозволених наборів шифрів для сервера. Зверніть увагу, що набори шифрів TLS 1.3 не налаштовуються. Значення беруться з констант пакета tls (https://golang.org/pkg/crypto/tls/#pkg-constants). Стандартно: nil
tlsCurvePreferences []int32
tlsCurvePreferences — набір дозволених механізмів обміну ключами для сервера, вказаних як числові значення Go crypto/tls CurveID. Підтримувані значення залежать від версії Go, що використовується. Див. https://pkg.go.dev/crypto/tls#CurveID для значень, підтримуваних для кожної версії Go. Порядок списку ігнорується, а механізми обміну ключами вибираються Go з цього списку за внутрішнім порядком пріоритету. Якщо порожньо, будуть використані стандартні криві Go. Стандартно: nil
tlsMinVersion string
tlsMinVersion — мінімальна підтримувана версія TLS. Значення беруться з констант пакета tls (https://golang.org/pkg/crypto/tls/#pkg-constants). Стандартно: ""
rotateCertificates bool
rotateCertificates дозволяє ротацію клієнтських сертифікатів. Kubelet запросить новий сертифікат з API certificates.k8s.io. Для цього потрібен затверджувач, який схвалює запити на підписання сертифікатів. Стандартно: false
serverTLSBootstrap bool
serverTLSBootstrap вмикає bootstrap серверного сертифікату. Замість того, щоб самостійно підписувати серверний сертифікат, Kubelet буде запитувати сертифікат з API 'certificates.k8s.io'. Для цього потрібен затверджувач для схвалення запитів на підписання сертифікатів (CSR). Функція RotateKubeletServerCertificate має бути ввімкнена при встановленні цього поля. Стандартно: false
registryPullQPS — ліміт отримання образів з реєстру за секунду. Значення не повинно бути відʼємним числом. Встановлення значення 0 означає відсутність обмеження. Стандартно: 5
registryBurst int32
registryBurst — максимальний розмір стрімких витягань, тимчасово дозволяє стрімким витяганням досягати цього числа, але при цьому не перевищувати registryPullQPS. Значення не повинно бути відʼємним числом. Використовується тільки якщо registryPullQPS більше 0. Стандартно: 10
imagePullCredentialsVerificationPolicy визначає, як слід перевіряти облікові дані, коли pod запитує образ, який вже присутній на вузлі:
NeverVerify
будь-хто на вузлі може використовувати будь- який образ, наявний на вузлі
NeverVerifyPreloadedImages
образи, які було витягнуто на вузол не за допомогою kubelet, можна використовувати без повторної перевірки облікових даних для витягування
NeverVerifyAllowlistedImages
як "NeverVerifyPreloadedImages", але тільки образи вузлів з preloadedImagesVerificationAllowlist не потребують повторної перевірки
AlwaysVerify
всі образи потребують перевірки облікових даних
preloadedImagesVerificationAllowlist []string
preloadedImagesVerificationAllowlist визначає список образів, які звільняються від перевірки облікових даних для політики "NeverVerifyAllowlistedImages" imagePullCredentialsVerificationPolicy. Список може містити підстановочний суфікс "/*" для повного сегмента шляху. Використовуйте тільки специфікації файлів образів без теґу або дайджесту образу.
eventRecordQPS int32
eventRecordQPS — максимальна кількість створених подій за секунду. Якщо 0, то обмеження не застосовується. Значення не може бути відʼємним. Стандартно: 50
eventBurst int32
eventBurst - максимальний розмір сплеску створення подій, тимчасово дозволяє створювати події до цього числа, але не більше ніж eventRecordQPS. Це поле не може бути відʼємним числом і використовується лише тоді, коли eventRecordQPS > 0. Стандартно: 100
enableDebuggingHandlers bool
enableDebuggingHandlers вмикає точки доступу до логів на сервері та локальний запуск контейнерів і команд, включно з функціями exec, attach, logs та portforward. Стандартно: true
enableContentionProfiling bool
enableContentionProfiling вмикає профілювання блоків, якщо enableDebuggingHandlers має значення true. Стандартно: false
healthzPort int32
healthzPort — порт точки доступу localhost healthz (для вимкнення встановлюється на 0). Допустиме значення від 1 до 65535. Стандартне значення: 10248
healthzBindAddress string
healthzBindAddress - IP-адреса для сервера healthz. Стандартно: "127.0.0.1";
oomScoreAdj int32
oomScoreAdj — значення oom-score-adj для процесу kubelet. Значення має бути в діапазоні [-1000, 1000]. Стандартно: -999
clusterDomain string
clusterDomain — DNS-домен для цього кластера. Якщо задано, kubelet налаштує всі контейнери на пошук у цьому домені на додаток до пошукових доменів хоста. Стандартно: ""
clusterDNS []string
clusterDNS — список IP-адрес для DNS-сервера кластера. Якщо встановлено, kubelet налаштує всі контейнери на використання цього списку для DNS-розпізнавання замість DNS-серверів хоста. Стандартно: nil
streamingConnectionIdleTimeout — максимальний час, протягом якого потокове зʼєднання може простоювати, перш ніж зʼєднання буде автоматично закрито. Застаріле: більше не має ніякого ефекту. Стандартно: "4h";
nodeStatusUpdateFrequency - частота, з якою kubelet обчислює статус вузла. Якщо функцію оренди вузлів не увімкнено, це також частота, з якою kubelet надсилає статус вузла майстру. Примітка: Якщо функцію оренди вузла не увімкнено, будьте обережні при зміні константи, вона має працювати з nodeMonitorGracePeriod у nodecontroller. Стандартно: "10s"
nodeStatusReportFrequency — частота, з якою kubelet надсилає статус вузла майстру, якщо статус вузла не змінюється. Kubelet ігноруватиме цю частоту і відправлятиме статус вузла негайно, якщо буде виявлено будь-яку зміну. Використовується лише тоді, коли увімкнено функцію оренди вузлів. nodeStatusReportFrequency має стандартне значення 5m. Але якщо nodeStatusUpdateFrequency задано явно, стандартне значення nodeStatusReportFrequency буде встановлено на nodeStatusUpdateFrequency для зворотної сумісності. Стандартно: "5m"];
nodeLeaseDurationSeconds int32
nodeLeaseDurationSeconds - це тривалість, яку Kubelet встановить для відповідного lease. NodeLease надає індикатор справності вузла, змушуючи Kubelet створювати та періодично поновлювати договір оренди, названий на честь вузла, у просторі імен kube-node-lease. Якщо термін дії договору закінчується, вузол можна вважати несправним. Наразі оренда поновлюється кожні 10 секунд, згідно з KEP-0009. У майбутньому інтервал поновлення оренди може бути встановлений на основі тривалості оренди. Значення поля має бути більше 0. Стандартно: 40
imageMinimumGCAge — мінімальний вік невикористаного образу перед тим, як його буде вилучено. Поле повинно мати значення більше 0. Якщо не встановлено або 0, зазвичай використовується 2 хвилини. Стандартно: "2m"
imageMaximumGCAge — максимальний вік, протягом якого образ може бути невикористаним, перш ніж його буде вилучено у смітник. Стандартне значення цього поля - "0s", що вимикає це поле - тобто образи не буде вилучено у смітник через те, що їх не було використано надто довго. Стандартно: "0s" (вимкнено)
imageGCHighThresholdPercent int32
imageGCHighThresholdPercent — це відсоток використання диска, після якого завжди запускається прибирання образів. Відсоток обчислюється діленням значення цього поля на 100, тому значення цього поля має бути від 0 до 100 включно. Якщо вказано, значення має бути більшим за imageGCLowThresholdPercent. Стандартно: 85
imageGCLowThresholdPercent int32
imageGCLowThresholdPercent — це відсоток використання диска, до якого прибирання образів ніколи не виконуватиметься. Найнижчий відсоток використання диска для збирання сміття. Відсоток обчислюється діленням значення цього поля на 100, тому значення поля має бути у діапазоні від 0 до 100 включно. Якщо вказано, значення має бути меншим за imageGCHighThresholdPercent. Стандартно: 80
volumeStatsAggPeriod — це частота для обчислення та кешування обсягу використання диска для всіх Podʼів. Стандартно: "1m"
kubeletCgroups string
kubeletCgroups — абсолютна назва cgroups для ізоляції kubelet. Стандартно: ""
systemCgroups string
systemCgroups — абсолютна назва cgroups, до якої слід помістити усі неядерні процеси, які ще не знаходяться у контейнері. Порожньо, якщо немає контейнера. Скидання прапорця вимагає перезавантаження. Якщо це поле не порожнє, слід вказати cgroupRoot. Стандартно: ""
cgroupRoot string
cgroupRoot - це коренева cgroup, яку слід використовувати для Podʼів. Ця група обробляється під час виконання контейнера на основі принципу найкращих зусиль.
cgroupsPerQOS bool
cgroupsPerQOS вмикає ієрархію CGroup на основі QoS: CGroups верхнього рівня для класів QoS і всі Burstable та BestEffort Pods підпорядковуються певній CGroup QoS верхнього рівня. Стандартно: true
cgroupDriver string
cgroupDriver — це драйвер, який kubelet використовує для керування CGroups на хості (cgroupfs або systemd). Стандартно: "cgroupfs";
cpuManagerPolicy string
cpuManagerPolicy - назва політики, яку буде використано. Потребує увімкнення функціональних можливостей CPUManager. Стандартно: "None"
singleProcessOOMKill bool
singleProcessOOMKill, якщо встановлено, запобігає встановленню прапорця memory.oom.group для контейнерних cgroups у cgroups v2. Це призводить до того, що процеси у контейнері буде знищено за допомогою OOM індивідуально, а не як групу. Це означає, що якщо прапорець має значення true, поведінка узгоджується з поведінкою cgroups v1. Стандартне значення визначається автоматично, якщо ви його не вкажете. У не-linux, таких як windows, дозволено лише null / absent. У cgroup v1 linux дозволено лише null / absent та true. У cgroup v2 linux дозволені значення null / absent, true і false. Стандартне значення — false.
cpuManagerPolicyOptions map[string]string
cpuManagerPolicyOptions — це набір key=value, який дозволяє встановити додаткові опції для точного налаштування поведінки політик диспетчера процесорів. Стандартно: nil
cpuManagerReconcilePeriod - період узгодження для CPU Manager. Стандартне значення: "10s"
memoryManagerPolicy string
memoryManagerPolicy - назва політики, яку використовуватиме менеджер памʼяті. Потребує увімкнення функціональної можливості MemoryManager. Стандартно: "none"
topologyManagerPolicy string
topologyManagerPolicy — назва політики менеджера топології, яку слід використовувати. Допустимі значення включають:
restricted: kubelet дозволяє лише ті Podʼи, які мають оптимальне вирівнювання вузлів NUMA для запитуваних ресурсів;
best-effort: kubelet надаватиме перевагу Podʼам з NUMA-вирівнюванням ресурсів процесора та пристроїв;
none: kubelet не знає про вирівнювання NUMA ресурсів процесора та пристроїв під час роботи.
single-numa-node: kubelet дозволяє використовувати лише Podʼи з єдиним NUMA-вирівнюванням ресурсів процесора та пристроїв.
Default: "none"
topologyManagerScope string
topologyManagerScope представляє обсяг генерації підказок топології, які запитує менеджер топології та генерують постачальники підказок. Допустимі значення включають:
container: політика топології застосовується для кожного контейнера окремо.
pod: політика топології застосовується на основі кожного окремого блоку.
Default: "container"
topologyManagerPolicyOptions map[string]string
TopologyManagerPolicyOptions - це набір key=value, який дозволяє встановити додаткові опції для точного налаштування поведінки політик менеджера топології. Потребує увімкнення обох функціональних можливостей — "TopologyManager" та "TopologyManagerPolicyOptions". Стандартно: nil
qosReserved map[string]string
qosReserved — це набір пар імені ресурсу та відсотка, які визначають мінімальний відсоток ресурсу, зарезервований для ексклюзивного використання на рівні гарантованого QoS. Наразі підтримувані ресурси: "памʼять" Потребує увімкнення функціональної можливості QOSReserved. Стандартно: nil
runtimeRequestTimeout — це таймаут для всіх запитів часу виконання, окрім довготривалих запитів — pull, logs, exec та attach. Стандартно: "2m"
hairpinMode string
hairpinMode вказує, як Kubelet має налаштувати міст контейнера для пакета hairpin. Встановлення цього прапорця дозволяє точкам доступу в Service перерозподіляти навантаження на себе, якщо вони намагаються отримати доступ до свого власного Service. Значення:
"promiscuous-bridge": зробити контейнерний міст невпорядкованим.
"hairpin-veth": встановити прапорець hairpin на інтерфейсах container veth.
"none": нічого не робити.
Зазвичай, для досягнення hairpin NAT потрібно встановити --hairpin-mode=hairpin-veth, оскільки promiscuous-bridge передбачає наявність контейнерного моста з назвою cbr0. Стандартно: "promiscuous-bridge"
maxPods int32
maxPods — максимальна кількість Podʼів, які можуть бути запущені на цьому Kubelet. Значення має бути цілим невідʼємним числом. Стандартно: 110
podCIDR string
podCIDR — це CIDR для IP-адрес pod, який використовується лише в режимі standalone. У кластерному режимі він отримується з панелі управління. Стандартно: ""
podPidsLimit int64
podPidsLimit — максимальна кількість PID у будь-якому pod.
Default: -1
resolvConf string
resolvConf — це файл конфігурації резолвера, який використовується як основа для налаштування DNS-резолюції контейнера. Якщо встановлено порожній рядок, він перевизначає стандартне значення і фактично вимикає DNS-запити. Стандартно: "/etc/resolv.conf"
runOnce bool
runOnce змушує Kubelet один раз перевірити сервер API на наявність Podʼів, запустити ті з них, які вказані у статичних файлах Podʼів, і вийти. Стандартно: false
cpuCFSQuota bool
cpuCFSQuota вмикає застосування квоти CPU CFS для контейнерів, які визначають ліміти процесора. Стандартно: true
cpuCFSQuotaPeriod — це значення періоду квоти CFS процесора, cpu.cfs_period_us. Значення має бути від 1 мс до 1 секунди включно. Потребує увімкнення функціональної можливості CustomCPUCFSQuotaPeriod. Стандартно: "100ms";
nodeStatusMaxImages int32
nodeStatusMaxImages обмежує кількість зображень, про які повідомляється у Node.status.images. Значення має бути більшим за -2. Зауваження: Якщо вказано -1, обмеження не буде застосовано. Якщо вказано 0, жодного образу не буде повернуто. Стандартно: 50
maxOpenFiles int64
maxOpenFiles - кількість файлів, які може відкрити процес Kubelet. Значення має бути невідʼємним числом. Стандартно: 1000000
contentType string
contentType — тип вмісту запитів, що надсилаються до apiserver. Стандартно: "application/vnd.kubernetes.protobuf";
kubeAPIQPS int32
kubeAPIQPS - це QPS, який слід використовувати під час спілкування з apiserver'ом kubernetes. Стандартно: 50
kubeAPIBurst int32
kubeAPIBurst — це кількість пакетів, які слід дозволити під час спілкування з сервером API kubernetes. Це поле не може бути відʼємним числом. Стандартно: 100
serializeImagePulls bool
serializeImagePulls, якщо увімкнено, вказує Kubelet завантажувати образи один за одним. Ми рекомендуємо не змінювати стандартні значення на вузлах, де працює демон docker версії < 1.9 або сховище Aufs. Деталі наведено у Issue #10959. Стандартно: true
maxParallelImagePulls int32
MaxParallelImagePulls задає максимальну кількість паралельних завантажень образів. Це поле не можна встановити, якщо SerializeImagePulls має значення true. Встановлення значення nil означає відсутність обмежень. Стандартно: nil
evictionHard map[string]string
evictionHard — це map назв сигналів до величин, що визначає жорсткі пороги виселення. Наприклад: {"memory.available": "300Mi"}. Щоб явно вимкнути, передайте порогове значення 0% або 100% для довільного ресурсу. Стандартно:
evictionSoft це map імен сигналів до величин, яка визначає мʼякі пороги виселення. Наприклад: {"memory.available": "300Mi"}. Стандартно: nil
evictionSoftGracePeriod map[string]string
evictionSoftGracePeriod це map назв сигналів до величин, яка визначає пільгові періоди для кожного сигналу мʼякого виселення. Наприклад: {"memory.available": "30s"}. Стандартно: nil
evictionPressureTransitionPeriod — це тривалість, протягом якої kubelet має зачекати, перш ніж вийти зі стану тиску витіснення. Тривалість 0s буде перетворено на стандартне значення 5m. Стандартно: "5m"
evictionMaxPodGracePeriod int32
evictionMaxPodGracePeriod - це максимально дозволений пільговий період (у секундах), який можна використовувати при завершенні роботи подів у відповідь на досягнення порогу мʼякого виселення. Це значення фактично обмежує значення terminationGracePeriodSeconds під час мʼякого виселення. Стандартно: 0
evictionMinimumReclaim map[string]string
evictionMinimumReclaim це map імен сигналів до величин, що визначає мінімальні відновлення, які описують мінімальну кількість заданого ресурсу, яку kubelet буде відновлювати при виконанні виселення pod, поки цей ресурс знаходиться під тиском. Наприклад: {"imagefs.available": "2Gi"}. Стандартно: nil
mergeDefaultEvictionSettings bool
mergeDefaultEvictionSettings вказує, що стандартні значення для полів evictionHard, evictionSoft, evictionSoftGracePeriod та evictionMinimumReclaim слід обʼєднати у значення, вказані для цих полів у цій конфігурації. Сигнали, вказані в цій конфігурації, мають пріоритет. Сигнали, не вказані в цій конфігурації, успадковують стандартні значення. Якщо false, і якщо будь-який сигнал вказано у цій конфігурації, то інші сигнали, не вказані у цій конфігурації, будуть встановлені у 0. Це стосується обʼєднання полів, для яких існує стандартне значення, і наразі тільки evictionHard має стандартне значення. Стандартне значення: false
podsPerCore int32
podsPerCore — максимальна кількість Podʼів на ядро. Не може перевищувати maxPods. Значення має бути цілим невідʼємним числом. Якщо 0, то немає обмеження на кількість Podʼів. Стандартно: 0
enableControllerAttachDetach bool
enableControllerAttachDetach дозволяє контролеру Attach/Detach керувати приєднанням/відʼєднанням томів, запланованих для цього вузла, і забороняє kubelet виконувати будь-які операції приєднання/відʼєднання. Зауваження: приєднання/відʼєднання томів CSI не підтримується kubelet, тому для цього варіанту використання ця опція має мати значення true. Стандартно: true
protectKernelDefaults bool
protectKernelDefaults, якщо значення true, призводить до помилки Kubelet, якщо прапорці ядра не відповідають його очікуванням. В іншому випадку Kubelet спробує змінити прапорці ядра так, щоб вони відповідали його очікуванням. Стандартно: false
makeIPTablesUtilChains bool
makeIPTablesUtilChains, якщо значення true, змушує Kubelet створювати ланцюжок KUBE-IPTABLES-HINT у iptables як підказку іншим компонентам про конфігурацію iptables у системі. Стандартно: true
iptablesMasqueradeBit int32
iptablesMasqueradeBit раніше контролював створення ланцюжка KUBE-MARK-MASQ. Застарілий: більше не має жодного впливу. Стандартно: 14
iptablesDropBit int32
iptablesDropBit раніше контролював створення ланцюжка KUBE-MARK-DROP. Застаріла: більше не має жодного впливу. Стандартно: 15
featureGates map[string]bool
featureGates - це map імен функціональних можливостей до bools, які вмикають або вимикають експериментальні можливості. Це поле змінює вбудовані стандартні значення з "k8s.io/kubernetes/pkg/features/kube_features.go". Стандартно: nil
failSwapOn bool
failSwapOn вказує Kubelet не запускатися, якщо на вузлі увімкнено підкачку. Стандартно: true
memorySwap налаштовує памʼять підкачки, доступну для контейнерних робочих навантажень.
containerLogMaxSize string
containerLogMaxSize — величина, що визначає максимальний розмір лог-файлу контейнера перед його ротацією. Наприклад: "5Mi" або "256Ki". Стандартно: "10Mi"";
containerLogMaxFiles int32
containerLogMaxFiles визначає максимальну кількість файлів логу контейнера, які можуть бути присутніми для контейнера. Стандартно: 5
containerLogMaxWorkers int32
ContainerLogMaxWorkers визначає максимальну кількість паралельних робочих процесів для виконання операцій ротації логів. Встановіть це значення рівним 1, щоб вимкнути паралельні робочі процеси ротації логу. Стандартно: 1
ContainerLogMonitorInterval визначає тривалість, протягом якої контейнерні логи відстежуються для виконання операції ротації логів. Стандартно це значення дорівнює 10 * time.Seconds. Але його можна налаштувати на менше значення залежно від частоти генерації логів і розміру, щодо якого потрібно виконати ротацію. Стандартно: 10s
configMapAndSecretChangeDetectionStrategy - режим, у якому працюють менеджери ConfigMap і Secret. Допустимі значення включають:
Get: kubelet отримує необхідні обʼєкти безпосередньо з сервера API;
Cache: kubelet використовує TTL кеш для обʼєктів, отриманих з сервера API;
Watch: kubelet використовує watch для спостереження за змінами в обʼєктах, які його цікавлять.
Default: "Watch"
systemReserved map[string]string
systemReserved - це набір пар ResourceName=ResourceQuantity (наприклад, cpu=200m,memory=150G), які описують ресурси, зарезервовані для компонентів, що не належать до kubernetes. Наразі підтримуються лише процесор і памʼять. Дивіться https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources для більш детальної інформації. Стандартно: nil
kubeReserved map[string]string
kubeReserved — це набір пар ResourceName=ResourceQuantity (наприклад, cpu=200m,memory=150G), які описують ресурси, зарезервовані для компонентів системи kubernetes. Наразі підтримуються процесор, памʼять та локальне сховище для кореневої файлової системи. Більш детальну інформацію можна знайти на сторінці https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources. Стандартно: nil
reservedSystemCPUs[Обовʼязково] string
Параметр reservedSystemCPUs визначає список процесорів, зарезервованих для системних потоків рівня хоста та потоків, повʼязаних з kubernetes. Це забезпечує "статичний" список процесорів, а не "динамічний" список за допомогою systemReserved та kubeReserved. Цей параметр не підтримує systemReservedCgroup або kubeReservedCgroup.
showHiddenMetricsForVersion string
showHiddenMetricsForVersion — це попередня версія, для якої ви хочете показати приховані метрики. Тільки попередня мінорна версія є значущою, інші значення не допускаються. Формат <major>.<minor>, наприклад: 1.16. Метою цього формату є забезпечення можливості помітити, якщо в наступному випуску будуть приховані додаткові метрики, а не бути здивованими, коли вони будуть остаточно видалені в наступному випуску. Стандартно: ""
systemReservedCgroup string
systemReservedCgroup допомагає kubelet ідентифікувати абсолютну назву верхнього рівня CGroup, який використовується для забезпечення systemReserved обчислювального резервування ресурсів для системних демонів ОС. Дивіться Node Allocatable документацію для отримання додаткової інформації. Стандартно: ""
kubeReservedCgroup string
kubeReservedCgroup допомагає kubelet ідентифікувати абсолютну назву верхнього рівня CGroup, який використовується для забезпечення KubeReserved обчислювального резервування ресурсів для системних демонів вузла Kubernetes. Дивіться Node Allocatable документацію для отримання додаткової інформації. Стандартно: ""
enforceNodeAllocatable []string
Цей прапорець визначає різні примусові дії Node Allocatable, які Kubelet повинен виконувати. Цей прапорець приймає список опцій. Прийнятні опції: none, pods, system-reserved, system-reserved-compressible, kube-reserved та kube-reserved-compressible. Якщо вказано none, інші опції не можуть бути вказані. Коли в списку є опція system-reserved, має бути вказано systemReservedCgroup. Коли в списку є опція kube-reserved, має бути вказано kubeReservedCgroup. Якщо вказано опцію compressible, відповідна некопресована опція не може бути вказана. Це поле підтримується тільки тоді, коли cgroupsPerQOS встановлено на true. Дивіться Node Allocatable для отримання додаткової інформації. Стандартно: ["pods"]
allowedUnsafeSysctls []string
Список небезпечних sysctl або шаблонів sysctl, розділених комами (які закінчуються на *). Небезпечні групи sysctl включають kernel.shm*, kernel.msg*, kernel.sem, fs.mqueue.* та net.*. Наприклад: "kernel.msg*,net.ipv4.route.min_pmtu". Стандартно: []
volumePluginDir string
volumePluginDir — це повний шлях до теки, в якій слід шукати додаткові втулки томів сторонніх розробників. Стандартно: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"
providerID string
providerID, якщо вказано, встановлює унікальний ID екземпляра, який зовнішній постачальник (наприклад, хмарний постачальник) може використовувати для ідентифікації конкретного вузла. Стандартно: ""
kernelMemcgNotification bool
kernelMemcgNotification, якщо вказано, інструктує kubelet інтегруватися з нотифікацією memcg ядра для визначення, чи перевищені порогові значення памʼяті для виселення, замість опитування. Стандартно: false
logging вказує параметри логування. Для отримання додаткової інформації зверніться до Options for Logs. стандартно: Format: text
enableSystemLogHandler bool
enableSystemLogHandler дозволяє отримати доступ до системних логів через веб-інтерфейс за адресою host:port/logs/. Стандартно: true
enableSystemLogQuery bool
enableSystemLogQuery активує функцію запиту логів вузла на точці доступу /logs. Для роботи цієї функції також потрібно включити EnableSystemLogHandler. Увімкнення цього параметра впливає на безпеку. Рекомендується вмикати її за необхідності для налагодження і вимикати за інших обставин. Стандартно: false
shutdownGracePeriod вказує загальну тривалість, на яку вузол повинен затримати завершення роботи і загальний період належного завершення роботи для завершення роботи Podʼів під час завершення роботи вузла. Стандартно: "0s"
shutdownGracePeriodCriticalPods вказує тривалість, що використовується для завершення критичних Podʼів під час завершення роботи вузла. Це повинно бути менше ніж shutdownGracePeriod. Наприклад, якщо shutdownGracePeriod=30s, і shutdownGracePeriodCriticalPods=10s, під час завершення роботи вузла перші 20 секунд будуть зарезервовані для мʼякого завершення роботи звичайних Podʼів, а останні 10 секунд будуть зарезервовані для завершення роботи критичних Podʼів. Стандартно: "0s"
shutdownGracePeriodByPodPriority вказує період часу для належного завершення роботи Podʼів на основі їх значення класу пріоритету. Коли отримано запит на завершення роботи, Kubelet ініціює завершення роботи для всіх Podʼів, що працюють на вузлі, з періодом часу, що залежить від пріоритету Podʼа, і потім чекає на завершення роботи всіх Podʼів. Кожен запис у масиві представляє час належного завершення роботи для Podʼа з значенням класу пріоритету, що лежить у діапазоні цього значення та наступного вищого запису в списку під час завершення роботи вузла. Наприклад, щоб дозволити критичним Podʼам 10 секунд для завершення роботи, Podʼам з пріоритетом >=10000 — 20 секунд, а всім іншим Podʼам — 30 секунд.
Час, який Kubelet чекатиме перед завершенням роботи, буде максимумом з усіх shutdownGracePeriodSeconds для кожного діапазону класів пріоритету, представленого на вузлі. Коли всі Podʼи завершать роботу або досягнуть своїх періодівналежного завершення, Kubelet звільнить блокування інгібіції завершення роботи. Потрібно, щоб була ввімкнена функція GracefulNodeShutdown. Ця конфігурація має бути порожньою, якщо встановлено або ShutdownGracePeriod, або ShutdownGracePeriodCriticalPods. Стандартно: nil
reservedMemory визначає список резервувань памʼяті для NUMA-вузлів, розділений комами. Цей параметр має сенс лише в контексті функції керування памʼяттю. Менеджер памʼяті не виділятиме зарезервовану памʼять для робочих навантажень контейнерів. Наприклад, якщо у вас є NUMA0 з 10Gi памʼяті, і reservedMemory було вказано для резервування 1Gi памʼяті на NUMA0, менеджер памʼяті передбачатиме, що лише 9Gi доступні для виділення. Ви можете вказати різну кількість вузлів NUMA та типів памʼяті. Ви можете взагалі опустити цей параметр, але повинні знати, що кількість зарезервованої памʼяті з усіх вузлів NUMA повинна бути рівною кількості памʼяті, вказаній у node allocatable. Якщо хоча б один параметр node allocatable має ненульове значення, вам потрібно буде вказати принаймні один вузол NUMA. Також уникайте вказування:
Дублікати, той самий вузол NUMA і тип пам’яті, але з іншим значенням.
нульові обмеження для будь-якого типу памʼяті.
Ідентифікатори вузлів NUMAs, які не існують на машині.
типи пам’яті, крім пам’яті та hugepages-
Стандартно: nil
enableProfilingHandler bool
enableProfilingHandler дозволяє профілювання через веб-інтерфейс host:port/debug/pprof/. Стандартно: true
enableDebugFlagsHandler bool
enableDebugFlagsHandler дозволяє доступ до прапорців через веб-інтерфейс host:port/debug/flags/v. Стандартно: true
seccompDefault bool
SeccompDefault дозволяє використовувати RuntimeDefault як профіль seccomp стнадартно для всіх робочих навантажень. Стандартно: false
memoryThrottlingFactor float64
MemoryThrottlingFactor визначає множник, який множиться на обмеження памʼяті або доступну памʼять вузла при встановленні значення cgroupv2 memory.high для забезпечення MemoryQoS. Зменшення цього коефіцієнта встановить нижчу високу межу для cgroups контейнера і створить більший тиск на відновлення памʼяті, тоді як збільшення зменшить тиск на відновлення. Детальніше дивіться за посиланням: KEP-2570. Стандартно: 0.9
MemoryReservationPolicy контролює, як kubelet застосовує захист памʼяті cgroup v2. "None" (стандартно): kubelet не встановлює memory.min для контейнерів і podʼів, забезпечуючи, що жодна жорстка пам'ять не блокується ядром. "TieredReservation": kubelet встановлює memory.min для Guaranteed podʼів і memory.low для Burstable podʼів на основі запитів памʼяті. Гарантована памʼять ніколи не відновлюється ядром; Burstable памʼять переважно зберігається, але може бути відновлена під час екстремального навантаження. Дивіться KEP-2570 для отримання додаткової інформації. Стандартно: None
registerWithTaints — це масив "taints" (міток) для додавання до обʼєкта вузла під час реєстрації kubelet. Набирає чинності лише тоді, коли параметр registerNode встановлено в значення true і під час початкової реєстрації вузла. Стандартно: nil
registerNode bool
registerNode дозволяє автоматичну реєстрацію з apiserver. Стандартно: true
Tracing визначає версійовану конфігурацію для клієнтів трасування OpenTelemetry. Див. kep.k8s.io/2832 для отримання додаткової інформації. Стандартно: nil
localStorageCapacityIsolation bool
LocalStorageCapacityIsolation дозволяє використовувати функцію ізоляції локального тимчасового зберігання. Стандартно: true. Ця функція дозволяє користувачам встановлювати запити/межі для тимчасового зберігання контейнерів та керувати ним так само, як процесорами та памʼяттю. Вона також дозволяє встановлювати sizeLimit для томів emptyDir, що призведе до видалення Podʼа, якщо використання диска з тома перевищить межу. Ця функція залежить від можливості правильної детекції використання кореневої файлової системи диска. Для деяких систем, таких як kind rootless, якщо ця можливість не підтримується, функцію LocalStorageCapacityIsolation слід вимкнути. Після вимкнення користувач не повинен встановлювати запити/межі для тимчасового зберігання контейнерів або sizeLimit для emptyDir. Стандартно: true
containerRuntimeEndpoint[Обовʼязково] string
ContainerRuntimeEndpoint є точкою доступу середовища виконання контейнерів. В Linux підтримуються Unix Domain Sockets, а у Windows підтримуються точки npipe та tcp. Приклади: 'unix:///path/to/runtime.sock', 'npipe:////./pipe/runtime'
imageServiceEndpoint string
ImageServiceEndpoint є точкою доступу сервісу контейнерних образів. Unix Domain Socket підтримуються в Linux, а npipe та tcp точки підтримуються у Windows. Приклади: 'unix:///path/to/runtime.sock', 'npipe:////./pipe/runtime'. Якщо не вказано, використовується значення з containerRuntimeEndpoint.
failCgroupV1 bool
FailCgroupV1 забороняє запуск kubelet на хостах, які використовують cgroup v1. Стандартно цей параметр має значення 'true', що означає, що kubelet не запускатимється на хостах cgroup v1, якщо цей параметр явно не вимкнено. Стандартно: 'true'
UserNamespaces містить конфігурацію User Namespace.
SerializedNodeConfigSource
SerializedNodeConfigSource дозволяє серіалізувати v1.NodeConfigSource. Цей тип використовується всередині Kubelet для відстеження збережених динамічних конфігурацій. Він існує в API групі kubeletconfig, оскільки класифікується як версійний вхідний параметр для Kubelet.
maxContainerRestartPeriod - максимальна тривалість затримки при перезапуску контейнера, мінімум 1 секунда, максимум 300 секунд. Якщо не задано, стандартно використовується внутрішній максимум затримки при повторному запуску контейнера (300 секунд).
CredentialProvider представляє втулок exec, який викликається kubelet. Втулок викликається тільки тоді, коли образ, що завантажується, відповідає образам, що обробляються втулком (див. matchImages).
Поле
Опис
name[Обовʼязково] string
name є обовʼязковою назвою постачальника облікових даних. Має відповідати назві виконуваного файлу постачальника, яку бачить kubelet. Виконуваний файл повинен бути в теці bin kubelet (встановлений прапорцем --image-credential-provider-bin-dir). Має бути унікальним серед всіх провайдерів.
matchImages[Обовʼязково] []string
matchImages є обовʼязковим списком рядків, які використовуються для порівняння з образами, щоб визначити, чи слід викликати цього постачальника. Якщо один із рядків відповідає запитаному образу від kubelet, втулок буде викликаний і отримає можливість надати облікові дані. Очікується, що образи міститимуть домен реєстрації та URL-адресу.
Кожен запис у matchImages є шаблоном, який може містити порт і шлях. Глоби можна використовувати в домені, але не в порту чи шляху. Глоби підтримуються як піддоменами, такими як '*.k8s.io' або 'k8s.*.io', а також топ-рівневими доменами, такими як 'k8s.*'. Часткові піддомени, такі як 'app*.k8s.io', також підтримуються. Кожен глоб може відповідати лише одному сегменту піддомену, тому '*.io' не відповідає '*.k8s.io'.
Відповідність існує між образом і matchImage, коли всі з нижченаведених умов виконані:
Обидва містять однакову кількість частин домену, і кожна частина має збіг.
URL шлях образу повинен бути префіксом цільового URL шляху образу.
Якщо matchImage містить порт, порт також повинен мати збіг в образі.
defaultCacheDuration є стандартним періодом, протягом якого втулок буде кешувати облікові дані в памʼяті, якщо в відповіді втулка не вказано період кешування. Це поле є обовʼязковим.
apiVersion[Обовʼязково] string
Обовʼязкова версія введення запиту CredentialProvider. Повернутий CredentialProviderResponse МУСИТЬ використовувати таку ж версію кодування, як і ввод. Поточні підтримувані значення:
credentialprovider.kubelet.k8s.io/v1beta1
args []string
Аргументи, які передаються команді при її виконанні.
Env визначає додаткові змінні середовища, які потрібно надати процесу. Вони обʼєднуються з середовищем хоста, а також змінними, які client-go використовує для передачі аргументів втулку.
KubernetesServiceAccounts — це індекс координат усіх службових облікових записів Kubernetes, які використовувалися для отримання образу.
nodePodsAccessible bool
NodePodsAccessible — це прапорець, який позначає, що всі поди на вузлі мають доступ до облікових даних для отримання, або що для отримання облікові дані не потрібні.
Якщо true, це взаємовиключно з полем kubernetesSecrets.
ImagePullSecret — це представлення координат обʼєкта секрету Kubernetes разом із хешем облікових даних для витягування секрету, який містить цей обʼєкт.
Поле
Опис
uid[Обовʼязково] string
Опис відсутній.
namespace[Обовʼязково] string
Опис відсутній.
name[Обовʼязково] string
Опис відсутній.
credentialHash[Обовʼязково] string
CredentialHash — це SHA-256, отриманий шляхом хешування вмісту облікових даних для отримання образу, зазначеного в секреті, визначеному координатами UID/Namespace/Name.
ImagePullServiceAccount — це представлення координат обʼєкта службового облікового запису Kubernetes, для якого kubelet надіслав токен службового облікового запису до втулка постачальника облікових даних для отримання облікових даних для отримання образів.
enabled дозволяє анонімні запити до сервера kubelet. Запити, які не відхиляються іншим методом автентифікації, обробляються як анонімні запити. Анонімні запити мають імʼя користувача system:anonymous та групу system:unauthenticated.
mode визначає режим авторизації для запитів до сервера kubelet. Дійсні значення: AlwaysAllow і Webhook. Режим Webhook використовує API SubjectAccessReview для визначення авторизації.
clientCAFile — шлях до файлу сертифікатів у форматі PEM. Якщо встановлено, будь-який запит, що надає клієнтський сертифікат, підписаний одним з органів сертифікації з цього пакету, автентифікується з іменем користувача, що відповідає CommonName, та групами, що відповідають організації у клієнтському сертифікаті.
UserNamespaces містисть конфігурацію User Namespace.
Поле
Опис
idsPerPod int64
IDsPerPod — це довжина зіставлення UID та GID. Довжина має бути кратною 65536 і не перевищувати 1<<32. У не-linux системах, таких як Windows, допускається лише null / absent.
Зміна значення може вимагати перестворення всіх контейнерів на вузлі.
CredentialProviderRequest включає образ, для якого kubelet вимагає автентифікацію. Kubelet передасть цей обʼєкт запиту втулку через stdin. Загалом втулки повинні відповідати тією ж версією API, яку вони отримали.
Поле
Опис
apiVersion string
credentialprovider.kubelet.k8s.io/v1
kind string
CredentialProviderRequest
image[Обовʼязкове] string
image — це образ контейнеа, який завантажується в рамках запиту втулка для автентифікатора. Втулки можуть за бажанням розпарсити образ для отримання будь-якої інформації, необхідної для отримання облікових даних.
serviceAccountToken[Обовʼязково] string
serviceAccountToken - токен службового облікового запису, привʼязаного до пода, для якого витягується образ. Цей токен надсилається до втулка, лише якщо у конфігурації постачальника облікових даних kubelet'а вказано поле tokenAttributes.serviceAccountTokenAudience.
serviceAccountAnnotations - мапа анотацій в службовому обліковому записі, привʼязаному до пода, для якого витягується образ. Список анотацій в обліковому записі сервісу, які потрібно передати втулку, налаштовується в конфігурації постачальника облікових даних kubelet.
CredentialProviderResponse
CredentialProviderResponse містить облікові дані, які kubelet повинен використовувати для зазначеного образу, наданого в оригінальному запиті. Kubelet буде читати відповідь з втулка через stdout. Ця відповідь повинна бути встановлена на ту ж версію API, що й CredentialProviderRequest.
cacheKeyType вказує тип ключа кешування для використання на основі образу, наданого в запиті. Є три дійсні значення для типу ключа кешування: Image, Registry і Global. Якщо вказано недійсне значення, kubelet не буде використовувати відповідь.
cacheDuration вказує тривалість, впродовж якої облікові дані повинні бути кешовані. Kubelet використовуватиме це поле для налаштування тривалості кешування в пам’яті для облікових даних в AuthConfig. Якщо null, kubelet використовуватиме defaultCacheDuration, надану в CredentialProviderConfig. Якщо встановлено 0, kubelet не буде кешувати наданий AuthConfig.
auth — це map, що містить інформацію для автентифікації, передану в kubelet. Кожен ключ є рядком для образу (детальніше про це нижче). Відповідний authConfig має бути дійсним для всіх образів, що відповідають цьому ключу. Втулок повинен встановити це поле в null, якщо не можна повернути дійсні облікові дані для запитаного образу.
Кожен ключ у map є шаблоном, який може містити порт і шлях. Глоби можна використовувати в домені, але не в порті або шляху. Глоби підтримуються як піддомени, такі як '*.k8s.io' або 'k8s.*.io', і домени верхнього рівня, такі як 'k8s.*'. Часткові піддомени, такі як 'app*.k8s.io', також підтримуються. Кожен глоб може відповідати лише одному сегменту піддомена, тому '*.io' не відповідає '*.k8s.io'.
Kubelet буде порівнювати образ з ключем, коли всі з наступного є істинними:
Обидва містять однакову кількість частин домену, і кожна частина має збіг.
URL шлях imageMatch має бути префіксом цільового URL шляху образу.
Якщо imageMatch містить порт, то порт також повинен збігатись в образі.
Коли повертається кілька ключів, kubelet проходитиме через усі ключі у зворотному порядку, щоб:
довші ключі з’являються перед коротшими ключами з тим самим префіксом
ключі з глобами з’являються перед ключами без глобів з тим самим префіксом.
Для будь-якого відповідного образу kubelet спробує завантажити образ з наданими обліковими даними, зупиняючись після першого успішно автентифікованого завантаження.
AuthConfig містить інформацію для автентифікації для реєстру контейнерів.
Сьогодні підтримується тільки автентифікація на основі імені користувача та пароля, але в майбутньому можуть бути додані інші механізми автентифікації.
Поле
Опис
username[Обовʼязкове] string
username — це імʼя користувача, яке використовується для автентифікації в реєстрі контейнерів. Порожнє імʼя користувача є дійсним.
password[Обовʼязкове] string
password — це пароль, який використовується для автентифікації в реєстрі контейнерів. Порожній пароль є дійсним.
overrides дозволяє змінювати стандартні значення прапорців команд. Це особливо корисно, коли користувач не хоче кожного разу явно встановлювати прапорці.
aliases дозволяє визначати псевдоніми команд для наявних команд kubectl з необовʼязковими стандартними значеннями прапорців. Якщо імʼя аліасу збігається з вбудованою командою, вбудована команда завжди має пріоритет. Зміни прапорців, визначені в секції overrides, не застосовуються до аліасів для тієї ж команди. kubectl [ALIAS NAME] [USER_FLAGS] [USER_EXPLICIT_ARGS] розширюється до kubectl [COMMAND] # вбудований аліас команди вказує на [KUBERC_PREPEND_ARGS] [USER_FLAGS] [KUBERC_FLAGS] # решта прапорців, які не передані користувачем у [USER_FLAGS] [USER_EXPLICIT_ARGS] [KUBERC_APPEND_ARGS] наприклад.
name: runx
command: run
flags:
name: image
default: nginx
appendArgs:
custom-arg1,
Наприклад, якщо користувач викликає команду "kubectl runx test-pod", її буде розширено до "kubectl run --image=nginx test-pod -- custom-arg1"
name: getn
command: get
flags:
name: output
default: wide
prependArgs:
node
"kubectl getn control-plane-1" розширюється до "kubectl get node control-plane-1 --output=wide"
"kubectl getn control-plane-1 --output=json" розширюється до "kubectl get node --output=json control-plane-1"
flags призначено для зберігання визначень прапорців аліасів. flags лише змінює стандартне значення прапорця, і якщо користувач явно передає значення, то використовується явне значення.
aliases дозволяє визначати аліаси команд для наявних команд kubectl із необовʼязковими стандартними значеннями опцій. Якщо імʼя аліасу збігається з вбудованою командою, вбудована команда завжди має пріоритет. Параметри, перевизначені в розділі defaults, НЕ застосовуються до аліасів для тієї самої команди. kubectl [ALIAS NAME] [USER_OPTIONS] [USER_EXPLICIT_ARGS] розширюється до kubectl [COMMAND] # вбудований аліас команди вказує на [KUBERC_PREPEND_ARGS] [ USER_OPTIONS] [KUBERC_OPTIONS] # решта опцій, які не передаються користувачем у [USER_OPTIONS] [USER_EXPLICIT_ARGS] [KUBERC_APPEND_ARGS] наприклад
name: runx
command: run
options:
name: image
default: nginx
appendArgs:
custom-arg1 Наприклад, якщо користувач викликає команду "kubectl runx test-pod", вона буде розгорнута до "kubectl run --image=nginx test-pod -- custom-arg1".
name: getn
command: get
options:
name: output
default: wide
prependArgs:
node "kubectl getn control-plane-1" розгортається у "kubectl get node control-plane-1 --output=wide" "kubectl getn control-plane-1 --output=json" розгортається у "kubectl get node --output=json control-plane-1"
credentialPluginPolicy визначає політику, яка регулює, які втулки клієнтських облікових даних можуть бути виконані, якщо такі є. Вона ПОВИННА бути однією з { "", "AllowAll", "DenyAll", "Allowlist" }. Якщо політика "", то вона повертається до "AllowAll" (це необхідно для збереження зворотної сумісності). Якщо політика DenyAll, жоден втулок для роботи з обліковими даними не може виконуватися. Якщо політика Allowlist, можуть виконуватися тільки ті втулки, які відповідають критеріям, зазначеним у полі credentialPluginAllowlist.
Allowlist — це частина записів allowlist. Якщо будь-який із них збігається, то відповідний виконуваний файл може бути виконаний. Тобто результат є логічним АБО всіх записів у allowlist. Цей список НЕ ПОВИНЕН бути наданий, якщо політика не є "Allowlist".
напр. credentialPluginAllowlist:
name: cloud-provider-plugin
name: /usr/local/bin/my-plugin У наведеному вище прикладі користувач дозволяє використовувати втулки для введення облікових даних cloud-provider-plugin (знайдений десь у PATH) та втулок, знайдений за явним шляхом /usr/local/bin/my-plugin.
options призначений для зберігання визначень опцій аліаса. options змінює лише стандартні значення опцій, і якщо користувач явно вказує значення, використовується явно вказане значення.
AllowlistEntry — це запис у allowlist. Для кожного елемента allowlist принаймні одне поле має бути заповнене. Структура з усіма порожніми полями вважається помилкою конфігурації. Кожне поле є критерієм для виконання. Якщо вказано кілька полів, то критерії всіх вказаних полів мають бути виконані. Тобто результат окремого запису є логічним AND усіх перевірок, що відповідають вказаним полям у записі.
Поле
Опис
name[Обовʼязкове] string
Зіставлення імен виконується шляхом попереднього визначення абсолютного шляху як до втулка, так і до імені у записі списку дозволених за допомогою exec.LookPath. Він буде викликаний для обох, і отримані рядки повинні бути однаковими. Якщо будь-який виклик exec.LookPath призведе до помилки, перевірка Name буде вважатися невдалою.
command[Обовʼязкове] string
Зіставлення команд виконується шляхом попереднього визначення абсолютного шляху як до втулка, так і до імені у записі списку дозволених за допомогою exec.LookPath. Він буде викликаний для обох, і отримані рядки повинні бути однаковими. Якщо будь-який виклик exec.LookPath призведе до помилки, перевірка Command буде вважатися невдалою.
CredentialPluginPolicy визначає політику, яка регулює, які втулки клієнтських облікових даних можуть бути виконані, якщо такі є. Вона ПОВИННА бути однією з { "", "AllowAll", "DenyAll", "Allowlist" }. Якщо політика є "", то вона повертається до "AllowAll" (це необхідно для збереження зворотної сумісності). Якщо політика — DenyAll, втулки для введення облікових даних не можуть виконуватися. Якщо політика — Allowlist, можуть виконуватися тільки ті втулки, які відповідають критеріям, зазначеним у полі credentialPluginAllowlist. Якщо політика не є Allowlist, але така надана, це вважається помилкою конфігурації.
WebhookAdmission надає конфігурацію для контролера доступу на основі webhook.<
Поле
Опис
apiVersion string
apiserver.config.k8s.io/v1
kind string
WebhookAdmission
kubeConfigFile[Обовʼязкове] string
KubeConfigFile — це шлях до файлу kubeconfig.
staticManifestsDir string
StaticManifestsDir — це шлях до теки, що містить статичні конфігурації webhook, які будуть завантажені під час запуску. Читаються файли з розширеннями .yaml, .yml та .json. Підтримуються лише ресурси ValidatingWebhookConfiguration та MutatingWebhookConfiguration з групи admissionregistration.k8s.io/v1. Використання цього поля вимагає увімкнення функціональної можливості ManifestBasedAdmissionControlConfig.
16 - Зовнішні API
16.1 - Kubernetes Custom Metrics (v1beta2)
Пакунок v1beta2 - це версія v1beta2 API custom_metrics.
вказує на вікно ([Timestamp-Window, Timestamp]), з якого були розраховані ці метрики, при поверненні показника метрики, розраховані з кумулятивних метрик (або нуль для нерозрахованих миттєвих метрик).
selector представляє селектор міток, який можна використати для вибору цієї метрики, і зазвичай буде просто селектором, переданим у запиті для отримання цієї метрики. Якщо залишити порожнім, для збору метрик буде використано лише назву метрики.
16.2 - Kubernetes External Metrics (v1beta1)
Пакет v1beta1 є версією v1beta1 зовнішнього API метрик.
ExternalMetricValue — це значення метрики для зовнішньої метрики. Окрема метрика ідентифікується за назвою метрики та набором рядкових міток. Для однієї метрики може бути кілька значень з різними наборами міток.
Поле
Опис
apiVersion string
external.metrics.k8s.io/v1beta1
kind string
ExternalMetricValue
metricName[Обовʼязково] string
назва метрики
metricLabels[Обовʼязково] map[string]string
набір міток, які ідентифікують один часовий ряд для метрики
вказує на вікно ([Timestamp-Window, Timestamp]), з якого були розраховані ці метрики, при поверненні показника метрики, розраховані з кумулятивних метрик (або нуль для нерозрахованих миттєвих метрик).
Ви можете налаштувати поведінку kube-scheduler, написавши конфігураційний файл і передавши його шлях як аргумент командного рядка.
Профіль планування дозволяє налаштувати різні етапи планування в kube-scheduler. Кожен етап відображається в точці розширення. Втулки забезпечують поведінку планування, реалізуючи одну або кілька таких точок розширення.
Ви можете вказати профілі планування, запустивши kube-scheduler --config <filename>, використовуючи структуру KubeSchedulerConfiguration v1.
KubeSchedulerConfiguration v1beta3 є застарілим у v1.26 і видалений у v1.29. Будь ласка, перейдіть на KubeSchedulerConfiguration v1.
Профілі
Профіль планування дозволяє налаштувати різні етапи планування в kube-scheduler. Кожен етап відображається в точці розширення. втулки забезпечують поведінку планування, реалізуючи одну або кілька таких точок розширення.
Ви можете налаштувати один екземпляр kube-scheduler для роботи з декількома профілями.
Точки розширення
Планування відбувається в кілька етапів, які відображаються через такі точки розширення:
queueSort: Ці втулки надають функцію впорядкування, яка використовується для сортування очікуваних Podʼів у черзі планування. Тільки один втулок сортування черги може бути ввімкнений одночасно.
placementGenerate: Ці втулки генерують потенційні розміщення (набори вузлів), де може бути запланована розглянута PodGroup. Ця точка розширення застосовується лише до планування PodGroup і вимагає ввімкнення планування Workload.
placementScore: Ці втулки оцінюють розміщення, запропоновані placementGenerate, щоб вибрати оптимальне розміщення для розглянутої PodGroup.
preFilter: Ці втулки використовуються для попередньої обробки або перевірки інформації про Pod або кластер перед фільтрацією. Вони можуть позначити Pod як непридатний для планування.
filter: Ці втулки еквівалентні Предикатам у політиці планування і використовуються для відсівання вузлів, які не можуть запустити Pod. Фільтри викликаються в налаштованому порядку. Pod позначається як непридатний для планування, якщо жоден вузол не пройшов усі фільтри.
postFilter: Ці втулки викликаються в налаштованому порядку, коли для Pod не знайдено відповідних вузлів. Якщо будь-який втулок postFilter позначає Pod як придатний для планування, решта втулків не викликаються.
preScore: Це інформаційна точка розширення, яка може використовуватися для попередньої оцінки.
score: Ці втулки надають оцінку кожному вузлу, який пройшов етап фільтрації. Планувальник обере вузол з найвищою сумою зважених оцінок.
reserve: Це інформаційна точка розширення, яка повідомляє втулки, коли ресурси були зарезервовані для певного Podʼа. Втулки також реалізують виклик Unreserve, який викликається у випадку невдачі під час або після Reserve.
permit: Ці втулки можуть запобігти або затримати привʼязку Podʼа.
preBind: Ці втулки виконують будь-які роботи, необхідні перед привʼязкою Podʼа.
bind: втулки привʼязують Pod до вузла. втулки bind викликаються в порядку, і як тільки один з них виконає привʼязку, решта втулків пропускаються. Принаймні один втулок привʼязки обовʼязковий.
postBind: Це інформаційна точка розширення, яка викликається після привʼязки Podʼа.
multiPoint: Це поле тільки для конфігурації, які дозволяють ввімкнути або вимкнути втулки для всіх їх застосовних точок розширення одночасно.
Для кожної точки розширення ви можете вимкнути конкретні стандартні втулки або ввімкнути власні. Наприклад:
Ви можете використовувати * як імʼя в масиві вимкнених втулків, щоб вимкнути всі стандартні втулки для цієї точки розширення. Це також може бути використано для зміни порядку втулків, якщо це необхідно.
Втулки планування
Наступні втулки, які стандартно увімкнені, реалізують одну або більше з цих точок розширення:
ImageLocality: Віддає перевагу вузлам, які вже мають образи контейнерів, що запускаються Podʼом. Точки розширення: score.
TaintToleration: Реалізує
taints and tolerations. Реалізує точки розширення: filter, preScore, score.
NodeName: Перевіряє, чи відповідає імʼя вузла у специфікації Podʼа поточному вузлу. Точки розширення: filter.
NodePorts: Перевіряє, чи має вузол вільні порти для запитуваних портів Podʼа. Точки розширення: preFilter, filter.
NodeUnschedulable: Відфільтровує вузли, які мають .spec.unschedulable встановлений на true. Точки розширення: filter.
NodeResourcesFit: Для планування pod-by-pod перевіряє, чи має вузол усі ресурси, які запитує Pod. Оцінка може використовувати одну з трьох стратегій: LeastAllocated (стандартно), MostAllocated та RequestedToCapacityRatio. Для планування PodGroup обчислює використання ресурсів у всьому оціненому розміщенні. Оцінка використовує стратегію MostAllocated. Точки розширення: preFilter, filter, score, placementScore.
NodeResourcesBalancedAllocation: Віддає перевагу вузлам, які отримають більш збалансоване використання ресурсів, якщо Pod буде заплановано на них. Точки розширення: score.
VolumeBinding: Перевіряє, чи має вузол або чи може звʼязати запитувані томи. Точки розширення: preFilter, filter, reserve, preBind, score.
Примітка:
Точка розширення score увімкнена, коли ввімкнена функція StorageCapacityScoring. Вона надає пріоритет найменшим PV, які можуть відповідати запитуваному розміру тому.
VolumeRestrictions: Перевіряє, чи задовольняють томи, змонтовані на вузлі, обмеження, специфічні для постачальника томів. Точки розширення: filter.
VolumeZone: Перевіряє, чи задовольняють запитувані томи будь-які вимоги до зони, які вони можуть мати. Точки розширення: filter.
NodeVolumeLimits: Перевіряє, чи можуть бути задоволені ліміти томів CSI для вузла. Цей втулок також може запобігти розміщенню подів на вузлі, якщо на ньому не встановлено драйвер CSI, що вимагає увімкнення функції VolumeLimitScaling. Він також дозволяє кластерному автомасштабувальнику точно розрахувати кількість вузлів, необхідних для планування очікуючих подів з приєднуваними томами CSI. Точки розширення: filter.
EBSLimits: Перевіряє, чи можуть бути задоволені ліміти томів AWS EBS для вузла. Точки розширення: filter.
GCEPDLimits: Перевіряє, чи можуть бути задоволені ліміти томів GCP-PD для вузла. Точки розширення: filter.
AzureDiskLimits: Перевіряє, чи можуть бути задоволені ліміти томів дисків Azure для вузла. Точки розширення: filter.
PrioritySort: Забезпечує стандартне сортування за пріоритетами. Точки розширення: queueSort.
DefaultBinder: Забезпечує стандартний механізм привʼязки. Точки розширення: bind.
TopologyPlacement: Забезпечує стандартний механізм генерації розміщень для обмежень топології PodGroup. Точки розширення: placementGenerate.
PodGroupPodsCount: Забезпечує алгоритм оцінки розміщень на основі кількості Podʼів, які можуть бути заплановані в даному розміщенні. Точки розширення: placementScore.
Ви також можете ввімкнути наступні втулки через API конфігурації компонентів, які не увімкнені стандартно:
CinderLimits: Перевіряє, чи можуть бути задоволені ліміти томів OpenStack Cinder для вузла. Точки розширення: filter.
Декілька профілів
Ви можете налаштувати kube-scheduler для роботи з декількома профілями. Кожен профіль має повʼязане імʼя планувальника і може мати різний набір втулків, налаштованих у його точках розширення.
З наступною зразковою конфігурацією, планувальник буде працювати з двома профілями: один зі стандартними втулками і один з усіма вимкненими втулками скорінгу.
Podʼи, які хочуть бути заплановані відповідно до певного профілю, можуть включати відповідне імʼя планувальника у своїй .spec.schedulerName.
Стандартно створюється один профіль з іменем планувальника default-scheduler. Цей профіль включає стандартні втулки, описані вище. При оголошенні більше одного профілю для кожного з них потрібно унікальне імʼя планувальника.
Якщо Pod не вказує імʼя планувальника, kube-apiserver встановить його на default-scheduler. Таким чином, для планування цих Podʼів повинен існувати профіль з цим імʼям планувальника.
Примітка:
Події планування Podʼа мають .spec.schedulerName як свій reportingController. Події для вибору лідера використовують імʼя планувальника з першого профілю в списку.
Для отримання додаткової інформації, будь ласка, зверніться до розділу reportingController в Довідці API Event.
Примітка:
Усі профілі повинні використовувати той самий втулок у точці розширення queueSort і мати однакові параметри конфігурації (якщо це застосовується). Це повʼязано з тим, що планувальник має лише одну чергу Podʼів в очікуванні.
Втулки, які застосовуються до декількох точок розширення
Починаючи з kubescheduler.config.k8s.io/v1beta3, у конфігурації профілю є додаткове поле multiPoint, яке дозволяє легко увімкнути або вимкнути втулок для кількох точок розширення. Метою конфігурації multiPoint є спрощення конфігурації для користувачів і адміністраторів при використанні користувацьких профілів.
Розглянемо втулок MyPlugin, який реалізує точки розширення preScore, score, preFilter і filter. Щоб увімкнути MyPlugin для всіх доступних точок розширення, конфігурація профілю виглядає так:
Однією з переваг використання multiPoint є те, що якщо MyPlugin реалізує іншу точку розширення в майбутньому, конфігурація multiPoint автоматично увімкне його для нової точки розширення.
Конкретні точки розширення можна виключити з розширення MultiPoint за допомогою поля disabled для цієї точки розширення. Це працює з відключенням стандартних втулків, нестандартних втулків або з підстановним знаком ('*') для відключення всіх втулків. Приклад цього, відключення Score і PreScore, виглядає так:
Починаючи з kubescheduler.config.k8s.io/v1beta3, усі стандартні втулки ввімкнені внутрішньо через MultiPoint. Однак окремі точки розширення все ще доступні, щоб забезпечити гнучке переналаштування стандартних значень (наприклад, порядок і ваги Score). Наприклад, розглянемо два втулки Score DefaultScore1 і DefaultScore2, кожен з вагою 1. Їх можна змінити місцями з різними вагами так:
У цьому прикладі не потрібно явно вказувати втулки в MultiPoint, оскільки вони є стандартними втулками. І єдиний втулок, вказаний у Score, це DefaultScore2. Це тому, що втулки, встановлені через конкретні точки розширення, завжди матимуть пріоритет перед втулками MultiPoint. Таким чином, цей фрагмент по суті змінює порядок втулків без необхідності вказувати їх усіх.
Загальна ієрархія для пріоритету при налаштуванні втулків MultiPoint є наступною:
Специфічні точки розширення працюють першими, і їх налаштування переважатимуть над налаштуваннями, встановленими деінде.
Втулки, налаштовані вручну через MultiPoint, і їх налаштування.
Стандартні втулки та їх стандартні налаштування.
Щоб продемонструвати наведені вище ієрархії, наступний приклад базується на цих втулках:
Втулок
Точки розширення
DefaultQueueSort
QueueSort
CustomQueueSort
QueueSort
DefaultPlugin1
Score, Filter
DefaultPlugin2
Score
CustomPlugin1
Score, Filter
CustomPlugin2
Score, Filter
Дійсна конфігурація (для зразка) для цих втулків виглядає так:
Зверніть увагу, що немає помилки при повторній декларації втулка MultiPoint у конкретній точці розширення. Повторна декларація ігнорується (і логується), оскільки конкретні точки розширення мають пріоритет.
Крім збереження більшості конфігурацій в одному місці, цей приклад виконує кілька речей:
Увімкнено спеціальний втулок queueSort і вимкнено стандартний
Увімкнено CustomPlugin1 і CustomPlugin2, які будуть виконуватися першими для всіх своїх точок розширення
Вимкнено DefaultPlugin1, але тільки для filter
Змінено порядок виконання DefaultPlugin2 для роботи першої в score (навіть перед власними втулками)
У версіях конфігурації до v1beta3, без multiPoint, наведений вище фрагмент рівнозначний цьому:
apiVersion:kubescheduler.config.k8s.io/v1beta2kind:KubeSchedulerConfigurationprofiles:- schedulerName:multipoint-schedulerplugins:# Вимкнути стандартний втулок QueueSortqueueSort:enabled:- name:'CustomQueueSort'disabled:- name:'DefaultQueueSort'# Увімкнути спеціальні втулки Filterfilter:enabled:- name:'CustomPlugin1'- name:'CustomPlugin2'- name:'DefaultPlugin2'disabled:- name:'DefaultPlugin1'# Увімкнути та змінити порядок спеціальних втулків scorescore:enabled:- name:'DefaultPlugin2'weight:1- name:'DefaultPlugin1'weight:3
Хоча це складний приклад, він демонструє гнучкість конфігурації MultiPoint, а також її безшовну інтеграцію з наявними методами налаштування точок розширення.
З версією конфігурації v1beta2 можна використовувати нове розширення для втулка NodeResourcesFit. Нове розширення поєднує функціонал втулків NodeResourcesLeastAllocated, NodeResourcesMostAllocated та RequestedToCapacityRatio. Наприклад, якщо ви раніше використовували втулок NodeResourcesMostAllocated, то тепер ви можете використовувати NodeResourcesFit (стандартно увімкнено) і додати pluginConfig зі scoreStrategy, яка виглядає наступним чином:
У версіях Kubernetes до v1.23 політика планування могла використовуватися для вказівки процесу predicates та priorities. Наприклад, ви могли встановити політику планування, запустивши kube-scheduler --policy-config-file <filename> або kube-scheduler --policy-configmap <ConfigMap>.
Ця політика планування не підтримується з Kubernetes v1.23. Споріднені прапорці policy-config-file, policy-configmap, policy-configmap-namespace та use-legacy-policy-config також не підтримуються. Натомість використовуйте Конфігурацію планувальника, щоб досягти схожої поведінки.
Kubernetes містить кілька інструментів, які допоможуть вам працювати з системою Kubernetes.
crictl
crictl — це інтерфейс командного рядка для перегляду та відлагодження оточення виконання контейнерів, сумісних з CRI.
Dashboard
Dashboard, вебінтерфейс Kubernetes, дозволяє розгортати контейнерні застосунки в кластері Kubernetes, розвʼязувати проблеми з ними та управляти кластером та його ресурсами.
Headlamp
Headlamp — це розширюваний графічний інтерфейс користувача Kubernetes і додатковий компонент кластера Kubernetes. Headlamp є частиною проєкту Kubernetes.
Headlamp пропонує:
Сучасний, зручний графічний інтерфейс для управління кластером та усунення несправностей
Підтримку як розгортання в кластері, так і режиму десктопного застосунку
Розширюваність за допомогою системи втулків
Контроль на основі RBAC, що адаптується до прав користувача
Helm
🛇 Цей елемент посилається на сторонній проєкт або продукт, який не є частиною Kubernetes. Докладніше
Helm — це інструмент для управління пакунками наперед сконфігурованих ресурсів Kubernetes. Ці пакунки відомі як Helm charts.
Використовуйте Helm для:
Пошуку та використання популярного програмного забезпечення, упакованого як Helm charts для Kubernetes
Поширення ваших застосунків у вигляді Helm charts
Створення відтворюваних збірок вашого застосунку Kubernetes
Управління файлами маніфестів Kubernetes
Управління випусками пакунків Helm
kind
kind — це інструмент для запуску локальних кластерів Kubernetes за допомогою вузлів контейнерів Docker. kind в основному призначений для тестування самого Kubernetes, але також може використовуватися для локальної розробки або CI.
Kompose
Kompose — це інструмент для допомоги користувачам Docker Compose в переході до Kubernetes.
Використовуйте Kompose для:
Перетворення файлу Docker Compose в обʼєкти Kubernetes
Переходу від локальної розробки Docker до управління вашим застосунком через Kubernetes
Kui — це графічний інструмент, який обробляє ваші звичайні запити командного рядка kubectl та показує вивід в графічному вигляді. Замість ASCII-таблиць, Kui надає графічний рендеринг з таблицями, які можна сортувати.
Kui дозволяє вам:
Натискати на довгі, автоматично генеровані назви ресурсів, замість копіювання та вставляння
Вводити команди kubectl і бачити їх виконання, іноді навіть швидше, ніж в kubectl
Запитувати Job та бачити його виконання у вигляді діаграми водоспаду
Переходити за ресурсами в вашому кластері за допомогою графічного інтерфейсу користувача
Minikube
minikube — це інструмент, який запускає локальний однокомпонентний кластер Kubernetes безпосередньо на вашому компʼютері для розробки та тестування.