Це багатосторінковий друкований вигляд цього розділу. Натисність щоб друкувати.
Конфігураційні API
- 1: Client Authentication (v1)
- 2: Client Authentication (v1beta1)
- 3: Event Rate Limit Configuration (v1alpha1)
- 4: Image Policy API (v1alpha1)
- 5: kube-apiserver Admission (v1)
- 6: kube-apiserver Audit Configuration (v1)
- 7: kube-apiserver Configuration (v1)
- 8: kube-apiserver Configuration (v1alpha1)
- 9: kube-apiserver Configuration (v1beta1)
- 10: kube-controller-manager Configuration (v1alpha1)
- 11: kube-proxy Configuration (v1alpha1)
- 12: kube-scheduler Configuration (v1)
- 13: kubeadm Configuration (v1beta3)
- 14: kubeadm Configuration (v1beta4)
- 15: kubeconfig (v1)
- 16: Kubelet Configuration (v1)
- 17: Kubelet Configuration (v1alpha1)
- 18: Kubelet Configuration (v1beta1)
- 19: Kubelet CredentialProvider (v1)
- 20: WebhookAdmission Configuration (v1)
1 - Client Authentication (v1)
Типи ресурсів
ExecCredential
ExecCredential використовується втулками на основі exec для передачі облікових даних до HTTP транспортів.
Поле | Опис |
---|---|
apiVersion string | client.authentication.k8s.io/v1 |
kind string | ExecCredential |
spec [Обовʼязкове]ExecCredentialSpec | Spec містить інформацію, передану транспортом втулку. |
status ExecCredentialStatus | Status заповнюється втулоком і містить облікові дані, які транспорт повинен використовувати для контакту з API. |
Cluster
Зустрічається в:
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 порожній, використовується імʼя хоста, за яким здійснюється контакт з сервером. |
insecure-skip-tls-verify bool | InsecureSkipTLSVerify пропускає перевірку дійсності сертифіката сервера. Це зробить ваші HTTPS-зʼєднання небезпечними. |
certificate-authority-data []byte | CAData містить сертифікати органів сертифікації, закодовані у форматі PEM. Якщо порожнє, слід використовувати системні корені. |
proxy-url string | ProxyURL — це URL-адреса проксі-сервера, який буде використовуватися для всіх запитів до цього кластера. |
disable-compression bool | DisableCompression дозволяє клієнту відмовитися від стиснення відповідей для всіх запитів до сервера. Це корисно для прискорення запитів (особливо списків), коли пропускна здатність мережі клієнт-сервер достатня, за рахунок економії часу на стиснення (на стороні сервера) і розпакування (на стороні клієнта): https://github.com/kubernetes/kubernetes/issues/112296. |
config k8s.io/apimachinery/pkg/runtime.RawExtension | Config містить додаткові дані конфігурації, специфічні для exec втулка щодо кластера, до якого здійснюється автентифікація. Ці дані походять з поля extensions[client.authentication.k8s.io/exec] обʼєкта Cluster клієнтської конфігурації: clusters:
В деяких середовищах конфігурація користувача може бути точно такою ж для багатьох кластерів (тобто викликати цей exec втулок), за винятком деяких деталей, специфічних для кожного кластера, таких як аудиторія. Це поле дозволяє безпосередньо вказати конфігурацію для кожного кластера разом з інформацією про кластер. Використання цього поля для зберігання секретних даних не рекомендується, оскільки однією з основних переваг exec втулків є те, що жодні секрети не потрібно зберігати безпосередньо в kubeconfig. |
ExecCredentialSpec
Зустрічається в:
ExecCredentialSpec містить інформацію про запит і специфічну для часу виконання, надану транспортом.
Поле | Опис |
---|---|
cluster Cluster | Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація. Зверніть увагу, що Cluster є ненульовим тільки тоді, коли provideClusterInfo встановлено в true у конфігурації exec провайдера (тобто, ExecConfig.ProvideClusterInfo). |
interactive [Обовʼязкове]bool | Interactive вказує, чи було передано stdin цьому exec втулку. |
ExecCredentialStatus
Зустрічається в:
ExecCredentialStatus містить облікові дані для використання транспортом.
Token і ClientKeyData є конфіденційними полями. Ці дані повинні передаватися тільки в памʼяті між клієнтом і процесом exec втулка. Сам exec втулок повинен бути захищений принаймні через права доступу до файлів.
Поле | Опис |
---|---|
expirationTimestamp meta/v1.Time | ExpirationTimestamp вказує час, коли надані облікові дані закінчуються. |
token [Обовʼязкове]string | Token є маркером доступу, що використовується клієнтом для автентифікації запитів. |
clientCertificateData [Обовʼязкове]string | PEM-кодовані клієнтські TLS сертифікати (включаючи проміжні, якщо є). |
clientKeyData [Обовʼязкове]string | PEM-кодований приватний ключ для вищезгаданого сертифіката. |
2 - Client Authentication (v1beta1)
Типи ресурсів
ExecCredential
ExecCredential використовується втулками на основі exec для передачі облікових даних до HTTP транспортів.
Поле | Опис |
---|---|
apiVersion string | client.authentication.k8s.io/v1beta1 |
kind string | ExecCredential |
spec [Обовʼязкове]ExecCredentialSpec | Spec містить інформацію, передану транспортом втулку. |
status ExecCredentialStatus | Status заповнюється втулком і містить облікові дані, які транспорт повинен використовувати для контакту з API. |
Cluster
Зустрічається в:
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 порожній, використовується імʼя хоста, за яким здійснюється контакт з сервером. |
insecure-skip-tls-verify bool | InsecureSkipTLSVerify пропускає перевірку дійсності сертифіката сервера. Це зробить ваші HTTPS-зʼєднання небезпечними. |
certificate-authority-data []byte | CAData містить сертифікати органів сертифікації, закодовані у форматі PEM. Якщо порожнє, слід використовувати системні корені. |
proxy-url string | ProxyURL — це URL-адреса проксі-сервера, який буде використовуватися для всіх запитів до цього кластера. |
disable-compression bool | DisableCompression дозволяє клієнту відмовитися від стиснення відповідей для всіх запитів до сервера. Це корисно для прискорення запитів (особливо списків), коли пропускна здатність мережі клієнт-сервер достатня, за рахунок економії часу на стиснення (на стороні сервера) і розпакування (на стороні клієнта): https://github.com/kubernetes/kubernetes/issues/112296. |
config k8s.io/apimachinery/pkg/runtime.RawExtension | Config містить додаткові дані конфігурації, специфічні для exec втулка щодо кластера, до якого здійснюється аутентифікація. Ці дані походять з поля extensions[client.authentication.k8s.io/exec] обʼєктаCluster клієнтської конфігурації: clusters:
В деяких середовищах конфігурація користувача може бути точно такою ж для багатьох кластерів (тобто викликати цей exec втулок), за винятком деяких деталей, специфічних для кожного кластера, таких як аудиторія. Це поле дозволяє безпосередньо вказати конфігурацію для кожного кластера разом з інформацією про кластер. Використання цього поля для зберігання секретних даних не рекомендується, оскільки однією з основних переваг exec плагінів є те, що жодні секрети не потрібно зберігати безпосередньо в kubeconfig. |
ExecCredentialSpec
Зустрічається в:
ExecCredentialSpec містить інформацію про запит і специфічну для часу виконання, надану транспортом.
Поле | Опис |
---|---|
cluster Cluster | Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація. Зверніть увагу, що Cluster є ненульовим тільки тоді, коли provideClusterInfo встановлено в true у конфігурації exec провайдера (тобто, ExecConfig.ProvideClusterInfo). |
interactive [Обовʼязкове]bool | Interactive вказує, чи було передано stdin цьому exec втулку. |
ExecCredentialStatus
Зустрічається в:
ExecCredentialStatus містить облікові дані для використання транспортом.
Token і ClientKeyData є конфіденційними полями. Ці дані повинні передаватися тільки в памʼяті між клієнтом і процесом exec втулка. Сам exec втулок повинен бути захищений принаймні через права доступу до файлів.
Поле | Опис |
---|---|
expirationTimestamp meta/v1.Time | ExpirationTimestamp вказує час, коли надані облікові дані закінчуються. |
token [Обовʼязкове]string | Token є маркером доступу, що використовується клієнтом для аутентифікації запитів. |
clientCertificateData [Обовʼязкове]string | PEM-кодовані клієнтські TLS сертифікати (включаючи проміжні, якщо є). |
clientKeyData [Обовʼязкове]string | PEM-кодований приватний ключ для вищезгаданого сертифіката. |
3 - Event Rate Limit Configuration (v1alpha1)
Типи ресурсів
Configuration
Configuration надає конфігурацію для контролера доступу EventRateLimit.
Поле | Опис |
---|---|
apiVersion string | eventratelimit.admission.k8s.io/v1alpha1 |
kind string | Configuration |
limits [Обовʼязкове][]Limit | limits — це обмеження на запити подій, що надходять. Обмеження можуть бути встановлені на події, отримані на рівні сервера, на рівні простору імен, на рівні користувача та на рівні джерела+обʼєкта. Потрібно принаймні одне обмеження. |
Limit
Зустрічається в:
Limit — це конфігурація для певного типу обмеження.
Поле | Опис |
---|---|
type [Обовʼязкове]LimitType | 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 ігнорується. |
LimitType
(Аліас string
)
Зустрічається в:
LimitType — це тип обмеження (наприклад, на рівні простору імен).
4 - Image Policy API (v1alpha1)
Типи ресурсів
ImageReview
ImageReview перевіряє, чи дозволений набір образів у поді.
Поле | Опис |
---|---|
apiVersion string | imagepolicy.k8s.io/v1alpha1 |
kind string | ImageReview |
metadata meta/v1.ObjectMeta | Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. Зверніться до документації Kubernetes API для полів метаданих |
spec [Обовʼязкове]ImageReviewSpec | Spec містить інформацію про под, що оцінюється. |
status ImageReviewStatus | Status заповнюється бекендом і вказує, чи слід дозволити Pod. |
ImageReviewContainerSpec
Зустрічається в:
ImageReviewContainerSpec — це опис контейнера в запиті на створення Podʼа.
Поле | Опис |
---|---|
image string | Це може бути у вигляді image:tag або image@SHA:012345679abcdef. |
ImageReviewSpec
Зустрічається в:
ImageReviewSpec — це опис запиту на створення Podʼа.
Поле | Опис |
---|---|
containers []ImageReviewContainerSpec | Containers — це список підмножини інформації в кожному контейнері пода, що створюється. |
annotations map[string]string | Annotations — це список ключ-значення, витягнутий з анотацій Podʼа. Він включає лише ключі, які відповідають шаблону |
namespace string | Namespace — це простір імен, в якому створюється под. |
ImageReviewStatus
Зустрічається в:
ImageReviewStatus — це результат перевірки запиту на створення Podʼа.
Поле | Опис |
---|---|
allowed [Обовʼязкове]bool | Allowed вказує, що всі образи були дозволені до виконання. |
reason string | Reason має бути порожнім, якщо Allowed є true, у протилежному випадку може містити короткий опис проблеми. Kubernetes може обрізати надто довгі помилки під час відображення користувачу. |
auditAnnotations map[string]string | AuditAnnotations буде додано до обʼєкта атрибутів запиту контролера доступу за допомогою 'AddAnnotation'. Ключі повинні бути без префіксів (тобто контролер доступу додасть відповідний префікс). |
5 - kube-apiserver Admission (v1)
Типи ресурсів
AdmissionReview
AdmissionReview описує запит/відповідь на перегляд доступу.
Поле | Опис |
---|---|
apiVersion string | admission.k8s.io/v1 |
kind string | AdmissionReview |
request AdmissionRequest | Request описує атрибути запиту на перегляд доступу. |
response AdmissionResponse | Response описує атрибути відповіді на перегляд доступу. |
AdmissionRequest
Зʼявляється в:
AdmissionRequest описує атрибути доступу для запиту на перегляд доступу.
Поле | Опис |
---|---|
uid [Обовʼязкове]k8s.io/apimachinery/pkg/types.UID | UID — це ідентифікатор для індивідуального запиту/відповіді. Це дозволяє нам розрізняти випадки запитів, які є в іншому випадку ідентичними (паралельні запити, запити, коли попередні запити не змінили і т. д.). UID призначений для відстеження зворотного звʼязку (запит/відповідь) між KAS і WebHook, а не користувацьким запитом. Він підходить для співставлення записів журналу між вебхуком і apiserver для аудиту або налагодження. |
kind [Обовʼязкове]meta/v1.GroupVersionKind | Kind — це повністю кваліфікований тип обʼєкта, що подається (наприклад, v1.Pod або autoscaling.v1.Scale) |
resource [Обовʼязкове]meta/v1.GroupVersionResource | Resource — це повністю кваліфікований ресурс, що запитується (наприклад, v1.pods) |
subResource string | SubResource — це субресурс, що запитується, якщо такий є (наприклад, "status" або "scale") |
requestKind meta/v1.GroupVersionKind | RequestKind — це повністю кваліфікований тип початкового API-запиту (наприклад, v1.Pod або autoscaling.v1.Scale). Якщо це вказано і відрізняється від значення в "kind", було виконано еквівалентне співставлення та перетворення. Наприклад, якщо deployments можна змінювати за допомогою apps/v1 та apps/v1beta1, і вебхук зареєстрував правило Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука для отримання додаткової інформації. |
requestResource meta/v1.GroupVersionResource | RequestResource — це повністю кваліфікований ресурс початкового API-запиту (наприклад, v1.pods). Якщо це вказано і відрізняється від значення в "resource", було виконано еквівалентне співставлення та перетворення. Наприклад, якщо deployments можна змінювати за допомогою apps/v1 та apps/v1beta1, і вебхук зареєстрував правило Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука. |
requestSubResource string | RequestSubResource — це назва субресурсу початкового API-запиту, якщо такий є (наприклад, "status" або "scale"). Якщо це вказано і відрізняється від значення в "subResource", було виконано еквівалентне співставлення та перетворення. Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука. |
name string | Імʼя — це назва обʼєкта, як подано в запиті. У разі операції CREATE клієнт може не вказати імʼя та покластися на сервер для генерації імені. Якщо це так, це поле буде містити порожній рядок. |
namespace string | Namespace — це простір імен, повʼязаний із запитом (якщо є). |
operation [Обовʼязкове]Operation | Operation — це операція, що виконується. Це може відрізнятися від операції, що запитується. Наприклад, патч може призвести до виконання операції CREATE або UPDATE. |
userInfo [Обовʼязкове]authentication/v1.UserInfo | UserInfo — це інформація про користувача, який виконує запит |
object k8s.io/apimachinery/pkg/runtime.RawExtension | Object — це обʼєкт з вхідного запиту. |
oldObject k8s.io/apimachinery/
pkg/runtime.RawExtension | OldObject — це існуючий обʼєкт. Заповнюється тільки для запитів TE і UPDATE. |
dryRun bool | DryRun вказує, що зміни точно не ть збережені —ля цього запиту. Типово: false. |
options k8s.io/apimachinery/pkg/runtime.RawExtension | Options — це структура опцій операції, що виконується. наприклад, |
AdmissionResponse
Зʼявляється в:
AdmissionResponse описує відповідь на перегляд доступу.
Поле | Опис |
---|---|
uid [Обовʼязкове]k8s.io/apimachinery/pkg/types.UID | UID — це ідентифікатор для індивідуального запиту/відповіді. Це повинно бути скопійовано з відповідного AdmissionRequest. |
allowed [Обовʼязкове]bool | Allowed вказує, чи було дозволено запит на перегляд доступу. |
status meta/v1.Status | Result містить додаткові деталі щодо причин відхилення запиту на перегляд доступу. Це поле НЕ враховується, якщо "Allowed" є "true". |
patch []byte | Тіло патчу. Наразі ми підтримуємо лише "JSONPatch", який реалізує RFC 6902. |
patchType 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 символів, та велика кількість попереджувальних повідомлень можуть бути скорочені. |
Operation
(Аліас string
)
Зʼявляється в:
Operation — це тип операції з ресурсом, який перевіряється для контролю доступу
PatchType
(Аліас string
)
Зʼявляється в:
PatchType — це тип патчу, що використовується для представлення зміненого обʼєкта.
6 - kube-apiserver Audit Configuration (v1)
Типи ресурсів
Event
Зустрічається в:
Подія захоплює всю інформацію, яка може бути включена в лог аудиту API.
Поле | Опис |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | Event |
level [Обовʼязково]Level | Рівень аудиту, на якому була згенерована подія. |
auditID [Обовʼязково]k8s.io/apimachinery/pkg/types.UID | Унікальний ідентифікатор аудиту, згенерований для кожного запиту. |
stage [Обовʼязково]Stage | Стадія обробки запиту, коли був згенерований цей екземпляр події. |
requestURI [Обовʼязково]string | RequestURI — це URI запиту, який був надісланий клієнтом на сервер. |
verb [Обовʼязково]string | Verb — це дієслово Kubernetes, повʼязане із запитом. Для запитів без ресурсів це нижчий регістр HTTP-методу. |
user [Обовʼязково]authentication/v1.UserInfo | Інформація про автентифікованого користувача. |
impersonatedUser authentication/v1.UserInfo | Інформація про користувача, який діє від імені іншого користувача. |
sourceIPs []string | IP-адреси джерела, звідки надійшов запит і проміжні проксі-сервери. IP-адреси джерела вказані у наступному порядку:
|
userAgent string | UserAgent записує рядок агента користувача, наданий клієнтом. Зазначте, що UserAgent надається клієнтом і не може бути довіреним. |
objectRef ObjectReference | Обʼєктне посилання на цей запит. Не застосовується для запитів типу Список або запитів без ресурсів. |
responseStatus meta/v1.Status | Статус відповіді, заповнений навіть коли ObjectReference не є типом Status. Для успішних відповідей це міститиме лише Code і StatusSuccess. Для не-статусних типів помилок відповідей це буде автоматично заповнено повідомленням про помилку. |
requestObject k8s.io/apimachinery/pkg/runtime.Unknown | Обʼєкт API із запиту у форматі JSON. RequestObject записується в тому вигляді, в якому він був у запиті (можливо, повторно закодований як JSON), до конвертації версій, стандартно, допуску або злиття. Це зовнішній обʼєкт типу версії, і він може бути недійсним обʼєктом самостійно. Опускається для запитів без ресурсів. Записується тільки на рівні Request та вище. |
responseObject k8s.io/apimachinery/pkg/runtime.Unknown | Обʼєкт API, що повертається у відповіді, у форматі JSON. ResponseObject записується після перетворення на зовнішній тип і серіалізується як JSON. Опускається для запитів без ресурсів. Записується тільки на рівні Response. |
requestReceivedTimestamp meta/v1.MicroTime | Час, коли запит досяг сервера API. |
stageTimestamp meta/v1.MicroTime | Час, коли запит досяг поточної стадії аудиту. |
annotations map[string]string | Анотації — це неструктуровані ключові значення, які зберігаються разом з подією аудиту і можуть бути встановлені втулками, викликаними в ланцюжку обслуговування запитів, включаючи втулки автентифікації, авторизації та допуску. Зазначте, що ці анотації призначені для події аудиту і не відповідають метаданим анотацій надісланого обʼєкта. Ключі повинні унікально ідентифікувати інформуючий компонент. |
EventList
EventList містить події аудиту API.
Поле | Опис |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | EventList |
metadata meta/v1.ListMeta | Метадані списку, такі як інформація про пагінацію. |
items [Обовʼязково][]Event | Перелік подій аудиту. |
Policy
Зʼявляється у:
Політика визначає конфігурацію журналювання аудиту та правила для того, як різні категорії запитів мають бути зареєстровані.
Поле | Опис |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | Policy |
metadata meta/v1.ObjectMeta | ObjectMeta включено для забезпечення сумісності з API-інфраструктурою. Зверніться до документації Kubernetes API для полів поля |
rules [Обовʼязково][]PolicyRule | Правила визначають рівень аудиту, на якому має бути записаний запит. Запит може відповідати кільком правилам, у такому випадку буде використано ПЕРШЕ відповідне правило. Типово рівень аудиту — None, але може бути переважений універсальним правилом в кінці списку. PolicyRules мають строго визначений порядок. |
omitStages []Stage | OmitStages — це список етапів, для яких не створюються події. Зверніть увагу, що це також може бути вказано для кожного правила окремо, у такому випадку обʼєднання обох буде пропущено. |
omitManagedFields bool | OmitManagedFields вказує, чи слід пропускати керовані поля запитів та відповідей у журналі аудиту API. Це використовується як глобальний стандарт — значення 'true' призведе до пропуску керованих полів, в іншому випадку керовані поля будуть включені до логу аудиту API. Зверніть увагу, що це також може бути вказано для кожного правила окремо, у такому випадку значення, зазначене в правилі, переважить глобальний стандарт. |
PolicyList
PolicyList — це список політик аудиту.
Поле | Опис |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | PolicyList |
metadata meta/v1.ListMeta | Опис не надано. |
items [Обовʼязково][]Policy | Опис не надано. |
GroupResources
Зустрічається в:
GroupResources представляють типи ресурсів в API групі.
Поле | Опис |
---|---|
group string | Група — це назва API групи, яка містить ресурси. Порожній рядок представляє основну API групу. |
resources []string | Ресурси — це список ресурсів, до яких застосовується це правило. Наприклад:
Якщо присутній підстановочний знак, правило перевірки забезпечить, що ресурси не перекриваються між собою. Порожній список означає, що застосовуються всі ресурси та субресурси в цій API групі. |
resourceNames []string | resourceNames — це список імен екземплярів ресурсів, які відповідають політиці. Використання цього поля вимагає, щоб Ресурси були вказані. Порожній список означає, що кожен екземпляр ресурсу відповідає. |
Level
(Аліас string
)
Зустрічається в:
Level визначає кількість інформації, що реєструється під час аудиту
ObjectReference
Зустрічається в:
ObjectReference містить достатньо інформації, щоб дозволити вам перевірити або змінити обʼєкт, на який посилається.
Поле | Опис |
---|---|
resource string | Опис відсутній. |
namespace string | Опис відсутній. |
name string | Опис відсутній. |
uid k8s.io/apimachinery/pkg/types.UID | Опис відсутній. |
apiGroup string | APIGroup — це назва API групи, яка містить обʼєкт, на який посилаються. Порожній рядок представляє основну API групу. |
apiVersion string | APIVersion — це версія API групи, яка містить обʼєкт, на який посилаються. |
resourceVersion string | Опис відсутній. |
subresource string | Опис відсутній. |
PolicyRule
Зʼявляється в:
PolicyRule зіставляє запити на основі метаданих з рівнем аудиту. Запити повинні відповідати правилам кожного поля (перетин правил).
Поле | Опис |
---|---|
level [Обовʼязково]Level | Рівень, на якому записуються запити, що відповідають цьому правилу. |
users []string | Користувачі (за автентифікованим імʼям користувача), до яких застосовується це правило. Порожній список означає всіх користувачів. |
userGroups []string | Групи користувачів, до яких застосовується це правило. Користувач вважається відповідним, якщо він є членом будь-якої з UserGroups. Порожній список означає всі групи користувачів. |
verbs []string | Дії, що відповідають цьому правилу. Порожній список означає всі дії. |
resources []GroupResources | Ресурси, що відповідають цьому правилу. Порожній список означає всі види у всіх групах API. |
namespaces []string | Простори імен, що відповідають цьому правилу. Порожній рядок "" відповідає ресурсам без простору імен. Порожній список означає всі простори імен. |
nonResourceURLs []string | NonResourceURLs — це набір шляхів URL, які повинні бути аудійовані.
|
omitStages []Stage | OmitStages — це список стадій, для яких не створюються події. Зверніть увагу, що це також може бути зазначено для всієї політики, в такому випадку обʼєднання обох буде виключено. Порожній список означає, що обмеження не застосовуються. |
omitManagedFields bool | OmitManagedFields вказує, чи слід виключати керовані поля з тіла запиту та відповіді з логу аудиту API.
|
Stage
(Аліас string
)
Зʼявляється в:
Stage визначає стадії обробки запитів, на яких можуть створюватися події аудиту.
7 - kube-apiserver Configuration (v1)
Пакет v1 — це версія API v1.
Типи ресурсів
AdmissionConfiguration
AdmissionConfiguration надає версійовану конфігурацію для контролерів допуску.
Поле | Опис |
---|---|
apiVersion string | apiserver.config.k8s.io/v1 |
kind string | AdmissionConfiguration |
plugins []AdmissionPluginConfiguration | Plugins дозволяє вказувати конфігурацію для кожного втулка контролю допуску. |
EncryptionConfiguration
EncryptionConfiguration зберігає повну конфігурацію для провайдерів шифрування. Він також дозволяє використовувати шаблони для вказання ресурсів, які повинні бути зашифровані. Використовуйте '*.<group>' для шифрування всіх ресурсів у групі або '*.*' для шифрування всіх ресурсів. '*.' можна використовувати для шифрування всіх ресурсів у основній групі. '*.*' зашифрує всі ресурси, навіть користувацькі, які додаються після запуску сервера API. Використання шаблонів, що перекриваються в межах одного списку ресурсів або між кількома записами, не дозволяється, оскільки частина конфігурації буде неефективною. Списки ресурсів обробляються в порядку, причому перші списки мають пріоритет.
Приклад:
kind: EncryptionConfiguration
apiVersion: apiserver.config.k8s.io/v1
resources:
- resources:
- events
providers:
- identity: {} # не шифрувати події, навіть якщо *.* зазначено нижче
- resources:
- secrets
- configmaps
- pandas.awesome.bears.example
providers:
- aescbc:
keys:
- name: key1
secret: c2VjcmV0IGlzIHNlY3VyZQ==
- resources:
- '*.apps'
providers:
- aescbc:
keys:
- name: key2
secret: c2VjcmV0IGlzIHNlY3VyZSwgb3IgaXMgaXQ/Cg==
- resources:
- '*.*'
providers:
- aescbc:
keys:
- name: key3
secret: c2VjcmV0IGlzIHNlY3VyZSwgSSB0aGluaw==
Поле | Опис |
---|---|
apiVersion string | apiserver.config.k8s.io/v1 |
kind string | EncryptionConfiguration |
resources [Обовʼязково][]ResourceConfiguration | resources — це список, що містить ресурси та відповідні їм провайдери шифрування. |
AESConfiguration
Зʼявляється в:
AESConfiguration містить конфігурацію API для AES-трансформера.
Поле | Опис |
---|---|
keys [Обовʼязково][]Key | keys — це список ключів, які використовуються для створення AES-трансформера. Кожен ключ повинен бути 32 байти для AES-CBC та 16, 24 або 32 байти для AES-GCM. |
AdmissionPluginConfiguration
Зʼявляється в:
AdmissionPluginConfiguration надає конфігурацію для одного втулка.
Поле | Опис |
---|---|
name [Обовʼязково]string | Name — це назва контролера допуску. Вона повинна відповідати зареєстрованій назві втулка контролю допуску. |
path string | Path — це шлях до конфігураційного файлу, який містить конфігурацію втулка |
configuration k8s.io/apimachinery/pkg/runtime.Unknown | Configuration — це вбудований конфігураційний обʼєкт, який використовується як конфігурація втулка. Якщо він присутній, то буде використовуватися замість шляху до конфігураційного файлу. |
IdentityConfiguration
Зʼявляється в:
IdentityConfiguration — це порожня структура, яка дозволяє використовувати трансформер ідентичності в конфігурації провайдера.
KMSConfiguration
Зʼявляється в:
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". |
timeout meta/v1.Duration | timeout для gRPC викликів до kms-втулка (наприклад, 5 секунд). Стандатне значення — 3 секунди. |
Key
Зʼявляється в:
Key містить імʼя та секрет наданого ключа для трансформера.
Поле | Опис |
---|---|
name [Обовʼязково]string | name — це імʼя ключа, який буде використовуватися при збереженні даних на диск. |
secret [Обовʼязково]string | secret — це фактичний ключ, закодований в base64. |
ProviderConfiguration
Зʼявляється в:
ProviderConfiguration зберігає надану конфігурацію для провайдера шифрування.
Поле | Опис |
---|---|
aesgcm [Обовʼязково]AESConfiguration | aesgcm — це конфігурація для трансформера AES-GCM. |
aescbc [Обовʼязково]AESConfiguration | aescbc — це конфігурація для трансформера AES-CBC. |
secretbox [Обовʼязково]SecretboxConfiguration | secretbox — це конфігурація для трансформера на основі Secretbox. |
identity [Обовʼязково]IdentityConfiguration | identity — це (порожня) конфігурація для трансформера ідентичності. |
kms [Обовʼязково]KMSConfiguration | kms містить назву, розмір кешу та шлях до конфігураційного файлу для трансформера конвертів на основі KMS. |
ResourceConfiguration
Зʼявляється в:
ResourceConfiguration зберігає конфігурацію для кожного ресурсу.
Поле | Опис |
---|---|
resources [Обовʼязково][]string | resources — це список ресурсів Kubernetes, які мають бути зашифровані. Імена ресурсів походять від |
providers [Обовʼязково][]ProviderConfiguration | providers — це список трансформерів, які використовуються для читання та запису ресурсів на диск. Наприклад: aesgcm, aescbc, secretbox, identity, kms. |
SecretboxConfiguration
Зʼявляється в:
SecretboxConfiguration містить API конфігурацію для трансформера Secretbox.
Поле | Опис |
---|---|
keys [Обовʼязково][]Key | keys — це список ключів, які використовуються для створення трансформера Secretbox. Кожен ключ повинен бути довжиною 32 байти. |
8 - kube-apiserver Configuration (v1alpha1)
Пакет v1alpha1 — це версія API v1alpha1.
Типи ресурсів
- AdmissionConfiguration
- AuthenticationConfiguration
- AuthorizationConfiguration
- EgressSelectorConfiguration
- TracingConfiguration
TracingConfiguration
Зʼявляється в:
TracingConfiguration надає версійну конфігурацію для клієнтів OpenTelemetry tracing.
Поле | Опис |
---|---|
endpoint string | Endpoint колектора, куди цей компонент буде надсилати трасування. Зʼєднання є незахищеним і наразі не підтримує TLS. Рекомендується не вказувати, і використовувати стандартно otlp grpc localhost:4317. |
samplingRatePerMillion int32 | SamplingRatePerMillion — це кількість зразків, які потрібно збирати на мільйон проміжків. Рекомендується не вказувати. Якщо не вказано, зразок буде відповідати ставці зразка батьківського проміжку, але інакше ніколи не буде зібраний. |
AdmissionConfiguration
AdmissionConfiguration надає версійну конфігурацію для контролерів допуску.
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | AdmissionConfiguration |
plugins []AdmissionPluginConfiguration | Plugins дозволяє вказати конфігурацію для кожного втулка контролю допуску. |
AuthenticationConfiguration
AuthenticationConfiguration надає версійну конфігурацію для автентифікації.
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | AuthenticationConfiguration |
jwt [Обовʼязково][]JWTAuthenticator | jwt — це список автентифікаторів для автентифікації користувачів Kubernetes за допомогою JWT-сумісних токенів. Автентифікатор спробує розпарсити ID токен, перевірити, чи він підписаний налаштованим постачальником. Публічний ключ для перевірки підпису знаходиться на публічній точці доступу постачальника, використовуючи OIDC discovery. Для вхідного токена кожен JWT-автентифікатор буде спробований у порядку, в якому він зазначений у цьому списку. Зверніть увагу, що інші автентифікатори можуть запускатися до або після JWT-автентифікаторів. Специфічне розташування JWT-автентифікаторів відносно інших автентифікаторів не визначено і не є стабільним у різних версіях. Оскільки кожен JWT-автентифікатор повинен мати унікальний URL постачальника, в більшості випадків лише один JWT-автентифікатор спробує криптографічно перевірити токен. Мінімальне дійсне наповнення JWT повинно містити наступні вимоги:
|
AuthorizationConfiguration
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | AuthorizationConfiguration |
authorizers [Обовʼязково][]AuthorizerConfiguration | Authorizers — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорец --authorization-modes в kube-apiserver. Повинен бути принаймні один. |
EgressSelectorConfiguration
EgressSelectorConfiguration надає версійну конфігурацію для клієнтів вибору виходу
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | EgressSelectorConfiguration |
egressSelections [Обовʼязково][]EgressSelection | connectionServices містить список конфігурацій клієнтів вибору виходу. |
TracingConfiguration
TracingConfiguration надає версійну конфігурацію для клієнтів трасування.
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | TracingConfiguration |
TracingConfiguration [Обовʼязково]TracingConfiguration | (Члени TracingConfiguration вбудовані в цей тип.)Вбудувати структуру конфігурації трасування компонента. |
AdmissionPluginConfiguration
Зʼявляється в:
AdmissionPluginConfiguration надає конфігурацію для одного втулка.
Поле | Опис |
---|---|
name [Обовʼязково]string | Name — це імʼя контролера допуску. Воно повинно відповідати зареєстрованому імені втулка допуску. |
path string | Path — це шлях до конфігураційного файлу, що містить конфігурацію втулка. |
configuration k8s.io/apimachinery/pkg/runtime.Unknown | Configuration — це вбудований обʼєкт конфігурації, який буде використовуватися як конфігурація втулка. Якщо він присутній, він буде використовуватися замість шляху до конфігураційного файлу. |
AnonymousAuthCondition
Зʼявляється в:
AnonymousAuthCondition описує стан, за якого анонімні автентифікації мають бути увімкнені.
Поле | Опис |
---|---|
path [Обовʼязково]string | Шлях для якого увімкнено анонімну автентифікацію. |
AnonymousAuthConfig
Зʼявляється в:
AnonymousAuthConfig надає конфігурацію для анонімного автентифікатора.
Поле | Опис |
---|---|
enabled [Обовʼязково]bool | Опис не надано. |
conditions [Обовʼязково][]AnonymousAuthCondition | Якщо встановлено, анонімна автентифікація дозволена, тільки якщо запит відповідає одній з умов. |
AudienceMatchPolicyType
(Псевдонім для string
)
Зʼявляється в:
AudienceMatchPolicyType є набором допустимих значень для issuer.audienceMatchPolicy
AuthorizerConfiguration
Зʼявляється в:
Поле | Опис |
---|---|
type [Обовʼязково]string | Type визначає тип авторизатора. "Webhook" підтримується в загальному API-сервері. Інші API-сервери можуть підтримувати додаткові типи авторизаторів, такі як Node, RBAC, ABAC тощо. |
name [Обовʼязково]string | Name використовується для опису вебхука. Це явно використовується в механізмах моніторингу для метрик. Примітка: Імена повинні бути у форматі DNS1123, такі як |
webhook [Обовʼязково]WebhookConfiguration | Webhook визначає конфігурацію для вебхук-авторизатора. Повинна бути визначена, коли Type=Webhook. Не повинна бути визначена, коли Type!=Webhook. |
ClaimMappings
Зʼявляється в:
ClaimMappings надає конфігурацію для зіставлення заявок.
Поле | Опис |
---|---|
username [Обовʼязково]PrefixedClaimOrExpression | 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)'. У підході на основі прапорців, --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 PrefixedClaimOrExpression | groups представляє опцію для атрибута груп. Значення заявки повинно бути рядком або масивом рядків. Якщо встановлено groups.claim, префікс повинен бути зазначений (і може бути пустим рядком). Якщо встановлено groups.expression, вираз повинен повертати рядок або масив рядків. "" (пустий рядок), [] (пустий масив) і null значення трактуються як відсутність зіставлення груп. |
uid ClaimOrExpression | uid представляє опцію для атрибута uid. Заявка повинна бути єдиним рядком. Якщо встановлено uid.expression, вираз повинен повертати рядок. |
extra []ExtraMapping | extra представляє опцію для атрибута extra. вираз повинен повертати рядок або масив рядків. Якщо значення порожнє, відображення extra не буде присутнім. жорстко закодоване додаткові ключ/значення
жорстко закодований ключ копіює значення заявки
жорстко закодований ключ, значення, що походить від значення заявки
|
ClaimOrExpression
Зʼявляється в:
ClaimOrExpression надає конфігурацію для однієї заявки або виразу.
Поле | Опис |
---|---|
claim string | claim — це заявка JWT, яку потрібно використовувати. Або claim, або expression повинно бути встановлено. Взаємно виключаються в expression. |
expression string | expression представляє вираз, який буде оцінений CEL. Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Взаємно виключаються в claim. |
ClaimValidationRule
Зʼявляється в:
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:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Взаємно виключається в claim і requiredValue. |
message string | message налаштовує повернуте повідомлення про помилку, коли вираз повертає false. message є літеральним рядком. Взаємно виключається з claim і requiredValue. |
Connection
Зʼявляється в:
Connection надає конфігурацію для одного клієнта egress selection.
Поле | Опис |
---|---|
proxyProtocol [Обовʼязково]ProtocolType | proxyProtocol — це протокол, який використовується для підключення клієнта до сервера konnectivity. |
transport Transport | transport визначає конфігурації транспорту, які ми використовуємо для зʼєднання з сервером konnectivity. Це потрібно, якщо ProxyProtocol — HTTPConnect або GRPC. |
EgressSelection
Зʼявляється в:
EgressSelection надає конфігурацію для одного клієнта egress selection.
Поле | Опис |
---|---|
name [Обовʼязково]string | name — це назва egress selection. Підтримувані значення: "controlplane", "master", "etcd" та "cluster". "master" egress selector застарілий і замінений на "controlplane". |
connection [Обовʼязково]Connection | connection — це точна інформація, що використовується для налаштування egress selection. |
ExtraMapping
Зʼявляється в:
ExtraMapping надає конфігурацію для одного додаткового зіставлення.
Поле | Опис |
---|---|
key [Обовʼязково]string | key — це рядок, що використовується як ключ додаткового атрибуту. key повинен бути шляхом з префіксом домену (наприклад, example.org/foo). Усі символи перед першим "/" повинні бути дійсним піддоменом, як визначено у RFC 1123. Усі символи після першого "/" повинні бути дійсними символами шляху HTTP, як визначено у RFC 3986. key повинен бути у нижньому регістрі. Має бути унікальним. |
valueExpression [Обовʼязково]string | valueExpression — це вираз CEL для вилучення значення додаткового атрибуту. valueExpression повинен виробляти рядкове або масив рядкових значень. "", [], і null значення трактуються як відсутність додаткового зіставлення. Порожні рядкові значення, що містяться в масиві рядків, відфільтровуються. Вирази CEL мають доступ до вмісту заявок токена, організованих у змінній CEL:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ |
Issuer
Зʼявляється в:
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 AudienceMatchPolicyType | audienceMatchPolicy визначає, як поле "audiences" використовується для відповідності заявці "aud" у поданому JWT. Допустимі значення:
Для більш детальної перевірки аудиторій використовуйте claimValidationRules. приклад: claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])' для вимоги точної відповідності. |
JWTAuthenticator
Зʼявляється в:
JWTAuthenticator надає конфігурацію для одного автентифікатора JWT.
Поле | Опис |
---|---|
issuer [Обовʼязково]Issuer | issuer містить основні параметри підключення постачальника OIDC. |
claimValidationRules []ClaimValidationRule | claimValidationRules — це правила, які застосовуються для перевірки заявок токена для автентифікації користувачів. |
claimMappings [Обовʼязково]ClaimMappings | claimMappings вказує заявки токена, які будуть розглядатися як атрибути користувача. |
userValidationRules []UserValidationRule | userValidationRules - це правила, які застосовуються до кінцевого користувача перед завершенням автентифікації. Ці правила дозволяють застосовувати інваріанти до вхідних ідентичностей, такі як запобігання використанню префіксу system:, який зазвичай використовується компонентами Kubernetes. Правила перевірки поєднуються логічним AND і повинні всі повертати true для успішної перевірки. |
PrefixedClaimOrExpression
Зʼявляється в:
PrefixedClaimOrExpression надає конфігурацію для однієї префіксованої заявки або виразу.
Поле | Опис |
---|---|
claim string | claim — це заявка JWT для використання. Є взаємовиключою з expression. |
prefix string | prefix додається до значення заявки, щоб уникнути конфліктів з існуючими іменами. prefix повинен бути встановлений, якщо встановлена заявка, і може бути порожнім рядком. Взаємовиключається з expression. |
expression string | expression представляє вираз, який буде оцінюватися CEL. CEL вирази мають доступ до вмісту заявок токена, організованого в CEL змінну:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Є взаємовиключною з claim і prefix. |
ProtocolType
(Аліас string
)
Зʼявляється в:
ProtocolType — набір допустимих значень для Connection.ProtocolType
Transport
Зʼявляється в:
TCPTransport надає інформацію для зʼєднання з сервером konnectivity через TCP
Field | Description |
---|---|
url [Обовʼязково]string | URL — це місцезнаходження сервера konnectivity, до якого потрібно підʼєднатися. Наприклад, це може бути https://127.0.0.1:8131" |
tlsConfig TLSConfig | TLSConfig — конфігурація, необхідна для використання TLS при підключенні до сервера konnectivity |
TLSConfig
Зʼявляється в:
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:// |
Transport
Зʼявляється в:
Transport визначає конфігурації транспорту, які ми використовуємо для підключення до konnectivity server.
Поле | Опис |
---|---|
tcp TCPTransport | TCP — це конфігурація TCP для звʼязку з konnectivity server через TCP. ProxyProtocol з GRPC наразі не підтримується з TCP транспортом. Потрібно налаштувати принаймні один з TCP або UDS. |
uds UDSTransport | UDS — це конфігурація UDS для звʼязку з konnectivity server через UDS. Потрібно налаштувати принаймні один з TCP або UDS. |
UDSTransport
Зʼявляється в:
UDSTransport надає інформацію для підключення до konnectivity server через UDS.
Поле | Опис |
---|---|
udsName [Обовʼязкове]string | UDSName — це назва unix domain socket для підключення до konnectivity server. Це не використовує префікс unix://. (Наприклад: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket) |
UserValidationRule
Зʼявляється в:
UserValidationRule надає конфігурацію для одного правила перевірки інформації про користувача.
Поле | Опис |
---|---|
expression [Обовʼязкове]string | expression представляє вираз, який буде оцінюватися CEL. Повинен повернути true, щоб перевірка пройшла успішно. CEL вирази мають доступ до вмісту UserInfo, організованого в CEL змінну:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ |
message string | message налаштовує повернуте повідомлення про помилку, коли правило повертає false. message є літеральним рядком. |
WebhookConfiguration
Зʼявляється в:
Поле | Опис |
---|---|
authorizedTTL [Обовʼязкове]meta/v1.Duration | Тривалість кешування відповідей "authorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця |
unauthorizedTTL [Обовʼязкове]meta/v1.Duration | Тривалість кешування відповідей "unauthorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця |
timeout [Обовʼязкове]meta/v1.Duration | Час очікування відповіді від вебхука Максимально дозволене значення — 30s. Обовʼязкове, стандартне значення відсутнє. |
subjectAccessReviewVersion [Обовʼязкове]string | Версія API authorization.k8s.io SubjectAccessReview, яку потрібно відправити та очікувати від вебхука. Те ж саме, що й встановлення прапорця |
matchConditionSubjectAccessReviewVersion [Обовʼязкове]string | MatchConditionSubjectAccessReviewVersion визначає версію SubjectAccessReview, яку використовують для оцінки виразів CEL. Дійсні значення: v1. Обовʼязкове, стандартне значення відсутнє |
failurePolicy [Обовʼязкове]string | Контролює рішення про авторизацію, коли запит вебхука не вдається завершити або повертає некоректну відповідь або помилки при оцінці matchConditions. Дійсні значення:
|
connectionInfo [Обовʼязкове]WebhookConnectionInfo | ConnectionInfo визначає, як ми спілкуємося з вебхуком |
matchConditions [Обовʼязкове][]WebhookMatchCondition | matchConditions — це список умов, які мають бути виконані, щоб запит було надіслано на цей вебхук. Порожній список matchConditions відповідає всім запитам. Максимально допустимо 64 умови відповідності. Точна логіка відповідності (в порядку):
|
WebhookConnectionInfo
Зʼявляється в:
Поле | Опис |
---|---|
type [Обовʼязкове]string | Контролює, як вебхук повинен спілкуватися з сервером. Дійсні значення:
|
kubeConfigFile [Обовʼязкове]string | Шлях до KubeConfigFile для інформації про підключення. Обовʼязково, якщо connectionInfo.Type є KubeConfig |
WebhookMatchCondition
Зʼявляється в:
Поле | Опис |
---|---|
expression [Обовʼязкове]string | expression представляє вираз, який буде оцінюватися за допомогою CEL. Повинен оцінюватися як bool. CEL вирази мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана в subjectAccessReviewVersion у змінній запиту, є v1beta1, вміст буде перетворено на версію v1 перед оцінкою виразу CEL. Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ |
9 - kube-apiserver Configuration (v1beta1)
Пакет v1beta1 є версією v1beta1 API.
Типи ресурсів
- AuthenticationConfiguration
- AuthorizationConfiguration
- EgressSelectorConfiguration
- TracingConfiguration
TracingConfiguration
З’являється в:
TracingConfiguration надає версійні налаштування для клієнтів трасування OpenTelemetry.
Поле | Опис |
---|---|
endpoint string | Точка доступу колектора, до якого цей компонент буде надсилати трасування. Зʼєднання є незахищеним і наразі не підтримує TLS. Рекомендовано не встановлювати, стандартна точка доступу для otlp grpc — localhost:4317. |
samplingRatePerMillion int32 | SamplingRatePerMillion — це кількість зразків для збору на мільйон відрізків. Рекомендовано не встановлювати. Якщо не задано, семплер дотримується частоти дискретизації батьківського діапазону а якщо ні, то ніколи не робить вибірки. |
AuthenticationConfiguration
AuthenticationConfiguration надає версійні налаштування для автентифікації.
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1beta1 |
kind string | AuthenticationConfiguration |
jwt [Обовʼязково][]JWTAuthenticator | jwt — це список автентифікаторів для автентифікації користувачів Kubernetes за допомогою токенів, що відповідають стандартам JWT. Автентифікатор спробує розібрати необроблений ID токен, перевірити, чи підписаний він налаштованим видавцем. Публічний ключ для перевірки підпису виявляється з публічної кінцевої точки видавця за допомогою OIDC discovery. Для вхідного токена кожен JWT автентифікатор буде спробуваний у порядку, в якому він зазначений у цьому списку. Однак зверніть увагу, що інші автентифікатори можуть працювати до або після JWT автентифікаторів. Конкретне положення JWT автентифікаторів щодо інших автентифікаторів не визначено і не стабільне між випусками. Оскільки кожен JWT автентифікатор повинен мати унікальний URL видавця, максимум один JWT автентифікатор спробує криптографічно перевірити токен. Мінімально допустимий JWT payload повинен містити наступні заявки:
|
anonymous [Обовʼязково]AnonymousAuthConfig | Якщо присутній --anonymous-auth не повинен бути встановлений |
AuthorizationConfiguration
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1beta1 |
kind string | AuthorizationConfiguration |
authorizers [Обовʼязково][]AuthorizerConfiguration | Authorizers — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорець — --authorization-modes kube-apiserver. Має бути принаймні один. |
EgressSelectorConfiguration
EgressSelectorConfiguration надає версійні налаштування для клієнтів вибору egress.
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1beta1 |
kind string | EgressSelectorConfiguration |
egressSelections [Обовʼязково][]EgressSelection | connectionServices містить список налаштувань клієнтів вибору egress. |
TracingConfiguration
TracingConfiguration надає версійні налаштування для клієнтів трасування.
Поле | Опис |
---|---|
apiVersion string | apiserver.k8s.io/v1beta1 |
kind string | TracingConfiguration |
TracingConfiguration [Обовʼязково]TracingConfiguration | (Елементи TracingConfiguration вбудовані в цей тип.)Вбудуйте структуру конфігурації трасування компонента. |
AnonymousAuthCondition
З’являється в:
AnonymousAuthCondition описує стан, за якого анонімні автентифікації мають бути увімкнені.
Поле | Опис |
---|---|
path [Обовʼязково]string | Шлях для якого увімкнено анонімну автентифікацію. |
AnonymousAuthConfig
З’являється в:
AnonymousAuthConfig надає конфігурацію для анонімного автентифікатора.
Поле | Опис |
---|---|
enabled [Обовʼязково]bool | Опис не надано. |
conditions [Обовʼязково][]AnonymousAuthCondition | Якщо встановлено, анонімна автентифікація дозволена, тільки якщо запит відповідає одній з умов. |
AudienceMatchPolicyType
(Аліас string
)
З’являється в:
AudienceMatchPolicyType — це набір допустимих значень для issuer.audienceMatchPolicy
AuthorizerConfiguration
З’являється в:
Поле | Опис |
---|---|
type [Обовʼязково]string | Тип відноситься до типу авторизатора "Webhook" підтримується у загальному API сервері Інші API сервери можуть підтримувати додаткові типи авторизаторів такі як Node, RBAC, ABAC і т.д. |
name [Обовʼязково]string | Імʼя, яке використовується для опису webhook Це явно використовується в моніторинговій машинерії для метрик Примітка: Імена повинні бути мітками DNS1123, такими як |
webhook [Обовʼязково]WebhookConfiguration | Webhook визначає налаштування для Webhook авторизатора Має бути визначено, коли Type=Webhook Не повинно бути визначено, коли Type!=Webhook |
ClaimMappings
З’являється в:
ClaimMappings надає налаштування для мапінгу claims.
Поле | Опис |
---|---|
username [Обовʼязково]PrefixedClaimOrExpression | 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)'. У підході на основі прапорів, прапорці --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 PrefixedClaimOrExpression | groups представляє опцію для атрибуту groups. Значення claim має бути рядком або масивом рядків. Якщо groups.claim встановлено, префікс повинен бути вказаний (і може бути порожнім рядком). Якщо groups.expression встановлено, вираз повинен видавати значення рядка або масиву рядків. "", [], і null значення розглядаються як відсутність мапінгу групи. |
uid ClaimOrExpression | uid представляє опцію для атрибуту uid. Claim повинен бути одним рядковим claim. Якщо uid.expression встановлено, вираз повинен видавати значення рядка. |
extra []ExtraMapping | extra представляє опцію для атрибуту extra. вираз повинен видавати значення рядка або масиву рядків. Якщо значення порожнє, мапінг extra не буде присутнім. жорстко закодований extra ключ/значення
жорстко закодований ключ, значення копіюється з значення claim
жорстко закодований ключ, значення виводиться з значення claim
|
ClaimOrExpression
З’являється в:
ClaimOrExpression надає налаштування для одного claim або виразу.
Поле | Опис |
---|---|
claim string | claim — це JWT claim для використання. Має бути встановлено або claim, або expression. Взаємовиключне з expression. |
expression string | expression представляє вираз, який буде оцінюватися за допомогою CEL. CEL вирази мають доступ до вмісту claims токену, організованих у CEL змінну:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Взаємовиключне з claim. |
ClaimValidationRule
З’являється в:
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:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Взаємовиключне з claim та requiredValue. |
message string | message налаштовує повідомлення про помилку, яке повертається, коли expression повертає false. message є літералним рядком. Взаємовиключне з claim та requiredValue. |
Connection
З’являється в:
Connection надає конфігурацію для одного клієнта вибору egress зʼєднання.
Поле | Опис |
---|---|
proxyProtocol [Обовʼязково]ProtocolType | Protocol — це протокол, який використовується для зʼєднання клієнта з konnectivity сервером. |
transport Transport | Transport визначає транспортні конфігурації, які ми використовуємо для зʼєднання з konnectivity сервером. Це обовʼязково, якщо ProxyProtocol — це HTTPConnect або GRPC. |
EgressSelection
З’являється в:
EgressSelection надає конфігурацію для одного клієнта вибору egress зʼєднання.
Поле | Опис |
---|---|
name [Обовʼязково]string | name — це назва вибору egress зʼєднання. На даний момент підтримуються значення "controlplane", "master", "etcd" та "cluster". Селекторо egress зʼєднання "master" застарілий і його рекомендується замінити на "controlplane". |
connection [Обовʼязково]Connection | connection — це точна інформація, яка використовується для налаштування вибору вихідного зʼєднання. |
ExtraMapping
З’являється в:
ExtraMapping надає конфігурацію для одного додаткового зіставлення.
Поле | Опис |
---|---|
key [Обовʼязково]string | key — це рядок, який використовується як ключ додаткового атрибуту. key повинен бути шляхом з префіксом домену (наприклад, example.org/foo). Усі символи перед першим "/" повинні бути дійсним субдоменом, як це визначено RFC 1123. Усі символи, що йдуть після першого "/", повинні бути дійсними символами шляху HTTP, як це визначено RFC 3986. key повинен бути написаний малими літерами. Має бути унікальним. |
valueExpression [Обовʼязково]string | valueExpression — це вираз CEL для отримання значення додаткового атрибуту. valueExpression повинен повертати значення рядка або масиву рядків. "", [], та null значення розглядаються як відсутність додаткового зіставлення. Порожні рядкові значення, що містяться у масиві рядків, відфільтровуються. Вирази CEL мають доступ до вмісту токенів, організованих у змінну CEL:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ |
Issuer
З’являється в:
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'. curl https://oidc.oidc-namespace/.well-known/openid-configuration (.discoveryURL поле)
|
certificateAuthority string | certificateAuthority містить сертифікати уповноважених органів, закодовані в PEM, які використовуються для перевірки зʼєднання під час отримання інформації про discovery. Якщо не встановлено, використовується системний перевіряльник. Таке саме значення, як і вміст файлу, на який посилається прапорець --oidc-ca-file. |
audiences [Обовʼязково][]string | audiences — це набір прийнятних аудиторій, для яких повинен бути виданий JWT. Щонайменше один з записів повинен відповідати вимозі "aud" у наданих JWT. Таке саме значення, як і прапорець --oidc-client-id (хоча це поле підтримує масив). Має бути непорожнім. |
audienceMatchPolicy AudienceMatchPolicyType | audienceMatchPolicy визначає, як поле "audiences" використовується для співставлення з вимогою "aud" у наданому JWT. Допустимі значення:
Для більш точного перевірки аудиторій використовуйте claimValidationRules. Приклад: claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])', щоб вимагати точного співпадіння. |
JWTAuthenticator
З’являється в:
JWTAuthenticator надає конфігурацію для одного JWT автентифікатора.
Поле | Опис |
---|---|
issuer [Обовʼязково]Issuer | issuer містить основні параметри підключення постачальника OIDC. |
claimValidationRules []ClaimValidationRule | claimValidationRules — це правила, які застосовуються для перевірки вимог токенів для автентифікації користувачів. |
claimMappings [Обовʼязково]ClaimMappings | claimMappings вказує вимоги токена, які слід вважати атрибутами користувача. |
userValidationRules []UserValidationRule | userValidationRules — це правила, які застосовуються до кінцевого користувача перед завершенням автентифікації. Ці правила дозволяють застосовувати інваріанти до вхідних ідентичностей, наприклад, забороняти використання префіксу system:, який зазвичай використовується компонентами Kubernetes. Правила перевірки логічно повʼязані оператором AND і всі повинні повернути true, щоб перевірка пройшла. |
PrefixedClaimOrExpression
З’являється в:
PrefixedClaimOrExpression надає конфігурацію для одного префіксованого вимоги або виразу.
Поле | Опис |
---|---|
claim string | claim — це JWT вимога для використання. Взаємовиключне з expression. |
prefix string | prefix додається до значення вимоги, щоб уникнути конфліктів з існуючими іменами. prefix необхідно встановити, якщо встановлено claim, і він може бути порожнім рядком. Взаємовиключне з expression. |
expression string | expression представляє вираз, який буде оцінюватися за допомогою CEL. CEL вирази мають доступ до вмісту вимог токену, організованого у змінну CEL:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Взаємовиключне з claim і prefix. |
TCPTransport
З’являється в:
TCPTransport надає інформацію для підключення до konnectivity серверу через TCP
Поле | Опис |
---|---|
url [Обовʼязково]string | URL є місцем розташування konnectivity серверу для підключення. Як приклад, це може бути "https://127.0.0.1:8131" |
tlsConfig TLSConfig | TLSConfig є конфігурацією, необхідною для використання TLS при підключенні до konnectivity серверу |
TLSConfig
З’являється в:
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:// |
Transport
З’являється в:
Transport визначає конфігурації транспорту, які ми використовуємо для зʼєднання з konnectivity сервером
Поле | Опис |
---|---|
tcp TCPTransport | TCP — це конфігурація TCP для звʼязку з konnectivity сервером через TCP. ProxyProtocol GRPC наразі не підтримується з TCP транспортом. Вимагає налаштування хоча б одного з TCP або UDS |
uds UDSTransport | UDS — це конфігурація UDS для звʼязку з konnectivity сервером ерез UDS. Вимагає налаштування хоча б одного з TCP або UDS |
UDSTransport
З’являється в:
UDSTransport надає інформацію для підключення до konnectivity серверу через UDS
Поле | Опис |
---|---|
udsName [Обовʼязкове]string | UDSName — це назва unix domain socket для підключення до konnectivity серверу. Не використовує префікс unix://. (Наприклад: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket) |
UserValidationRule
З’являється в:
UserValidationRule надає конфігурацію для одного правила валідації інформації про користувача.
Поле | Опис |
---|---|
expression [Обовʼязкове]string | expression представляє вираз, який буде оцінено за допомогою CEL. Має повернути true, щоб перевірка була успішною. CEL вирази мають доступ до вмісту UserInfo, організованого в CEL змінну:
Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ |
message string | message налаштовує повернуте повідомлення про помилку, коли правилоило повертає false. message є літеральним рядком. |
WebhookConfiguration
З’являється в:
Поле | Опис |
---|---|
authorizedTTL [Обовʼязкове]meta/v1.Duration | Тривалість кешування відповідей 'authorized' від webhook авторизатора. Те ж саме, що і встановлення |
unauthorizedTTL [Обовʼязкове]meta/v1.Duration | Тривалість кешування відповідей 'unauthorized' від webhook авторизатора. Те ж саме, що і встановлення |
timeout [Обовʼязкове]meta/v1.Duration | Тайм-аут для запиту webhook. Максимальне допустиме значення - 30s. Обовʼязкове, стандартного значення немає. |
subjectAccessReviewVersion [Обовʼязкове]string | Версія API authorization.k8s.io SubjectAccessReview, яка буде відправлена та очікувана від webhook. Те ж саме, що і встановлення |
matchConditionSubjectAccessReviewVersion [Обовʼязкове]string | MatchConditionSubjectAccessReviewVersion визначає версію SubjectAccessReview, для якої оцінюються CEL вирази. Допустимі значення: v1. Обовʼязкове, стандартного значення немає |
failurePolicy [Обовʼязкове]string | Контролює рішення про авторизацію, коли запит webhook не вдається завершити або повертає некоректну відповідь або помилки при оцінці matchConditions. Допустимі значення:
|
connectionInfo [Обовʼязкове]WebhookConnectionInfo | ConnectionInfo визначає, як ми спілкуємося з webhook |
matchConditions [Обовʼязкове][]WebhookMatchCondition | matchConditions — це список умов, які повинні бути виконані, щоб запит був відправлений на цей webhook. Порожній список matchConditions відповідає всім запитам. Максимум 64 умови відповідності дозволені. Точна логіка відповідності (у порядку):
|
WebhookConnectionInfo
З’являється в:
Поле | Опис |
---|---|
type [Обовʼязкове]string | Контролює, як webhook має спілкуватися з сервером. Допустимі значення:
|
kubeConfigFile [Обовʼязкове]string | Шлях до KubeConfigFile для інформації про зʼєднання. Обовʼязкове, якщо connectionInfo.Type — KubeConfig |
WebhookMatchCondition
З’являється в:
Поле | Опис |
---|---|
expression [Обовʼязкове]string | expression представляє вираз, який буде оцінюватися CEL. Повинен оцінюватися як bool. CEL вирази мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана у змінній запиту subjectAccessReviewVersion, є v1beta1, вміст буде конвертовано у версію v1 перед оцінкою виразу CEL. Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ |
10 - kube-controller-manager Configuration (v1alpha1)
Типи ресурсів
NodeControllerConfiguration
Зʼявляється у:
NodeControllerConfiguration містить елементи, що описують NodeController.
Поле | Опис |
---|---|
ConcurrentNodeSyncs [Обовʼязкове]int32 | ConcurrentNodeSyncs — це кількість процесів, які одночасно синхронізують вузли |
ServiceControllerConfiguration
Зʼявляється у:
ServiceControllerConfiguration містить елементи, що описують ServiceController.
Поле | Опис |
---|---|
ConcurrentServiceSyncs [Обовʼязкове]int32 | concurrentServiceSyncs — це кількість служб, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління службами, але більше навантаження на процесор (і мережу). |
CloudControllerManagerConfiguration
CloudControllerManagerConfiguration містить елементи, що описують cloud-controller manager.
Поле | Опис |
---|---|
apiVersion string | cloudcontrollermanager.config.k8s.io/v1alpha1 |
kind string | CloudControllerManagerConfiguration |
Generic [Обовʼязкове]GenericControllerManagerConfiguration | Generic містить конфігурацію для загального контролера-менеджера |
KubeCloudShared [Обовʼязкове]KubeCloudSharedConfiguration | KubeCloudSharedConfiguration містить конфігурацію для функцій, що використовуються як в cloud controller manager, так і в kube-controller manager. |
NodeController [Обовʼязкове]NodeControllerConfiguration | NodeController містить конфігурацію для функцій, повʼязаних з контролером вузлів. |
ServiceController [Обовʼязкове]ServiceControllerConfiguration | ServiceControllerConfiguration містить конфігурацію для функцій, повʼязаних з контролером служб. |
NodeStatusUpdateFrequency [Обовʼязкове]meta/v1.Duration | NodeStatusUpdateFrequency — це частота, з якою контролер оновлює статус вузлів |
Webhook [Обовʼязкове]WebhookConfiguration | Webhook — це конфігурація для вебхуків, розгорнутих в cloud-controller-manager |
CloudProviderConfiguration
Зʼявляється у:
CloudProviderConfiguration містить елементи, що описують постачальника хмарних послуг.
Поле | Опис |
---|---|
Name [Обовʼязкове]string | Name — це постачальник хмарних послуг. |
CloudConfigFile [Обовʼязкове]string | cloudConfigFile — це шлях до файлу конфігурації постачальника хмарних послуг. |
KubeCloudSharedConfiguration
Зʼявляється у:
KubeCloudSharedConfiguration містить елементи, які використовуються як kube-controller manager, так і cloud-controller manager, але не genericconfig.
Поле | Опис |
---|---|
CloudProvider [Обовʼязкове]CloudProviderConfiguration | CloudProviderConfiguration містить конфігурацію для функцій, повʼязаних з CloudProvider. |
ExternalCloudVolumePlugin [Обовʼязкове]string | externalCloudVolumePlugin вказує втулок, який використовувати, коли cloudProvider є "external". Наразі він використовується хмарними провайдерами з репо для керування вузлами та томами в KCM. |
UseServiceAccountCredentials [Обовʼязкове]bool | useServiceAccountCredentials вказує, чи повинні контролери працювати з окремими службовими обліковими даними. |
AllowUntaggedCloud [Обовʼязкове]bool | дозволяє запуск з непозначеними теґами хмарними екземплярами |
RouteReconciliationPeriod [Обовʼязкове]meta/v1.Duration | routeReconciliationPeriod — це період для узгодження маршрутів, створених для вузлів постачальником хмар. |
NodeMonitorPeriod [Обовʼязкове]meta/v1.Duration | nodeMonitorPeriod — це період для синхронізації NodeStatus в NodeController. |
ClusterName [Обовʼязкове]string | clusterName — це префікс екземпляра для кластеру. |
ClusterCIDR [Обовʼязкове]string | clusterCIDR — це CIDR-діапазон для Pods у кластері. |
AllocateNodeCIDRs [Обовʼязкове]bool | AllocateNodeCIDRs дозволяє виділяти CIDR для Podʼів і, якщо ConfigureCloudRoutes є true, налаштовувати їх на постачальнику хмар. |
CIDRAllocatorType [Обовʼязкове]string | CIDRAllocatorType визначає, який тип розподільника Pod CIDR буде використовуватися. |
ConfigureCloudRoutes [Обовʼязкове]bool | configureCloudRoutes дозволяє налаштовувати CIDR, виділені з allocateNodeCIDRs, на постачальнику хмар. |
NodeSyncPeriod [Обовʼязкове]meta/v1.Duration | nodeSyncPeriod — це період для синхронізації вузлів з постачальником хмар. Довші періоди зменшать кількість викликів до постачальника хмар, але можуть затримати додавання нових вузлів в кластер. |
WebhookConfiguration
Зʼявляється у:
WebhookConfiguration містить конфігурацію, повʼязану з вебхуками, розгорнутими в cloud-controller-manager.
Поле | Опис |
---|---|
Webhooks [Обовʼязкове][]string | Webhooks — це список вебхуків для активації або деактивації: '*' означає "всі стандартно активовані вебхуки" 'foo' означає "активувати 'foo'" '-foo' означає "деактивувати 'foo'" перший елемент для конкретного імені виграє |
LeaderMigrationConfiguration
Зʼявляється у:
ControllerLeaderConfiguration надає конфігурацію для блокування мігруючого лідера.
Поле | Опис |
---|---|
apiVersion string | controllermanager.config.k8s.io/v1alpha1 |
kind string | LeaderMigrationConfiguration |
leaderName [Обовʼязкове]string | LeaderName — це назва ресурсу вибору лідера, який захищає міграцію, наприклад, 1-20-KCM-to-1-21-CCM |
resourceLock [Обовʼязкове]string | ResourceLock вказує на тип обʼєкта ресурсу, який буде використовуватися для блокування. Має бути "leases" або "endpoints" |
controllerLeaders [Обовʼязкове][]ControllerLeaderConfiguration | ControllerLeaders містить список конфігурацій блокувань лідерів, які мігрують. |
ControllerLeaderConfiguration
Зʼявляється у:
ControllerLeaderConfiguration надає конфігурацію для блокування мігруючого лідера.
Поле | Опис |
---|---|
name [Обовʼязкове]string | Name — це назва контролера, що мігрує, наприклад, service-controller, route-controller, cloud-node-controller тощо |
component [Обовʼязкове]string | Component — це назва компонента, в якому контролер має працювати, наприклад, kube-controller-manager, cloud-controller-manager тощо. Або '*' означає, що контролер може працювати під будь-яким компонентом, який бере участь у міграції. |
GenericControllerManagerConfiguration
Зʼявляється у:
GenericControllerManagerConfiguration містить конфігурацію для загального контролер-менеджера.
Поле | Опис |
---|---|
Port [Обовʼязкове]int32 | port — це порт, на якому працює HTTP-сервіс контролера-менеджера. |
Address [Обовʼязкове]string | address — це IP-адреса для обслуговування (встановіть на 0.0.0.0 для всіх інтерфейсів). |
MinResyncPeriod [Обовʼязкове]meta/v1.Duration | minResyncPeriod — це період повторної синхронізації в рефлекторах; буде випадковим між minResyncPeriod і 2*minResyncPeriod. |
ClientConnection [Обовʼязкове]ClientConnectionConfiguration | ClientConnection визначає файл kubeconfig та налаштування зʼєднання клієнта для використання проксі-сервером при спілкуванні з apiserver. |
ControllerStartInterval [Обовʼязкове]meta/v1.Duration | Як довго чекати між запуском контролер-менеджерів. |
LeaderElection [Обовʼязкове]LeaderElectionConfiguration | leaderElection визначає конфігурацію клієнта вибору лідера. |
Controllers [Обовʼязкове][]string | Controllers — це список контролерів для активації або деактивації: '*' означає "всі контролери, що стандартно активовані" 'foo' означає "активувати 'foo'" '-foo' означає "деактивувати 'foo'" перший елемент для конкретного імені виграє |
Debugging [Обовʼязкове]DebuggingConfiguration | DebuggingConfiguration містить конфігурацію для функцій, повʼязаних з відлагодженням. |
LeaderMigrationEnabled [Обовʼязкове]bool | LeaderMigrationEnabled вказує, чи має бути увімкнена міграція лідера для контролер-менеджера. |
LeaderMigration [Обовʼязкове]LeaderMigrationConfiguration | LeaderMigration містить конфігурацію для міграції лідера. |
KubeControllerManagerConfiguration
KubeControllerManagerConfiguration містить елементи, що описують kube-controller manager.
Поле | Опис |
---|---|
apiVersion string | kubecontrollermanager.config.k8s.io/v1alpha1 |
kind string | KubeControllerManagerConfiguration |
Generic [Обовʼязкове]GenericControllerManagerConfiguration | Generic містить конфігурацію для загального контролера-менеджера |
KubeCloudShared [Обовʼязкове]KubeCloudSharedConfiguration | KubeCloudSharedConfiguration містить конфігурацію для спільних функцій як в cloud controller manager, так і в kube-controller manager. |
AttachDetachController [Обовʼязкове]AttachDetachControllerConfiguration | AttachDetachControllerConfiguration містить конфігурацію для функцій, повʼязаних з AttachDetachController. |
CSRSigningController [Обовʼязкове]CSRSigningControllerConfiguration | CSRSigningControllerConfiguration містить конфігурацію для функцій, повʼязаних з CSRSigningController. |
DaemonSetController [Обовʼязкове]DaemonSetControllerConfiguration | DaemonSetControllerConfiguration містить конфігурацію для функцій, повʼязаних з DaemonSetController. |
DeploymentController [Обовʼязкове]DeploymentControllerConfiguration | DeploymentControllerConfiguration містить конфігурацію для функцій, повʼязаних з DeploymentController. |
StatefulSetController [Обовʼязкове]StatefulSetControllerConfiguration | StatefulSetControllerConfiguration містить конфігурацію для функцій, повʼязаних з StatefulSetController. |
DeprecatedController [Обовʼязкове]DeprecatedControllerConfiguration | DeprecatedControllerConfiguration містить конфігурацію для деяких застарілих функцій. |
EndpointController [Обовʼязкове]EndpointControllerConfiguration | EndpointControllerConfiguration містить конфігурацію для функцій, повʼязаних з EndpointController. |
EndpointSliceController [Обовʼязкове]EndpointSliceControllerConfiguration | EndpointSliceControllerConfiguration містить конфігурацію для функцій, повʼязаних з EndpointSliceController. |
EndpointSliceMirroringController [Обовʼязкове]EndpointSliceMirroringControllerConfiguration | EndpointSliceMirroringControllerConfiguration містить конфігурацію для функцій, повʼязаних з EndpointSliceMirroringController. |
EphemeralVolumeController [Обовʼязкове]EphemeralVolumeControllerConfiguration | EphemeralVolumeControllerConfiguration містить конфігурацію для функцій, повʼязаних з EphemeralVolumeController. |
GarbageCollectorController [Обовʼязкове]GarbageCollectorControllerConfiguration | GarbageCollectorControllerConfiguration містить конфігурацію для функцій, повʼязаних з GarbageCollectorController. |
HPAController [Обовʼязкове]HPAControllerConfiguration | HPAControllerConfiguration містить конфігурацію для функцій, повʼязаних з HPAController. |
JobController [Обовʼязкове]JobControllerConfiguration | JobControllerConfiguration містить конфігурацію для функцій, повʼязаних з JobController. |
CronJobController [Обовʼязкове]CronJobControllerConfiguration | CronJobControllerConfiguration містить конфігурацію для функцій, повʼязаних з CronJobController. |
LegacySATokenCleaner [Обовʼязкове]LegacySATokenCleanerConfiguration | LegacySATokenCleanerConfiguration містить конфігурацію для функцій, повʼязаних з LegacySATokenCleaner. |
NamespaceController [Обовʼязкове]NamespaceControllerConfiguration | NamespaceControllerConfiguration містить конфігурацію для функцій, повʼязаних з NamespaceController. |
NodeIPAMController [Обовʼязкове]NodeIPAMControllerConfiguration | NodeIPAMControllerConfiguration містить конфігурацію для функцій, повʼязаних з NodeIPAMController. |
NodeLifecycleController [Обовʼязкове]NodeLifecycleControllerConfiguration | NodeLifecycleControllerConfiguration містить конфігурацію для функцій, повʼязаних з NodeLifecycleController. |
PersistentVolumeBinderController [Обовʼязкове]PersistentVolumeBinderControllerConfiguration | PersistentVolumeBinderControllerConfiguration містить конфігурацію для функцій, повʼязаних з PersistentVolumeBinderController. |
PodGCController [Обовʼязкове]PodGCControllerConfiguration | PodGCControllerConfiguration містить конфігурацію для функцій, повʼязаних з PodGCController. |
ReplicaSetController [Обовʼязкове]ReplicaSetControllerConfiguration | ReplicaSetControllerConfiguration містить конфігурацію для функцій, повʼязаних з ReplicaSet. |
ReplicationController [Обовʼязкове]ReplicationControllerConfiguration | ReplicationControllerConfiguration містить конфігурацію для функцій, повʼязаних з ReplicationController. |
ResourceQuotaController [Обовʼязкове]ResourceQuotaControllerConfiguration | ResourceQuotaControllerConfiguration містить конфігурацію для функцій, повʼязаних з ResourceQuotaController. |
SAController [Обовʼязкове]SAControllerConfiguration | SAControllerConfiguration містить конфігурацію для функцій, повʼязаних з ServiceAccountController. |
ServiceController [Обовʼязкове]ServiceControllerConfiguration | ServiceControllerConfiguration містить конфігурацію для функцій, повʼязаних з ServiceController. |
TTLAfterFinishedController [Обовʼязкове]TTLAfterFinishedControllerConfiguration | TTLAfterFinishedControllerConfiguration містить конфігурацію для функцій, повʼязаних з TTLAfterFinishedController. |
ValidatingAdmissionPolicyStatusController [Обовʼязкове]ValidatingAdmissionPolicyStatusControllerConfiguration | ValidatingAdmissionPolicyStatusControllerConfiguration містить конфігурацію для функцій, повʼязаних з ValidatingAdmissionPolicyStatusController. |
AttachDetachControllerConfiguration
Зʼявляється в:
AttachDetachControllerConfiguration містить елементи, що описують AttachDetachController.
Поле | Опис |
---|---|
DisableAttachDetachReconcilerSync [Обовʼязкове]bool | Reconciler виконує періодичний цикл для узгодження бажаного стану з фактичним станом, ініціюючи операції прикріплення/відкріплення. Цей прапорець включає або вимикає узгодження. Станадртне значення — false, отже, включено. |
ReconcilerSyncLoopPeriod [Обовʼязкове]meta/v1.Duration | ReconcilerSyncLoopPeriod — це період часу, протягом якого цикл узгодження станів чекає між наступними виконаннями. Стандартне знаячення — 60 секунд. |
disableForceDetachOnTimeout [Обовʼязкове]bool | DisableForceDetachOnTimeout вимикає примусове відкріплення, коли максимальний час розмонтування перевищено. Стандартне значення — false, отже, примусове відкріплення при відключенні увімкнено. |
CSRSigningConfiguration
Зʼявляється в:
CSRSigningConfiguration містить інформацію про конкретного підписувача CSR
Поле | Опис |
---|---|
CertFile [Обовʼязкове]string | certFile — це імʼя файлу, що містить PEM-кодований сертифікат X509 CA, який використовується для видачі сертифікатів |
KeyFile [Обовʼязкове]string | keyFile — це імʼя файлу, що містить PEM-кодований приватний ключ RSA або ECDSA, який використовується для видачі сертифікатів |
CSRSigningControllerConfiguration
Зʼявляється в:
CSRSigningControllerConfiguration містить елементи, що описують CSRSigningController.
Поле | Опис |
---|---|
ClusterSigningCertFile [Обовʼязкове]string | clusterSigningCertFile — це імʼя файлу, що містить PEM-кодований сертифікат X509 CA, використовується для видачі сертифікатів з обмеженням на кластер |
ClusterSigningKeyFile [Обовʼязкове]string | clusterSigningKeyFile — це імʼя файлу, що містить PEM-кодований приватний ключ RSA або ECDSA, який використовується для видачі сертифікатів з обмеженням на кластер |
KubeletServingSignerConfiguration [Обовʼязкове]CSRSigningConfiguration | kubeletServingSignerConfiguration містить сертифікат і ключ, які використовуються для видачі сертифікатів для kubernetes.io/kubelet-serving |
KubeletClientSignerConfiguration [Обовʼязкове]CSRSigningConfiguration | kubeletClientSignerConfiguration містить сертифікат і ключ, які використовуються для видачі сертифікатів для kubernetes.io/kube-apiserver-client-kubelet |
KubeAPIServerClientSignerConfiguration [Обовʼязкове]CSRSigningConfiguration | kubeAPIServerClientSignerConfiguration містить сертифікат і ключ, які використовуються для видачі сертифікатів для kubernetes.io/kube-apiserver-client |
LegacyUnknownSignerConfiguration [Обовʼязкове]CSRSigningConfiguration | legacyUnknownSignerConfiguration містить сертифікат і ключ, які використовуються для видачі сертифікатів для kubernetes.io/legacy-unknown |
ClusterSigningDuration [Обовʼязкове]meta/v1.Duration | clusterSigningDuration — це максимальний період дії сертифікатів, які видаються. Окремі CSR можуть запитувати коротші сертифікати, встановлюючи spec.expirationSeconds. |
CronJobControllerConfiguration
Зʼявляється в:
CronJobControllerConfiguration містить елементи, що описують CronJobController.
Поле | Опис |
---|---|
ConcurrentCronJobSyncs [Обовʼязкове]int32 | concurrentCronJobSyncs — це кількість обʼєктів job, які дозволено синхронізувати одночасно. Більше число = більш швидка реакція job, але більше навантаження на CPU (і мережу). |
DaemonSetControllerConfiguration
Зʼявляється в:
DaemonSetControllerConfiguration містить елементи, що описують DaemonSetController.
Поле | Опис |
---|---|
ConcurrentDaemonSetSyncs [Обовʼязкове]int32 | concurrentDaemonSetSyncs — це кількість обʼєктів daemonset, які дозволено синхронізувати одночасно. Більше число = більш швидка реакція daemonset, але більше навантаження на CPU (і мережу). |
DeploymentControllerConfiguration
Зʼявляється в:
DeploymentControllerConfiguration містить елементи, що описують DeploymentController.
Поле | Опис |
---|---|
ConcurrentDeploymentSyncs [Обовʼязкове]int32 | concurrentDeploymentSyncs — це кількість обʼєктів deployment, які дозволено синхронізувати одночасно. Більше число = більш швидка реакція deployments, але більше навантаження на CPU (і мережу). |
DeprecatedControllerConfiguration
Зʼявляється в:
DeprecatedControllerConfiguration містить елементи, що мають бути застарілими.
EndpointControllerConfiguration
Зʼявляється в:
EndpointControllerConfiguration містить елементи, що описують EndpointController
Поле | Опис |
---|---|
ConcurrentEndpointSyncs [Обовʼязкове]int32 | concurrentEndpointSyncs — це кількість операцій синхронізації точок доступу, які будуть виконуватись одночасно. Більше число = швидше оновлення, але більше навантаження на CPU (і мережу). |
EndpointUpdatesBatchPeriod [Обовʼязкове]meta/v1.Duration | EndpointUpdatesBatchPeriod описує тривалість періоду пакетного оновлення точок доступу. Обробка змін у pod буде затримана на цей час, щоб обʼєднати їх з потенційними майбутніми оновленнями та зменшити загальну кількість оновлень точок доступу. |
EndpointSliceControllerConfiguration
Зʼявляєтсья в:
EndpointSliceControllerConfiguration містить елементи, що описують EndpointSliceController.
Поле | Опис |
---|---|
ConcurrentServiceEndpointSyncs [Обовʼязкове]int32 | concurrentServiceEndpointSyncs — це кількість операцій синхронізації точок доступу сервісу, які будуть виконуватись одночасно. Більше число = швидше оновлення EndpointSlice, але більше навантаження на CPU (і мережу). |
MaxEndpointsPerSlice [Обовʼязкове]int32 | maxEndpointsPerSlice — максимальна кількість точок доступу, які будуть додані до одного EndpointSlice. Більше точок доступу на один slice призведе до меншої кількості та більших за розміром endpoint slices, але більших ресурсів. |
EndpointUpdatesBatchPeriod [Обовʼязкове]meta/v1.Duration | EndpointUpdatesBatchPeriod описує тривалість періоду пакетного оновлення точок доступу. Обробка змін у pod буде затримана на цей час, щоб обʼєднати їх з потенційними майбутніми оновленнями та зменшити загальну кількість оновлень точок доступу. |
EndpointSliceMirroringControllerConfiguration
Зʼявляється в:
EndpointSliceMirroringControllerConfiguration містить елементи, що описують EndpointSliceMirroringController.
Поле | Опис |
---|---|
MirroringConcurrentServiceEndpointSyncs [Обовʼязкове]int32 | mirroringConcurrentServiceEndpointSyncs — це кількість операцій синхронізації точок доступу сервісу, які будуть виконуватись одночасно. Більше число = швидше оновлення EndpointSlice, але більше навантаження на CPU (і мережу). |
MirroringMaxEndpointsPerSubset [Обовʼязкове]int32 | mirroringMaxEndpointsPerSubset — максимальна кількість точок доступу, які будуть відображені в EndpointSlice для одного EndpointSubset. |
MirroringEndpointUpdatesBatchPeriod [Обовʼязкове]meta/v1.Duration | mirroringEndpointUpdatesBatchPeriod можна використовувати для пакетного оновлення EndpointSlice. Усі оновлення, викликані змінами в EndpointSlice, будуть затримані до 'mirroringEndpointUpdatesBatchPeriod'. Якщо інші адреси в тому ж ресурсі Endpoints зміняться в цей період, вони будуть обʼєднані в одне оновлення EndpointSlice. Стандартне значення 0 означає, що кожне оновлення Endpoints викликає оновлення EndpointSlice. |
EphemeralVolumeControllerConfiguration
Зʼявляєтсья в:
EphemeralVolumeControllerConfiguration містить елементи, що описують EphemeralVolumeController.
Поле | Опис |
---|---|
ConcurrentEphemeralVolumeSyncs [Обовʼязкове]int32 | ConcurrentEphemeralVolumeSyncs — це кількість операцій синхронізації ефемерних томів, які будуть виконуватись одночасно. Більше число = швидше оновлення ефемерних томів, але більше навантаження на CPU (і мережу). |
GarbageCollectorControllerConfiguration
Зʼявляється в:
GarbageCollectorControllerConfiguration містить елементи, що описують GarbageCollectorController.
Поле | Опис |
---|---|
EnableGarbageCollector [Обовʼязкове]bool | Увімкнення загального збирача сміття. ПОВИННО бути синхронізовано з відповідним прапорцем kube-apiserver. УВАГА: загальний збирач сміття є альфа-функцією. |
ConcurrentGCSyncs [Обовʼязкове]int32 | ConcurrentGCSyncs — це кількість процесів збирача сміття, які дозволяється синхронізувати одночасно. |
GCIgnoredResources [Обовʼязкове][]GroupResource | gcIgnoredResources — це список GroupResources, які збирач сміття має ігнорувати. |
GroupResource
Зʼявляється в:
GroupResource описує груповий ресурс.
Поле | Опис |
---|---|
Group [Обовʼязкове]string | Group — це частина групи ресурсу GroupResource. |
Resource [Обовʼязкове]string | Resource — це частина ресурсу ресурсу GroupResource. |
HPAControllerConfiguration
Зʼявляється в:
HPAControllerConfiguration містить елементи, що описують HPAController.
Поле | Опис |
---|---|
ConcurrentHorizontalPodAutoscalerSyncs [Обовʼязкове]int32 | ConcurrentHorizontalPodAutoscalerSyncs — кількість обʼєктів HPA, які дозволено синхронізувати одночасно. Більше число = більш чутка обробка HPA, але більше навантаження на CPU (та мережу). |
HorizontalPodAutoscalerSyncPeriod [Обовʼязкове]meta/v1.Duration | HorizontalPodAutoscalerSyncPeriod — період для синхронізації кількості Podʼів в горизонтальному автомасштабувальнику Podʼів. |
HorizontalPodAutoscalerDownscaleStabilizationWindow [Обовʼязкове]meta/v1.Duration | HorizontalPodAutoscalerDownscaleStabilizationWindow — період, протягом якого автомасштабувальник буде переглядати і не зменшувати кількість Podʼів нижче будь-яких рекомендацій, зроблених протягом цього періоду. |
HorizontalPodAutoscalerTolerance [Обовʼязкове]float64 | HorizontalPodAutoscalerTolerance — допуск для ситуацій, коли використання ресурсів вказує на необхідність масштабування вгору/вниз. |
HorizontalPodAutoscalerCPUInitializationPeriod [Обовʼязкове]meta/v1.Duration | HorizontalPodAutoscalerCPUInitializationPeriod — період після запуску Podʼа, коли можуть бути пропущені проби CPU. |
HorizontalPodAutoscalerInitialReadinessDelay [Обовʼязкове]meta/v1.Duration | HorizontalPodAutoscalerInitialReadinessDelay — період після запуску Podʼа, протягом якого зміни готовності вважаються як готовність, що встановлюється вперше. Єдиний ефект цього — HPA буде ігнорувати проби CPU від неготових Podʼів, у яких остання зміна готовності відбулася під час цього періоду. |
JobControllerConfiguration
Зʼявляється в:
JobControllerConfiguration містить елементи, що описують JobController.
Поле | Опис |
---|---|
ConcurrentJobSyncs [Обовʼязкове]int32 | concurrentJobSyncs — кількість обʼєктів job, які дозволено синхронізувати одночасно. Більше число = більш чутка обробка job, але більше навантаження на CPU (та мережу). |
LegacySATokenCleanerConfiguration
Зʼявляється в:
LegacySATokenCleanerConfiguration містить елементи, що описують LegacySATokenCleaner
Поле | Опис |
---|---|
CleanUpPeriod [Обовʼязкове]meta/v1.Duration | CleanUpPeriod — період часу з моменту останнього використання автоматично згенерованого токена службового облікового запису перед тим, як його можна буде видалити. |
NamespaceControllerConfiguration
Зʼявляється в:
NamespaceControllerConfiguration містить елементи, що описують NamespaceController.
Поле | Опис |
---|---|
NamespaceSyncPeriod [Обовʼязкове]meta/v1.Duration | namespaceSyncPeriod — період для синхронізації оновлень життєвого циклу простору імен. |
ConcurrentNamespaceSyncs [Обовʼязкове]int32 | concurrentNamespaceSyncs — кількість обʼєктів простору імен, які можуть синхронізуватися одночасно. |
NodeIPAMControllerConfiguration
Зʼявляється в:
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 вузлів в двостековому кластері. |
NodeLifecycleControllerConfiguration
Зʼявляється в:
NodeLifecycleControllerConfiguration містить елементи, що описують NodeLifecycleController.
Поле | Опис |
---|---|
NodeEvictionRate [Обовʼязкове]float32 | nodeEvictionRate — кількість вузлів за секунду, на яких видаляються контейнери у разі збоїв вузла, коли зона є справною. |
SecondaryNodeEvictionRate [Обовʼязкове]float32 | secondaryNodeEvictionRate — кількість вузлів за секунду, на яких видаляються контейнери у разі збоїв вузла, коли зона є несправною. |
NodeStartupGracePeriod [Обовʼязкове]meta/v1.Duration | nodeStartupGracePeriod — період часу, протягом якого дозволяється, щоб вузол не відгукувався, перш ніж позначити його як несправний. |
NodeMonitorGracePeriod [Обовʼязкове]meta/v1.Duration | nodeMonitorGracePeriod — період часу, протягом якого дозволяється вузлу не відгукуватись, перш ніж позначити його як несправний. Має бути N разів більше, ніж nodeStatusUpdateFrequency kubeletʼа, де N означає кількість спроб, дозволених для kubelet для надсилання статусу вузла. |
PodEvictionTimeout [Обовʼязкове]meta/v1.Duration | podEvictionTimeout — період для належного видалення Podʼів на неактивних вузлах. |
LargeClusterSizeThreshold [Обовʼязкове]int32 | secondaryNodeEvictionRate явно перезаписується на 0 для кластерів, менших або рівних largeClusterSizeThreshold. |
UnhealthyZoneThreshold [Обовʼязкове]float32 | Зона вважається несправною в nodeEvictionRate та secondaryNodeEvictionRate, коли щонайменше unhealthyZoneThreshold (не менше 3) вузлів у зоні є NotReady. |
PersistentVolumeBinderControllerConfiguration
Зʼявляється в:
PersistentVolumeBinderControllerConfiguration містить елементи, що описують PersistentVolumeBinderController.
Поле | Опис |
---|---|
PVClaimBinderSyncPeriod [Обовʼязкове]meta/v1.Duration | pvClaimBinderSyncPeriod — період для синхронізації постійних томів та заявок на постійні томи. |
VolumeConfiguration [Обовʼязкове]VolumeConfiguration | volumeConfiguration містить конфігурацію для функцій, повʼязаних з томами. |
PersistentVolumeRecyclerConfiguration
Зʼявляється в:
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
Зʼявляється в:
PodGCControllerConfiguration містить елементи, що описують PodGCController.
Поле | Опис |
---|---|
TerminatedPodGCThreshold [Обовʼязкове]int32 | terminatedPodGCThreshold — кількість завершених Podʼів, які можуть існувати перед тим, як збирач сміття завершених почне видаляти завершені поди. Якщо <= 0, збирач сміття завершених Podʼів вимкнено. |
ReplicaSetControllerConfiguration
Зʼявляється в:
ReplicaSetControllerConfiguration містить елементи, що описують ReplicaSetController.
Поле | Опис |
---|---|
ConcurrentRSSyncs [Обовʼязкове]int32 | concurrentRSSyncs — кількість replica set, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління репліками, але більше завантаження на процесор (і мережу). |
ReplicationControllerConfiguration
Зʼявляється в:
ReplicationControllerConfiguration містить елементи, що описують ReplicationController.
Поле | Опис |
---|---|
ConcurrentRCSyncs [Обовʼязкове]int32 | concurrentRCSyncs — кількість контролерів реплікацій, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління репліками, але більше завантаження на процесор (і мережу). |
ResourceQuotaControllerConfiguration
Зʼявляєтсья в:
ResourceQuotaControllerConfiguration містить елементи, що описують ResourceQuotaController.
Поле | Опис |
---|---|
ResourceQuotaSyncPeriod [Обовʼязкове]meta/v1.Duration | resourceQuotaSyncPeriod — період для синхронізації статусу використання квоти в системі. |
ConcurrentResourceQuotaSyncs [Обовʼязкове]int32 | concurrentResourceQuotaSyncs — кількість ресурсних квот, які можуть синхронізуватися одночасно. Більше число = більш чутливе управління квотами, але більше завантаження на процесор (і мережу). |
SAControllerConfiguration
Зʼявляється в:
SAControllerConfiguration містить елементи, що описують ServiceAccountController.
Поле | Опис |
---|---|
ServiceAccountKeyFile [Обовʼязкове]string | serviceAccountKeyFile — імʼя файлу, що містить PEM-кодований приватний RSA-ключ, який використовується для підписання токенів службовиї облікових записів. |
ConcurrentSATokenSyncs [Обовʼязкове]int32 | concurrentSATokenSyncs — кількість операцій синхронізації токенів службових облікових записів які будуть виконуватись одночасно. |
RootCAFile [Обовʼязкове]string | rootCAFile — кореневий сертифікат центру сертифікації, який буде включено у секрет токена службових облікових записів. Це має бути дійсний PEM-кодований CA пакет. |
StatefulSetControllerConfiguration
Зʼявляється в:
StatefulSetControllerConfiguration містить елементи, що описують StatefulSetController.
Поле | Опис |
---|---|
ConcurrentStatefulSetSyncs [Обовʼязкове]int32 | concurrentStatefulSetSyncs — кількість обʼєктів StatefulSet, які дозволено синхронізувати одночасно. Більше число = більше чутливість statefulsets, але більше навантаження на ЦП (і мережу). |
TTLAfterFinishedControllerConfiguration
Зʼявляється в:
TTLAfterFinishedControllerConfiguration містить елементи, що описують TTLAfterFinishedController.
Поле | Опис |
---|---|
ConcurrentTTLSyncs [Обовʼязкове]int32 | concurrentTTLSyncs — кількість колекторів TTL-after-finished, які дозволено синхронізувати одночасно. |
ValidatingAdmissionPolicyStatusControllerConfiguration
Зʼявляється в:
ValidatingAdmissionPolicyStatusControllerConfiguration містить елементи, що описують ValidatingAdmissionPolicyStatusController.
Поле | Опис |
---|---|
ConcurrentPolicySyncs [Обовʼязкове]int32 | ConcurrentPolicySyncs — кількість обʼєктів політики, які дозволено синхронізувати одночасно. Більша кількість = швидше перевірка типів, але більше навантаження на ЦП (і мережу). Стандартне значення — 5. |
VolumeConfiguration
Зʼявляється в:
VolumeConfiguration містить усі перераховані прапорці, призначені для конфігурації всіх втулків томів. З цієї конфігурації бінарний файл controller-manager створить багато екземплярів volume.VolumeConfig, кожен з яких містить лише конфігурацію, необхідну для конкретного втулка, які потім передаються відповідному втулку. Бінарний файл ControllerManager є єдиною частиною коду, яка знає, які втулки підтримуються і які прапорці відповідають кожному втулку.
Поле | Опис |
---|---|
EnableHostPathProvisioning [Обовʼязкове]bool | enableHostPathProvisioning дозволяє створення PV HostPath при запуску без хмарного постачальника. Це дозволяє тестування та розробку функцій provisioning. HostPath provisioning не підтримується в жодному вигляді, не працює в кластері з кількома вузлами і не слід використовувати для нічого іншого, крім тестування або розробки. |
EnableDynamicProvisioning [Обовʼязкове]bool | enableDynamicProvisioning дозволяє створення томів при запуску в середовищі, яке підтримує динамічне створення. Стандартне значення — true. |
PersistentVolumeRecyclerConfiguration [Обовʼязкове]PersistentVolumeRecyclerConfiguration | persistentVolumeRecyclerConfiguration містить конфігурацію для втулків persistent volume. |
FlexVolumePluginDir [Обовʼязкове]string | volumePluginDir — це повний шлях до теки, в якій втулок flex volume має шукати додаткові сторонні втулки томів. |
11 - kube-proxy Configuration (v1alpha1)
Типи ресурсів
ClientConnectionConfiguration
Appears in:
ClientConnectionConfiguration містить деталі для створення клієнта.
Поле | Опис |
---|---|
kubeconfig [Обовʼязкове]string | kubeconfig — шлях до файлу KubeConfig. |
acceptContentTypes [Обовʼязкове]string | acceptContentTypes визначає заголовок Accept, що надсилається клієнтами при підключенні до сервера, переважаючи стандартне значення 'application/json'. Це поле контролює всі підключення до сервера, що використовуються конкретним клієнтом. |
contentType [Обовʼязкове]string | contentType — це тип вмісту, що використовується при надсиланні даних на сервер з цього клієнта. |
qps [Обовʼязкове]float32 | qps контролює кількість запитів на секунду, дозволених для цього зʼєднання. |
burst [Обовʼязкове]int32 | burst дозволяє накопичувати додаткові запити, коли клієнт перевищує свій поріг. |
DebuggingConfiguration
Appears in:
DebuggingConfiguration містить конфігурацію для функцій, повʼязаних із налагодженням.
Поле | Опис |
---|---|
enableProfiling [Обовʼязкове]bool | enableProfiling дозволяє профілювання через веб-інтерфейс за адресою host:port/debug/pprof/ |
enableContentionProfiling [Обовʼязкове]bool | enableContentionProfiling дозволяє профілювання блокувань, якщо enableProfiling встановлено в true. |
LeaderElectionConfiguration
Appears in:
LeaderElectionConfiguration визначає конфігурацію клієнтів вибору лідера для компонентів, які можуть працювати з увімкненим вибором лідера.
Поле | Опис |
---|---|
leaderElect [Обовʼязкове]bool | leaderElect дозволяє клієнту вибору лідера отримати лідерство перед виконанням основного циклу. Увімкніть це при запуску повторюваних компонентів для високої доступності. |
leaseDuration [Обовʼязкове]meta/v1.Duration | leaseDuration — це тривалість, яку не-лідери кандидати будуть чекати після спостереження за поновленням лідерства, перш ніж спробувати отримати лідерство замісць лідера, який не був поновлений. Це фактично максимальна тривалість, протягом якої лідер може бути зупинений перед заміною іншим кандидатом. Це застосовується тільки в разі увімкнення вибору лідера. |
renewDeadline [Обовʼязкове]meta/v1.Duration | renewDeadline — це інтервал між спробами діючого майстра поновити слот лідерства перед тим, як він перестане бути лідером. Це має бути менше або дорівнювати тривалості оренди. Це застосовується тільки в разі увімкнення вибору лідера. |
retryPeriod [Обовʼязкове]meta/v1.Duration | 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 є зіставленням імен функцій до булевих значень, які дозволяють або забороняють альфа/експериментальні функції. |
clientConnection [Обовʼязкове]ClientConnectionConfiguration | clientConnection вказує файл kubeconfig і налаштування зʼєднання клієнта для використання проксі-сервером при спілкуванні з apiserver. |
logging [Обовʼязкове]LoggingConfiguration | 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 — це версія, для якої ви хочете показати приховані метрики. |
mode [Обовʼязкове]ProxyMode | mode вказує, який режим проксі використовувати. |
iptables [Обовʼязкове]KubeProxyIPTablesConfiguration | iptables містить параметри конфігурації, що стосуються iptables. |
ipvs [Обовʼязкове]KubeProxyIPVSConfiguration | ipvs містить параметри конфігурації, що стосуються ipvs. |
nftables [Обовʼязкове]KubeProxyNFTablesConfiguration | nftables містить параметри конфігурації, що стосуються nftables. |
winkernel [Обовʼязкове]KubeProxyWinkernelConfiguration | winkernel містить параметри конфігурації, що стосуються winkernel. |
detectLocalMode [Обовʼязкове]LocalMode | detectLocalMode визначає режим, який використовується для виявлення локального трафіку, стандартно — ClusterCIDR |
detectLocal [Обовʼязкове]DetectLocalConfiguration | 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] |
conntrack [Обовʼязкове]KubeProxyConntrackConfiguration | conntrack містить параметри конфігурації, що стосуються conntrack. |
configSyncPeriod [Обовʼязкове]meta/v1.Duration | configSyncPeriod — це інтервал часу, через який конфігурація з apiserver оновлюється. Має бути більше 0. |
portRange [Обовʼязкове]string | portRange раніше використовувався для конфігурації проксі користувача, але тепер не використовується. |
windowsRunAsService [Обовʼязкове]bool | windowsRunAsService, якщо значення true, вмикає інтеграцію API диспетчера керування сервісами Windows. |
DetectLocalConfiguration
Зʼявляється у:
DetectLocalConfiguration містить необовʼязкові налаштування, що стосуються параметра DetectLocalMode
Поле | Опис |
---|---|
bridgeInterface [Обовʼязкове]string | bridgeInterface — це імʼя інтерфейсу моста (bridge). Коли DetectLocalMode встановлено в LocalModeBridgeInterface, kube-proxy буде вважати трафік локальним, якщо він походить з цього моста. |
interfaceNamePrefix [Обовʼязкове]string | interfaceNamePrefix — це префікс імені інтерфейсу. Коли DetectLocalMode встановлено в LocalModeInterfaceNamePrefix, kube-proxy буде вважати трафік локальним, якщо він походить з будь-якого інтерфейсу, чиє імʼя починається з цього префіксу. |
KubeProxyConntrackConfiguration
Зʼявляється у:
KubeProxyConntrackConfiguration містить налаштування conntrack для Kubernetes proxy server.
Поле | Опис |
---|---|
maxPerCore [Обовʼязкове]int32 | maxPerCore — максимальна кількість NAT зʼєднань, які слід відстежувати на однt процесорнt ядро (0 для того, щоб залишити обмеження без змін і проігнорувати min). |
min [Обовʼязкове]int32 | min — мінімальне значення записів connect-tracking, які слід виділити, незалежно від maxPerCore (встановіть maxPerCore=0, щоб залишити обмеження без змін). |
tcpEstablishedTimeout [Обовʼязкове]meta/v1.Duration | tcpEstablishedTimeout — як довго неактивне TCP зʼєднання буде зберігатися (наприклад, '2s'). Має бути більше 0 для встановлення. |
tcpCloseWaitTimeout [Обовʼязкове]meta/v1.Duration | tcpCloseWaitTimeout — як довго неактивний запис conntrack у стані CLOSE_WAIT залишиться в таблиці conntrack (наприклад, '60s'). Має бути більше 0 для встановлення. |
tcpBeLiberal [Обовʼязкове]bool | tcpBeLiberal, якщо true, kube-proxy налаштує conntrack для роботи в ліберальному режимі для TCP зʼєднань, і пакети з послідовними номерами за межами вікна не будуть позначені як INVALID. |
udpTimeout [Обовʼязкове]meta/v1.Duration | udpTimeout — як довго неактивний запис conntrack для UDP у стані UNREPLIED залишиться в таблиці conntrack (наприклад, '30s'). Має бути більше 0 для встановлення. |
udpStreamTimeout [Обовʼязкове]meta/v1.Duration | udpStreamTimeout — як довго неактивний запис conntrack для UDP у стані ASSURED залишиться в таблиці conntrack (наприклад, '300s'). Має бути більше 0 для встановлення. |
KubeProxyIPTablesConfiguration
Зʼявляється у:
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 [Обовʼязкове]meta/v1.Duration | syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0. |
minSyncPeriod [Обовʼязкове]meta/v1.Duration | minSyncPeriod — мінімальний період між повторними синхронізаціями правил iptables (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації iptables. |
KubeProxyIPVSConfiguration
Зʼявляється у:
KubeProxyIPVSConfiguration містить деталі конфігурації, що стосуються IPVS для Kubernetes proxy server.
Поле | Опис |
---|---|
syncPeriod [Обовʼязкове]meta/v1.Duration | syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0. |
minSyncPeriod [Обовʼязкове]meta/v1.Duration | 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 |
tcpTimeout [Обовʼязкове]meta/v1.Duration | tcpTimeout — значення тайм-ауту для неактивних IPVS TCP сесій. Стандартне значення — 0, що зберігає поточне значення тайм-ауту в системі. |
tcpFinTimeout [Обовʼязкове]meta/v1.Duration | tcpFinTimeout — значення тайм-ауту для IPVS TCP сесій після отримання FIN. Стандартне значення — 0, що зберігає поточне значення тайм-ауту в системі. |
udpTimeout [Обовʼязкове]meta/v1.Duration | udpTimeout — значення тайм-ауту для IPVS UDP пакетів. Стандартне значення — 0, що зберігає поточне значення тайм-ауту в системі. |
KubeProxyNFTablesConfiguration
Зʼявляється у:
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 [Обовʼязкове]meta/v1.Duration | syncPeriod — інтервал (наприклад, '5s', '1m', '2h22m'), що вказує, як часто виконуються різні операції повторної синхронізації та очищення. Має бути більше 0. |
minSyncPeriod [Обовʼязкове]meta/v1.Duration | minSyncPeriod — мінімальний період між повторними синхронізаціями правил iptables (наприклад, '5s', '1m', '2h22m'). Значення 0 означає, що кожна зміна Service або EndpointSlice призведе до негайної повторної синхронізації iptables. |
KubeProxyWinkernelConfiguration
Зʼявляється у:
KubeProxyWinkernelConfiguration містить налаштування Windows/HNS для Kubernetes proxy server.
Поле | Опис |
---|---|
networkName [Обовʼязкове]string | networkName — це імʼя мережі, яку kube-proxy використовуватиме для створення точок доступу і політик. |
sourceVip [Обовʼязкове]string | sourceVip — це IP-адреса джерела VIP точки доступу, яка використовується для NAT при балансуванні навантаження. |
enableDSR [Обовʼязкове]bool | enableDSR вказує kube-proxy, чи слід створювати HNS політики з DSR. |
rootHnsEndpointName [Обовʼязкове]string | rootHnsEndpointName — це імʼя hnsendpoint, яке прикріплене до l2bridge для кореневого простору мережі. |
forwardHealthCheckVip [Обовʼязкове]bool | forwardHealthCheckVip пересилає VIP сервісу для порту перевірки справності у Windows. |
LocalMode
(Аліас для string
)
Зʼявляється у:
LocalMode представляє режими для визначення локального трафіку з вузла.
ProxyMode
(Аліас для string
)
Зʼявляється у:
ProxyMode представляє режими, що використовуються сервером проксі Kubernetes.
На даний момент доступні два режими проксі на платформах Linux: 'iptables' та 'ipvs'. Один режим проксі доступний на платформах Windows: 'kernelspace'.
Якщо режим проксі не вказано, буде використано найкращий доступний режим проксі (на даний момент це iptables
в Linux і kernelspace
у Windows). Якщо вибраний режим проксі не може бути використаний (через відсутність підтримки в ядрі, відсутність компонентів користувацького простору тощо), kube-proxy вийде з помилкою.
12 - kube-scheduler Configuration (v1)
Типи ресурсів
- DefaultPreemptionArgs
- InterPodAffinityArgs
- KubeSchedulerConfiguration
- NodeAffinityArgs
- NodeResourcesBalancedAllocationArgs
- NodeResourcesFitArgs
- PodTopologySpreadArgs
- VolumeBindingArgs
ClientConnectionConfiguration
Зʼявляється у:
ClientConnectionConfiguration містить деталі для створення клієнта.
Поле | Опис |
---|---|
kubeconfig [Обовʼязкове]string | kubeconfig — шлях до файлу KubeConfig. |
acceptContentTypes [Обовʼязкове]string | acceptContentTypes визначає заголовок Accept, який надсилається клієнтами при підключенні до сервера, перевизначаючи стандатне значення 'application/json'. Це поле буде контролювати всі зʼєднання з сервером, що використовуються певним клієнтом. |
contentType [Обовʼязкове]string | contentType — тип вмісту, який використовується при надсиланні даних на сервер від цього клієнта. |
qps [Обовʼязкове]float32 | qps контролює кількість запитів на секунду, дозволених для цього зʼєднання. |
burst [Обовʼязкове]int32 | burst дозволяє накопичувати додаткові запити, коли клієнт перевищує свою норму. |
DebuggingConfiguration
Зʼявляється у:
DebuggingConfiguration містить конфігурацію для функцій, що повʼязані з налагодженням.
Поле | Опис |
---|---|
enableProfiling [Обовʼязкове]bool | enableProfiling увімкне профілювання через веб-інтерфейс host:port/debug/pprof/ |
enableContentionProfiling [Обовʼязкове]bool | enableContentionProfiling увімкне профілювання блокувань, якщо enableProfiling увімкнено. |
LeaderElectionConfiguration
Зʼявляється у:
LeaderElectionConfiguration визначає конфігурацію клієнтів вибору лідера для компонентів, які можуть працювати з увімкненим вибором лідера.
Поле | Опис |
---|---|
leaderElect [Обовʼязкове]bool | leaderElect увімкне клієнта вибору лідера для отримання лідерства перед виконанням основного циклу. Увімкніть це при запуску реплікованих компонентів для високої доступності. |
leaseDuration [Обовʼязкове]meta/v1.Duration | leaseDuration — це період часу, протягом якого кандидати, які не є лідерами, чекатимуть після поновлення лідерства, перш ніж спробувати зайняти лідерство в лідерському слоті, який вже зайнятий, але не поновлений. Це фактично максимальний термін, на який лідер може бути зупинений, перш ніж його замінить інший кандидат. Це може бути застосовано лише у випадку, якщо вибори лідера увімкнено. |
renewDeadline [Обовʼязкове]meta/v1.Duration | renewDeadline — це інтервал між спробами діючого лідера оновити слот лідерства перед тим, як він припинить лідирування. Це має бути менше або дорівнювати тривалості оренди. Це застосовно тільки тоді, коли вибір лідера увімкнено. |
retryPeriod [Обовʼязкове]meta/v1.Duration | 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 вузлам, якщо не вказано. |
InterPodAffinityArgs
InterPodAffinityArgs містить аргументи, які використовуються для налаштування втулка InterPodAffinity.
Поле | Опис |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1 |
kind string | InterPodAffinityArgs |
hardPodAffinityWeight [Обовʼязкове]int32 | HardPodAffinityWeight — це вага оцінки для наявних Podʼів з відповідною жорсткою спорідненністю до вхідного Podʼа. |
ignorePreferredTermsOfExistingPods [Обовʼязкове]bool | IgnorePreferredTermsOfExistingPods налаштовує планувальник ігнорувати бажані правила спорідненості наявних Podʼів при оцінці кандидатів вузлів, якщо вхідний Pod не має спорідненості між Podʼами. |
KubeSchedulerConfiguration
KubeSchedulerConfiguration налаштовує планувальник
Поле | Опис |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1 |
kind string | KubeSchedulerConfiguration |
parallelism [Обовʼязкове]int32 | Parallelism визначає кількість паралелізму в алгоритмах для планування Podʼів. Має бути більше 0. Стандартно — 16 |
leaderElection [Обовʼязкове]LeaderElectionConfiguration | LeaderElection визначає конфігурацію клієнта виборів лідера. |
clientConnection [Обовʼязкове]ClientConnectionConfiguration | ClientConnection визначає файл kubeconfig і налаштування підключення клієнта для використання проксі-сервером при спілкуванні з apiserver. |
DebuggingConfiguration [Обовʼязкове]DebuggingConfiguration | (Члени 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 [Обовʼязкове][]KubeSchedulerProfile | Profiles — це профілі планування, які підтримує kube-scheduler. Podʼи можуть вибрати, щоб їх планували за певним профілем, встановивши відповідну назву планувальника. Podʼи, які не вказують жодної назви планувальника, плануються за допомогою профілю "default-scheduler", якщо він присутній тут. |
extenders [Обовʼязкове][]Extender | Extenders — це список розширень планувальника, кожне з яких містить значення, як спілкуватися з розширенням. Ці розширення використовуються всіма профілями планувальника. |
delayCacheUntilActive [Обовʼязкове]bool | DelayCacheUntilActive визначає, коли починати кешування. Якщо це true і вибори лідера увімкнені, планувальник чекатиме, щоб заповнити кеші інформаторів, поки не стане лідером. Це призведе до повільнішого перемикання з резервного на основний вузол із перевагою нижчого використання пам’яті під час очікування стати лідером. Стандартно — false. |
NodeAffinityArgs
NodeAffinityArgs містить аргументи для налаштування втулка NodeAffinity.
Поле | Опис |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1 |
kind string | NodeAffinityArgs |
addedAffinity core/v1.NodeAffinity | AddedAffinity застосовується до всіх Podʼів додатково до NodeAffinity, вказаного в PodSpec. Тобто вузли повинні відповідати AddedAffinity І .spec.NodeAffinity. AddedAffinity є станадртно порожнім (є збіг зі всіма вузлами). Коли використовується AddedAffinity, деякі Podʼи з вимогами щодо спорідненості, які збігаються з конкретним вузлом (наприклад, Podʼи Daemonset), можуть залишатися непридатними для планування. |
NodeResourcesBalancedAllocationArgs
NodeResourcesBalancedAllocationArgs містить аргументи для налаштування втулка NodeResourcesBalancedAllocation.
Поле | Опис |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1 |
kind string | NodeResourcesBalancedAllocationArgs |
resources [Обовʼязково][]ResourceSpec | Ресурси, якими потрібно керувати, стандартно: "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". Імʼя групи ресурсів не може містити '/'. Це не застосовується до оцінювання. |
scoringStrategy [Обовʼязково]ScoringStrategy | ScoringStrategy вибирає стратегію оцінювання ресурсів вузлів. Стандартно використовується стратегія LeastAllocated з рівною вагою "cpu" та "memory". |
PodTopologySpreadArgs
PodTopologySpreadArgs містить аргументи для налаштування втулка PodTopologySpread.
Поле | Опис |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1 |
kind string | PodTopologySpreadArgs |
defaultConstraints []core/v1.TopologySpreadConstraint | DefaultConstraints визначає обмеження на розподіл топології, які будуть застосовані до Podʼів, що не мають визначених обмежень у |
defaultingType PodTopologySpreadConstraintsDefaulting | DefaultingType визначає, як виводяться .defaultConstraints. Може бути одним з "System" або "List".
Стандартно "System". |
VolumeBindingArgs
VolumeBindingArgs містить аргументи для налаштування втулка VolumeBinding.
Поле | Опис |
---|---|
apiVersion string | kubescheduler.config.k8s.io/v1 |
kind string | VolumeBindingArgs |
bindTimeoutSeconds [Обовʼязкове]int64 | BindTimeoutSeconds — це тайм-аут в секундах у операції привʼязки томів. Значення повинно бути невідʼємним цілим числом. Значення нуль означає, що немає очікування. Якщо це значення не вказано, буде використано стандартне значення (600). |
shape []UtilizationShapePoint | Shape вказує точки, що визначають форму функції оцінки, яка використовується для оцінки вузлів на основі використання статично наданих PV. Використання розраховується шляхом поділу загального запитаного обсягу сховища Podʼа на загальну ємність доступних PV на кожному вузлі. Кожна точка містить використання (у діапазоні від 0 до 100) та відповідну оцінку (у діапазоні від 0 до 10). Ви можете налаштувати пріоритет, вказуючи різні оцінки для різних рівнів використання. Стандартні точки Shape:
|
Extender
Зʼявляється в:
Extender містить параметри, що використовуються для звʼязку з розширювачем. Якщо дієслово не вказано/пусте, вважається, що розширювач вирішів не надавати це розширення.
Поле | Опис |
---|---|
urlPrefix [Обовʼязкове]string | URLPrefix за яким доступний розширювач |
filterVerb [Обовʼязкове]string | Дієслово для виклику фільтрації, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику фільтрації розширювача. |
preemptVerb [Обовʼязкове]string | Дієслово для виклику витіснення, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику витіснення розширювача. |
prioritizeVerb [Обовʼязкове]string | Дієслово для виклику пріоритезації, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику пріоритезації розширювача. |
weight [Обовʼязкове]int64 | Числовий множник для оцінок вузлів, які генерує виклик пріоритезації. Вага повинна бути додатним цілим числом |
bindVerb [Обовʼязкове]string | Дієслово для виклику привʼязки, порожнє, якщо не підтримується. Це дієслово додається до URLPrefix при виконанні виклику привʼязки розширювача. Якщо цей метод реалізовано розширювачем, це відповідальність розширювача привʼязати Pod до apiserver. Тільки один розширювач може реалізовувати цю функцію. |
enableHTTPS [Обовʼязкове]bool | EnableHTTPS вказує, чи слід використовувати https для звʼязку з розширювачем |
tlsConfig [Обовʼязкове]ExtenderTLSConfig | TLSConfig вказує налаштування транспортного рівня безпеки |
httpTimeout [Обовʼязкове]meta/v1.Duration | HTTPTimeout вказує тривалість тайм-ауту для виклику розширювача. Тайм-аут фільтрації призводить до невдалої спроби планування Podʼа. Тайм-аут пріоритезації ігнорується, пріоритети k8s/інших розширювачів використовуються для вибору вузла. |
nodeCacheCapable [Обовʼязкове]bool | NodeCacheCapable вказує, що розширювач здатний кешувати інформацію про вузли, отже, планувальник повинен надсилати лише мінімальну інформацію про придатні вузли, припускаючи, що розширювач вже кешував повні дані про всі вузли в кластері |
managedResources []ExtenderManagedResource | ManagedResources — це список розширених ресурсів, що керуються цим розширювачем.
|
ignorable [Обовʼязкове]bool | Ignorable вказує, чи можна ігнорувати розширювач, тобто планування не повинно не вдасться, якщо розширювач повертає помилку або недоступний. |
ExtenderManagedResource
Зʼявляється в:
ExtenderManagedResource описує аргументи розширених ресурсів, якими керує розширювач.
Поле | Опис |
---|---|
name [Обовʼязкове]string | Назва розширеного ресурсу. |
ignoredByScheduler [Обовʼязкове]bool | IgnoredByScheduler вказує, чи слід kube-scheduler ігнорувати цей ресурс при застосуванні предикатів. |
ExtenderTLSConfig
Зʼявляється в:
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 |
KubeSchedulerProfile
Зʼявляється в:
KubeSchedulerProfile є профілем планувальника.
Поле | Опис |
---|---|
schedulerName [Обовʼязкове]string | SchedulerName є імʼям планувальника, асоційованого з цим профілем. Якщо SchedulerName відповідає значенню "spec.schedulerName" Podʼа, то Pod буде плануватися з цим профілем. |
percentageOfNodesToScore [Обовʼязкове]int32 | PercentageOfNodesToScore є відсотком усіх вузлів, після знаходження яких, планувальник припиняє пошук більш придатних вузлів у кластері для запуску Podʼа. Це допомагає покращити продуктивність планувальника. Планувальник завжди намагається знайти принаймні "minFeasibleNodesToFind" придатних вузлів незалежно від значення цього прапорця. Наприклад, якщо розмір кластера становить 500 вузлів і значення цього прапорця становить 30, то планувальник припиняє пошук далі, як тільки знаходить 150 придатних вузлів. Коли значення 0, стандартно буде оцінено відсоток (5%–50% в залежності від розміру кластера) вузлів. Це матиме перевагу перед глобальним PercentageOfNodesToScore. Якщо це пусто, буде використано глобальний PercentageOfNodesToScore. |
plugins [Обовʼязкове]Plugins | Plugins визначають набір втулків, які мають бути увімкнені або вимкнені. Увімкнені втулки — це ті, які мають бути увімкнені додатково до стандартних втулків. Вимкнені втулки — це будь-які зі стандартних втулків, які мають бути вимкнені. Коли жоден увімкнений або вимкнений втулок не зазначений для точки розширення, будуть використані стандартні втулки для цієї точки розширення, якщо такі є. Якщо зазначено втулок QueueSort, то той самий втулок QueueSort та PluginConfig повинні бути зазначені для всіх профілів. |
pluginConfig [Обовʼязкове][]PluginConfig | PluginConfig є необовʼязковим набором параметрів для кожного втулка. Виключення конфігураційних аргументів для втулка є еквівалентним використанню стандартної конфігурації для цього втулка. |
Plugin
Зʼявляється в:
Plugin визначає імʼя втулка та його вагу, якщо це застосовується. Вага використовується лише для втулків типу Score.
Поле | Опис |
---|---|
name [Обовʼязкове]string | Name визначає імʼя втулка |
weight [Обовʼязкове]int32 | Weight визначає вагу втулка, використовується лише для втулків типу Score. |
PluginConfig
Зʼявляється в:
PluginConfig визначає аргументи, які повинні бути передані втулку під час ініціалізації. Втулок, який викликається на кількох точках розширення, ініціалізується один раз. Args можуть мати довільну структуру. Обробка цих аргументів залежить від самого втулка.
Поле | Опис |
---|---|
name [Обовʼязкове]string | Name визначає імʼя втулка, що конфігурується |
args [Обовʼязкове]k8s.io/apimachinery/pkg/runtime.RawExtension | Args визначає аргументи, що передаються втулкам під час ініціалізації. Args можуть мати довільну структуру. |
PluginSet
Зʼявляється в:
PluginSet визначає включені та виключені втулки для точки розширення. Якщо масив порожній, відсутній або nil, використовуватимуться стандартні втулки для цієї точки розширення.
Поле | Опис |
---|---|
enabled [Обовʼязкове][]Plugin | Enabled визначає втулки, які повинні бути активовані додатково до стандартних втулків. Якщо стандартний втулок також конфігуровано у файлі конфігурації планувальника, вага втулка буде перезаписана відповідно. Ці втулки викликаються після стандартних втулків і в тому ж порядку, як зазначено тут. |
disabled [Обовʼязкове][]Plugin | Disabled визначає стандартні втулки, які повинні бути вимкнені. Коли всі стандартні втулки потрібно вимкнути, слід надати масив, що містить лише один символ "*". |
Plugins
Зʼявляється в:
Plugins включає кілька точок розширення. Коли вони вказані, список втулків для конкретної точки розширення є єдиними активованими втулками. Якщо точка розширення пропущена з конфігурації, тоді використовуються стандартні втулки для цієї точки розширення. Активовані втулки викликаються в порядку, зазначеному тут, після стандартних втулків. Якщо їх потрібно викликати перед стандартними втулками, стандартні втулки повинні бути вимкнені і знову увімкнені тут у бажаному порядку.
Поле | Опис |
---|---|
preEnqueue [Обовʼязкове]PluginSet | PreEnqueue ` це список втулків, які повинні бути викликані перед додаванням Podʼів у чергу планування. |
queueSort [Обовʼязкове]PluginSet | QueueSort — це список втулків, які повинні бути викликані під час сортування Podʼів у черзі планування. |
preFilter [Обовʼязкове]PluginSet | PreFilter — це список втулків, які повинні бути викликані на точці розширення "PreFilter" фреймворку планування. |
filter [Обовʼязкове]PluginSet | Filter — це список втулків, які повинні бути викликані при фільтрації вузлів, що не можуть запустити Pod. |
postFilter [Обовʼязкове]PluginSet | PostFilter — це список втулків, які викликаються після фази фільтрації, але лише коли для Podʼа не були знайдені підходящі вузли. |
preScore [Обовʼязкове]PluginSet | PreScore — це список втулків, які викликаються перед оцінюванням. |
score [Обовʼязкове]PluginSet | Score — це список втулків, які повинні бути викликані при ранжуванні вузлів, які пройшли фазу фільтрації. |
reserve [Обовʼязкове]PluginSet | Reserve — це список втулків, які викликаються при резервуванні/анулюванні резервування ресурсів після того, як вузол призначений для запуску Podʼа. |
permit [Обовʼязкове]PluginSet | Permit — це список втулків, які контролюють привʼязування Podʼа. Ці втулки можуть запобігти або затримати привʼязування Podʼа. |
preBind [Обовʼязкове]PluginSet | PreBind — це список втулків, які повинні бути викликані перед привʼязуванням Podʼа. |
bind [Обовʼязкове]PluginSet | Bind — це список втулків, які повинні бути викликані на точці розширення "Bind" фреймворку планування. Планувальник викликає ці втулки по порядку. Планувальник пропускає решту цих втулків, як тільки один з них повертає успіх. |
postBind [Обовʼязкове]PluginSet | PostBind — це список втулків, які повинні бути викликані після успішного привʼязування Podʼа. |
multiPoint [Обовʼязкове]PluginSet | MultiPoint — це спрощений розділ конфігурації для активації втулків для всіх дійсних точок розширення. Втулки, активовані через MultiPoint, автоматично реєструються для кожної індивідуальної точки розширення, яку втулок реалізував. Вимкнення втулка через MultiPoint вимикає таку поведінку. Те ж саме стосується вимкнення "*" через MultiPoint (жоден стандартний втулок не буде автоматично зареєстрований). Втулки все ще можна вимкнути через їх окремі точки розширення. Що стосується пріоритету, конфігурація втулків дотримується цієї основної ієрархії
|
PodTopologySpreadConstraintsDefaulting
(Аліас для string
)
Зʼявляється в:
PodTopologySpreadConstraintsDefaulting визначає, як встановлювати стандартне значення для втулка PodTopologySpread.
RequestedToCapacityRatioParam
Зʼявляється в:
RequestedToCapacityRatioParam визначає параметри RequestedToCapacityRatio.
Поле | Опис |
---|---|
shape [Обовʼязково][]UtilizationShapePoint | Shape є списком точок, що визначають форму функції оцінки. |
ResourceSpec
Зʼявляється в:
ResourceSpec представляє один ресурс.
Поле | Опис |
---|---|
name [Обовʼязково]string | Назва ресурсу. |
weight [Обовʼязково]int64 | Вага ресурсу. |
ScoringStrategy
Зʼявляється в:
ScoringStrategy визначає ScoringStrategyType для втулка ресурсів вузла.
Поле | Опис |
---|---|
type [Обовʼязково]ScoringStrategyType | Тип обирає стратегію для виконання. |
resources [Обовʼязково][]ResourceSpec | Ресурси, які слід враховувати при оцінюванні. Стандартний набір ресурсів включає "cpu" та "memory" з однаковою вагою. Дозволені ваги від 1 до 100. Стандартна вага дорівнює 1, якщо не вказана або явно встановлена в 0. |
requestedToCapacityRatio [Обовʼязково]RequestedToCapacityRatioParam | Аргументи, специфічні для стратегії RequestedToCapacityRatio. |
ScoringStrategyType
(Аліас string
)
Зʼявляється в:
ScoringStrategyType визначає тип стратегії оцінювання, яка використовується у втулку NodeResourcesFit.
UtilizationShapePoint
Зʼявляється в:
UtilizationShapePoint представляє окрему точку функції пріоритету.
Поле | Опис |
---|---|
utilization [Обовʼязково]int32 | Utilization (вісь x). Дійсні значення від 0 до 100. Повністю використаний вузол відповідає 100. |
score [Обовʼязково]int32 | Оцінка, присвоєна даній утилізації (вісь y). Дійсні значення від 0 до 10. |
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 може містити декілька типів конфігурацій, розділених трьома тире (---).
kubeadm підтримує наступні типи конфігурацій:
apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration apiVersion: kubeadm.k8s.io/v1beta3 kind: JoinConfiguration
Щоб вивести стандартні значення для дій "init" і "join", скористайтеся наступними командами:
kubeadm config print init-defaults
kubeadm config print join-defaults
Перелік типів конфігурацій, які необхідно включити до конфігураційного файлу, залежить від дії, яку ви виконуєте (init
або join
), а також від параметрів конфігурації, які ви збираєтесь використовувати (стандартні або розширені налаштування).
Якщо деякі типи конфігурацій не передбачено або передбачено лише частково, kubeadm використовуватиме стандартні значення; стандартно kubeadm також забезпечує узгодженість значень між компонентами, коли це необхідно (наприклад, прапорець --cluster-cidr
на менеджері контролерів та clusterCIDR
у kube-proxy).
Користувачам завжди дозволено перевизначати стандартні значення, за винятком невеликої підгрупи налаштувань, що мають стосунок до безпеки (наприклад, примусово вмикати режим авторизації Node і RBAC на api-сервері).
Якщо користувач надасть типи конфігурації, які не очікуються для дії, яку ви виконуєте, kubeadm проігнорує ці типи і видасть попередження.
Типи конфігурації Kubeadm init
При виконанні kubeadm init з опцією --config можуть бути використані наступні типи конфігурацій: InitConfiguration, ClusterConfiguration, KubeProxyConfiguration, KubeletConfiguration, але тільки один з них поміж InitConfiguration та ClusterConfiguration є обовʼязковим.
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
bootstrapTokens:
...
nodeRegistration:
...
Тип InitConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm init є конфігурація токена завантажувача та всі параметри, специфічні для вузла, на якому виконується kubeadm, включно з ними:
- NodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
- LocalAPIEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі; використовуйте його, наприклад, для налаштування адреси оголошення сервера API.
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
networking:
...
etcd:
...
apiServer:
extraArgs:
...
extraVolumes:
...
...
Тип InitConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm init є конфігурація токена завантажувача та всі параметри, специфічні для вузла, на якому виконується kubeadm, включно з ними:
- NodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
- LocalAPIEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі; використовуйте його, наприклад, для налаштування адреси оголошення сервера API.
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
networking:
...
etcd:
...
apiServer:
extraArgs:
...
extraVolumes:
...
...
Тип ClusterConfiguration слід використовувати для налаштування параметрів всього кластера, включаючи налаштування для:
networking
, що містить конфігурацію мережевої топології кластера; використовуйте їх, наприклад, для налаштування підмережі Pod або підмережі сервісів.etcd
: використовуйте для налаштування локального etcd або для налаштування сервера API для використання зовнішнього кластера etcd.- конфігурації kube-apiserver, kube-scheduler, kube-controller-manager; використовуйте для налаштування компонентів панелі управління шляхом додавання індивідуальних налаштувань або перевизначення стандартних налаштувань kubeadm.
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
...
Тип KubeProxyConfiguration слід використовувати для зміни конфігурації, що передається екземплярам kube-proxy, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні значення.
Офіційну документацію про kube-proxy можна знайти на https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/ або https://pkg.go.dev/k8s.io/kube-proxy/config/v1alpha1#KubeProxyConfiguration.
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
...
Тип KubeletConfiguration слід використовувати для зміни конфігурацій, які буде передано всім екземплярам kubelet, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні налаштування.
Офіційну документацію про kubelet див. на https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/ або https://pkg.go.dev/k8s.io/kubelet/config/v1beta1#KubeletConfiguration.
Ось повністю заповнений приклад одного YAML-файлу, що містить декілька типів конфігурації для використання під час запуску kubeadm init
.
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
bootstrapTokens:
- token: "9a08jv.c0izixklcxtmnze7"
description: "kubeadm bootstrap token"
ttl: "24h"
- token: "783bde.3f89s0fje9f38fhf"
description: "another bootstrap token"
usages:
- authentication
- signing
groups:
- system:bootstrappers:kubeadm:default-node-token
nodeRegistration:
name: "ec2-10-100-0-1"
criSocket: "/var/run/dockershim.sock"
taints:
- key: "kubeadmNode"
value: "someValue"
effect: "NoSchedule"
kubeletExtraArgs:
v: 4
ignorePreflightErrors:
- IsPrivilegedUser
imagePullPolicy: "IfNotPresent"
localAPIEndpoint:
advertiseAddress: "10.100.0.1"
bindPort: 6443
certificateKey: "e6a2eb8581237ab72a4f494f30285ec12a9694d750b9785706a83bfcbbbd2204"
skipPhases:
- addon/kube-proxy
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
etcd:
# локальний або зовнішній etcd
local:
imageRepository: "registry.k8s.io"
imageTag: "3.2.24"
dataDir: "/var/lib/etcd"
extraArgs:
listen-client-urls: "http://10.100.0.1:2379"
serverCertSANs:
- "ec2-10-100-0-1.compute-1.amazonaws.com"
peerCertSANs:
- "10.100.0.1"
# external:
# endpoints:
# - "10.100.0.1:2379"
# - "10.100.0.2:2379"
# caFile: "/etcd/kubernetes/pki/etcd/etcd-ca.crt"
# certFile: "/etcd/kubernetes/pki/etcd/etcd.crt"
# keyFile: "/etcd/kubernetes/pki/etcd/etcd.key"
networking:
serviceSubnet: "10.96.0.0/16"
podSubnet: "10.244.0.0/24"
dnsDomain: "cluster.local"
kubernetesVersion: "v1.21.0"
controlPlaneEndpoint: "10.100.0.1:6443"
apiServer:
extraArgs:
authorization-mode: "Node,RBAC"
extraVolumes:
- name: "some-volume"
hostPath: "/etc/some-path"
mountPath: "/etc/some-pod-path"
readOnly: false
pathType: File
certSANs:
- "10.100.1.1"
- "ec2-10-100-0-1.compute-1.amazonaws.com"
timeoutForControlPlane: 4m0s
controllerManager:
extraArgs:
"node-cidr-mask-size": "20"
extraVolumes:
- name: "some-volume"
hostPath: "/etc/some-path"
mountPath: "/etc/some-pod-path"
readOnly: false
pathType: File
scheduler:
extraArgs:
bind-address: "10.100.0.1"
extraVolumes:
- name: "some-volume"
hostPath: "/etc/some-path"
mountPath: "/etc/some-pod-path"
readOnly: false
pathType: File
certificatesDir: "/etc/kubernetes/pki"
imageRepository: "registry.k8s.io"
clusterName: "example-cluster"
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
# параметри kubelet вказуються тут
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
# параметри kube-proxy вказуються тут
Типи конфігурації Kubeadm join
При виконанні kubeadm
join з опцією --config
слід вказати тип JoinConfiguration.
apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration
...
Тип JoinConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm join є метод виявлення, що використовується для доступу до інформації про кластер, а також всі налаштування, специфічні для вузла, на якому виконується kubeadm, включно з:
- nodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
- apiEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі.
Типи ресурсів
BootstrapToken
Зʼявляється в:
BootstrapToken описує один bootstrap токен, збережений як Secret у кластері
Поле | Опис |
---|---|
token [Обовʼязково]BootstrapTokenString |
|
description string |
|
ttl meta/v1.Duration |
|
expires meta/v1.Time |
|
usages []string |
|
groups []string |
|
BootstrapTokenString
Зʼявляється в:
BootstrapTokenString — це токен у форматі abcdef.abcdef0123456789
, який використовується як для валідації практичності API-сервера з погляду вузла, що приєднується, так і як метод автентифікації вузла на етапі завантаження
у фазі "kubeadm join". Цей токен є і повинен бути короткотривалим.
Поле | Опис |
---|---|
- [Обовʼязково]string | Опис відсутній. |
- [Обовʼязково]string | Опис відсутній. |
ClusterConfiguration
ClusterConfiguration містить конфігурацію для всього кластера kubeadm.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta3 |
kind string | ClusterConfiguration |
etcd Etcd |
|
networking Networking |
|
kubernetesVersion string |
|
controlPlaneEndpoint string |
|
apiServer APIServer |
|
controllerManager ControlPlaneComponent |
|
scheduler ControlPlaneComponent |
|
dns DNS |
|
certificatesDir string |
|
imageRepository string |
|
featureGates map[string]bool |
|
clusterName string | Назва кластера. |
InitConfiguration
InitConfiguration містить список елементів, специфічних для "kubeadm init"-тільки під час виконання. Тільки інформація kubeadm init
. Ці поля використовуються виключно під час першого запуску kubeadm init
. Після цього інформація в цих полях НЕ завантажується в kubeadm-config
ConfigMap, який використовується, наприклад, під час kubeadm upgrade
. Ці поля мають бути порожніми.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta3 |
kind string | InitConfiguration |
bootstrapTokens []BootstrapToken |
|
nodeRegistration NodeRegistrationOptions |
|
localAPIEndpoint APIEndpoint |
|
certificateKey string |
|
skipPhases []string |
|
patches Patches |
|
JoinConfiguration
JoinConfiguration містить елементи, що описують певний вузол.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta3 |
kind string | JoinConfiguration |
nodeRegistration NodeRegistrationOptions |
|
caCertPath string |
|
discovery [Обовʼязкове]Discovery |
|
controlPlane JoinControlPlane |
|
skipPhases []string |
|
patches Patches |
|
APIEndpoint
Зʼявляється в:
Структура APIEndpoint містить елементи екземпляра API сервера, розгорнутого на вузлі.
Поле | Опис |
---|---|
advertiseAddress string |
|
bindPort int32 |
|
APIServer
Зʼявляється в:
APIServer містить налаштування, необхідні для розгортання API сервера в кластері.
Поле | Опис |
---|---|
ControlPlaneComponent [Обовʼязкове]ControlPlaneComponent | (Члени ControlPlaneComponent вбудовані в цей тип.)
Опис відсутній. |
certSANs []string |
|
timeoutForControlPlane meta/v1.Duration |
|
BootstrapTokenDiscovery
Зʼявляється в:
BootstrapTokenDiscovery використовується для налаштування параметрів виявлення на основі маркера початкового завантаження.
Поле | Опис |
---|---|
token [Обовʼязкове]string |
|
apiServerEndpoint string |
|
caCertHashes []string |
|
unsafeSkipCAVerification bool |
|
ControlPlaneComponent
Зʼявляється в:
ControlPlaneComponent містить налаштування, спільні для компонентів панелі управління кластера.
Поле | Опис |
---|---|
extraArgs map[string]string |
|
extraVolumes []HostPathMount |
|
DNS
Зʼявляється в:
DNS визначає надбудовою DNS, що має використовуватися в кластері.
Поле | Опис |
---|---|
ImageMeta [Обовʼязкове]ImageMeta | (Члени ImageMeta вбудовані в цей тип.)
|
Discovery
Зʼявляється в:
Discovery визначає параметри для kubelet, які використовуються під час процесу TLS Bootstrap.
Поле | Опис |
---|---|
bootstrapToken BootstrapTokenDiscovery |
|
file FileDiscovery |
|
tlsBootstrapToken string |
|
timeout meta/v1.Duration |
|
Etcd
Зʼявляється в:
Etcd містить елементи, що описують конфігурацію Etcd.
Поле | Опис |
---|---|
local LocalEtcd |
|
external ExternalEtcd |
|
ExternalEtcd
Зʼявляється в:
ExternalEtcd описує зовнішній кластер etcd. Kubeadm не має знань про знаходження файлів сертифікатів, і вони повинні бути надані.
Поле | Опис |
---|---|
endpoints [Обовʼязково][]string |
|
caFile [Обовʼязково]string |
|
certFile [Обовʼязково]string |
|
keyFile [Обовʼязково]string |
|
FileDiscovery
Зʼявляється в:
FileDiscovery використовується для вказання файлу або URL до файлу kubeconfig, з якого завантажується інформація про кластер.
Поле | Опис |
---|---|
kubeConfigPath [Обовʼязково]string |
|
HostPathMount
Зʼявляється в:
HostPathMount містить елементи, що описують томи, які монтуються з хоста.
Поле | Опис |
---|---|
name [Обовʼязково]string |
|
hostPath [Обовʼязково]string |
|
mountPath [Обовʼязково]string |
|
readOnly bool |
|
pathType core/v1.HostPathType |
|
ImageMeta
Зʼявляється в:
ImageMeta дозволяє налаштувати образи, що використовуються для компонентів, які не походять з процесу випуску Kubernetes/Kubernetes
Поле | Опис |
---|---|
imageRepository string |
|
imageTag string |
|
JoinControlPlane
Зʼявляється в:
JoinControlPlane містить елементи, що описують додатковий екземпляр панелі управління, який потрібно розгорнути на приєднаному вузлі.
Поле | Опис |
---|---|
localAPIEndpoint APIEndpoint |
|
certificateKey string |
|
LocalEtcd
Зʼявляється в:
LocalEtcd описує, що kubeadm має запускати кластер etcd локально.
Поле | Опис |
---|---|
ImageMeta [Обовʼязкове]ImageMeta | (Члени ImageMeta інтегровані в цей тип.)
|
dataDir [Обовʼязкове]string |
|
extraArgs map[string]string |
|
serverCertSANs []string |
|
peerCertSANs []string |
|
Networking
Зʼявляється в:
Networking містить елементи, що описують конфігурацію мережі кластера.
Поле | Опис |
---|---|
serviceSubnet string |
|
podSubnet string |
|
dnsDomain string |
|
NodeRegistrationOptions
Зʼявляється в:
NodeRegistrationOptions містить поля, що стосуються реєстрації нової панелі управління або вузла в кластері, як через kubeadm init
, так і через kubeadm join
.
Поле | Опис |
---|---|
name string |
|
criSocket string |
|
taints [Обовʼязково][]core/v1.Taint |
|
kubeletExtraArgs map[string]string |
|
ignorePreflightErrors []string |
|
imagePullPolicy core/v1.PullPolicy |
|
Patches
Зʼявляється в:
Patches містить параметри, повʼязані з застосуванням патчів до компонентів, розгорнутих за допомогою kubeadm.
Поле | Опис |
---|---|
directory string |
|
14 - kubeadm Configuration (v1beta4)
Огляд
Пакунок v1beta4 визначає версію v1beta4 формату конфігураційного файлу kubeadm. Ця версія покращує формат v1beta3, виправляючи деякі незначні проблеми і додаючи кілька нових полів.
Список змін з версії v1beta3:
- TODO https://github.com/kubernetes/kubeadm/issues/2890
- Підтримуйте власні змінні оточення у компонентах панелі управління у розділі 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 під час ініціалізації кластера. Якщо пропустити повʼязані з ними етапи під час створення кластера, ці ж поля буде встановлено у значенняfalse
. - Додано поле
nodeRegistration.imagePullSerial
уInitConfiguration
таJoinConfiguration
, за допомогою якого можна контролювати, чи kubeadm витягує образи послідовно або паралельно. - API kubeadm
UpgradeConfiguration
тепер підтримується у v1beta4 при передачі--config
до командkubeadm upgrade
. Використання конфігурації компонентів дляkubelet
таkube-proxy
,InitConfiguration
таClusterConfiguration
є застарілим і буде проігноровано при передачі--config
до командupgrade
. - Додано структуру
Timeouts
доInitConfiguration
,JoinConfiguration
,ResetConfiguration
таUpgradeConfiguration
, яку можна використовувати для налаштування різних тайм-аутів. - Додано поля
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.
- TODO: https://github.com/kubernetes/kubeadm/issues/2890 додати версію, яку можна використовувати для конвертації у v1beta4
Основи
Найкращим способом налаштування kubeadm є передача конфігураційного файлу у форматі YAML з опцією --config
. Деякі з параметрів конфігурації, визначених у конфігураційному файлі kubeadm, також доступні як прапорці командного рядка, але цей спосіб підтримує лише найпоширеніші/найпростіші випадки використання.
Конфігураційний файл kubeadm може містити декілька типів конфігурацій, розділених трьома тире (---
).
kubeadm підтримує наступні типи конфігурацій:
apiVersion: kubeadm.k8s.io/v1beta4
kind: InitConfiguration
apiVersion: kubeadm.k8s.io/v1beta4
kind: ClusterConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
apiVersion: kubeadm.k8s.io/v1beta4
kind: JoinConfiguration
apiVersion: kubeadm.k8s.io/v1beta4
kind: ResetConfiguration
apiVersion: kubeadm.k8s.io/v1beta4
kind: UpgradeConfiguration
Для виведення стандартних значень для дій init
та join
скористайтеся наступними командами:
kubeadm config print init-defaults
kubeadm config print join-defaults
kubeadm config print reset-defaults
kubeadm config print upgrade-defaults
Перелік типів конфігурацій, які необхідно включити до конфігураційного файлу, залежить від дії, яку ви виконуєте (init
або join
), а також від параметрів конфігурації, які ви збираєтеся використовувати (стандартні або розширені налаштування).
Якщо деякі типи конфігурацій не передбачено або передбачено лише частково, kubeadm використовуватиме стандартні значення; стандартне налаштування kubeadm включає також забезпечення узгодженості значень між компонентами, коли це необхідно (наприклад, прапорець --cluster-cidr
на менеджері контролерів та clusterCIDR
на kube-proxy).
Користувачам завжди дозволено перевизначати стандартні значення, за винятком невеликої підгрупи налаштувань, що мають відношення до безпеки (наприклад, включення режиму авторизації Node і RBAC на api-сервері).
Якщо користувач надасть типи конфігурації, які не очікуються для дії, яку ви виконуєте, kubeadm проігнорує ці типи та виведе попередження.
Типи конфігурацій Kubeadm init
При виконанні kubeadm init з опцією --config
можуть бути використані наступні типи конфігурацій: InitConfiguration, ClusterConfiguration, KubeProxyConfiguration, KubeletConfiguration, але тільки один з них між InitConfiguration і ClusterConfiguration є обовʼязковим.
apiVersion: kubeadm.k8s.io/v1beta4
kind: InitConfiguration
bootstrapTokens:
...
nodeRegistration:
...
Тип InitConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm init є конфігурація токена завантажувача та всі параметри, специфічні для вузла, на якому виконується kubeadm, включно з:
- NodeRegistration, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).
- LocalAPIEndpoint, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі; використовуйте його, наприклад, для налаштування адреси оголошень сервера API.
apiVersion: kubeadm.k8s.io/v1beta4
kind: ClusterConfiguration
networking:
...
etcd:
...
apiServer:
extraArgs:
...
extraVolumes:
...
...
Тип ClusterConfiguration слід використовувати для налаштування параметрів всього кластера, включаючи налаштування для:
networking
, що зберігає конфігурацію мережевої топології кластера; використовуйте його, наприклад, для налаштування підмережі Pod або підмережі сервісів.etcd
: використовуйте його, наприклад, для налаштування локального etcd або для налаштування сервера API для використання зовнішнього кластера etcd.- конфігурації kube-apiserver, kube-scheduler, kube-controller-manager; використовуйте його для налаштування компонентів панелі управління, додаючи індивідуальні налаштування або перевизначаючи стандартні налаштування kubeadm.
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
...
Тип KubeProxyConfiguration слід використовувати для зміни конфігурації, що передається екземплярам kube-proxy, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні значення.
Офіційну документацію про kube-proxy можна знайти на https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/ або https://pkg.go.dev/k8s.io/kube-proxy/config/v1alpha1#KubeProxyConfiguration.
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
...
Тип KubeletConfiguration слід використовувати для зміни конфігурацій, які буде передано всім екземплярам kubelet, розгорнутим у кластері. Якщо цей обʼєкт не надано або надано лише частково, kubeadm застосовує стандартні налаштування.
Офіційну документацію про kubelet можна знайти на https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/ або https://pkg.go.dev/k8s.io/kubelet/config/v1beta1#KubeletConfiguration.
Ось повністю заповнений приклад одного YAML-файлу, що містить декілька типів конфігурації для використання під час запуску kubeadm init
.
apiVersion: kubeadm.k8s.io/v1beta4
kind: InitConfiguration
bootstrapTokens:
- token: "9a08jv.c0izixklcxtmnze7"
description: "kubeadm bootstrap token"
ttl: "24h"
- token: "783bde.3f89s0fje9f38fhf"
description: "another bootstrap token"
usages:
- authentication
- signing
groups:
- system:bootstrappers:kubeadm:default-node-token
nodeRegistration:
name: "ec2-10-100-0-1"
criSocket: "unix:///var/run/containerd/containerd.sock"
taints:
- key: "kubeadmNode"
value: "someValue"
effect: "NoSchedule"
kubeletExtraArgs:
- name: v
value: 5
ignorePreflightErrors:
- IsPrivilegedUser
imagePullPolicy: "IfNotPresent"
localAPIEndpoint:
advertiseAddress: "10.100.0.1"
bindPort: 6443
certificateKey: "e6a2eb8581237ab72a4f494f30285ec12a9694d750b9785706a83bfcbbbd2204"
skipPhases:
- preflight
timeouts:
controlPlaneComponentHealthCheck: "60s
kubernetesAPICall: "40s"
---
apiVersion: kubeadm.k8s.io/v1beta4
kind: ClusterConfiguration
etcd:
# локальний або зовнішній etcd
local:
imageRepository: "registry.k8s.io"
imageTag: "3.2.24"
dataDir: "/var/lib/etcd"
extraArgs:
- name: listen-client-urls
value: http://10.100.0.1:2379
extraEnvs:
- name: SOME_VAR
value: SOME_VALUE
serverCertSANs:
- "ec2-10-100-0-1.compute-1.amazonaws.com"
peerCertSANs:
- "10.100.0.1"
# external:
# endpoints:
# - "10.100.0.1:2379"
# - "10.100.0.2:2379"
# caFile: "/etcd/kubernetes/pki/etcd/etcd-ca.crt"
# certFile: "/etcd/kubernetes/pki/etcd/etcd.crt"
# keyFile: "/etcd/kubernetes/pki/etcd/etcd.key"
networking:
serviceSubnet: "10.96.0.0/16"
podSubnet: "10.244.0.0/24"
dnsDomain: "cluster.local"
kubernetesVersion: "v1.21.0"
controlPlaneEndpoint: "10.100.0.1:6443"
apiServer:
extraArgs:
- name: authorization-mode
value: "Node,RBAC"
extraEnvs:
- name: SOME_VAR
value: SOME_VALUE
extraVolumes:
- name: "some-volume"
hostPath: "/etc/some-path"
mountPath: "/etc/some-pod-path"
readOnly: false
pathType: File
certSANs:
- "10.100.1.1"
- "ec2-10-100-0-1.compute-1.amazonaws.com"
controllerManager:
extraArgs:
- name: node-cidr-mask-size
value: "20"
extraVolumes:
- name: "some-volume"
hostPath: "/etc/some-path"
mountPath: "/etc/some-pod-path"
readOnly: false
pathType: File
scheduler:
extraArgs:
- name: address
value: "10.100.0.1"
extraVolumes:
- name: "some-volume"
hostPath: "/etc/some-path"
mountPath: "/etc/some-pod-path"
readOnly: false
pathType: File
certificatesDir: "/etc/kubernetes/pki"
imageRepository: "registry.k8s.io"
clusterName: "example-cluster"
encryptionAlgorithm: ECDSA-P256
dns:
disabled: true # disable CoreDNS
proxy:
diabled: true # disable kube-proxy
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
# параметри kubelet вказуються тут
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
# параметри kube-proxy вказуються тут
Типи конфігурацій Kubeadm join
При виконанні kubeadm join з опцією --config слід вказати тип JoinConfiguration.
apiVersion: kubeadm.k8s.io/v1beta4
kind: JoinConfiguration
discovery:
bootstrapToken:
apiServerEndpoint: some-address:6443
token: abcdef.0123456789abcdef
unsafeSkipCAVerification: true
tlsBootstrapToken: abcdef.0123456789abcdef
Тип JoinConfiguration слід використовувати для налаштування параметрів часу виконання, якими у випадку kubeadm join є метод виявлення, що використовується для доступу до інформації про кластер, а також всі налаштування, специфічні для вузла, на якому виконується kubeadm, включно з:
nodeRegistration
, що містить поля, які стосуються реєстрації нового вузла у кластері; використовуйте його, щоб налаштувати імʼя вузла, сокет CRI для використання або будь-які інші параметри, які мають застосовуватися лише до цього вузла (наприклад, ip вузла).apiEndpoint
, що представляє точку доступу до екземпляра сервера API, який буде розгорнуто на цьому вузлі.
Типи конфігурацій Kubeadm reset
При виконанні kubeadm reset
з опцією --config
слід вказати тип ResetConfiguration
.
apiVersion: kubeadm.k8s.io/v1beta4
kind: ResetConfiguration
...
Типи конфігурацій Kubeadm upgrade
При виконанні kubeadm upgrade
з опцією --config
слід вказати тип UpgradeConfiguration
.
apiVersion: kubeadm.k8s.io/v1beta4
kind: UpgradeConfiguration
apply:
...
diff:
...
node:
...
plan:
...
Структура UpgradeConfiguration
містить кілька підструктур, які застосовуються тільки різних команд kubeadm upgrade
. Наприклад, apply
використовується з командою kubeadm upgrade apply
тож всі інші підструктури будуть проігноровані.
Типи ресурсів
BootstrapToken
Зʼявляється в:
BootstrapToken описує один bootstrap token, зберігається як Secret у кластері
Поле | Опис |
---|---|
token [Обовʼязкове]BootstrapTokenString |
|
description string |
|
ttl meta/v1.Duration |
|
expires meta/v1.Time |
|
usages []string |
|
groups []string |
|
BootstrapTokenString
Зʼявляється в:
BootstrapTokenString є токеном формату abcdef.abcdef0123456789
, який використовується як для перевірки практичності API сервера з погляду вузла, що приєднується, так і як метод автентифікації вузла в фазі bootstrap команди "kubeadm join". Цей токен є і має бути короткочасним.
Поле | Опис |
---|---|
- [Обовʼязкове]string | Опис не надано. |
- [Обовʼязкове]string | Опис не надано. |
ClusterConfiguration
ClusterConfiguration містить конфігурацію на рівні кластера для кластера kubeadm.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta4 |
kind string | ClusterConfiguration |
etcd Etcd |
|
networking Networking |
|
kubernetesVersion string |
|
controlPlaneEndpoint string |
|
apiServer APIServer |
|
controllerManager ControlPlaneComponent |
|
scheduler ControlPlaneComponent |
|
dns DNS |
|
proxy [Обовʼязкове]Proxy |
|
certificatesDir string |
|
imageRepository string |
|
featureGates map[string]bool |
|
clusterName string | Назва кластера. |
encryptionAlgorithm EncryptionAlgorithmType |
|
certificateValidityPeriod meta/v1.Duration |
|
caCertificateValidityPeriod meta/v1.Duration |
|
InitConfiguration
InitConfiguration містить список елементів, що специфічні для тільки для запуску kubeadm init
. Ці поля використовуються лише під час першого запуску kubeadm init
. Після цього інформація в цих полях НЕ завантажується до ConfigMap kubeadm-config
, який використовується, наприклад, при kubeadm upgrade
. Ці поля повинні бути опущені.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta4 |
kind string | InitConfiguration |
bootstrapTokens []BootstrapToken |
|
dryRun [Обовʼязкове]bool |
|
nodeRegistration NodeRegistrationOptions |
|
localAPIEndpoint APIEndpoint |
|
certificateKey string |
|
skipPhases []string |
|
patches Patches |
|
timeouts Timeouts |
|
JoinConfiguration
JoinConfiguration містить елементи, що описують конкретний вузол.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta4 |
kind string | JoinConfiguration |
dryRun bool |
|
nodeRegistration NodeRegistrationOptions |
|
caCertPath string |
|
discovery [Обовʼязкове]Discovery |
|
controlPlane JoinControlPlane |
|
skipPhases []string |
|
patches Patches |
|
timeouts Timeouts |
|
ResetConfiguration
ResetConfiguration містить список полів, що є специфічними для режиму kubeadm reset
.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta4 |
kind string | ResetConfiguration |
cleanupTmpDir bool |
|
certificatesDir string |
|
criSocket string |
|
dryRun bool |
|
force bool | Флаг |
ignorePreflightErrors []string |
|
skipPhases []string |
|
unmountFlags []string |
|
timeouts Timeouts |
|
UpgradeConfiguration
UpgradeConfiguration містить список опцій, специфічних для підкоманд kubeadm upgrade
.
Поле | Опис |
---|---|
apiVersion string | kubeadm.k8s.io/v1beta4 |
kind string | UpgradeConfiguration |
apply UpgradeApplyConfiguration |
|
diff UpgradeDiffConfiguration |
|
node UpgradeNodeConfiguration |
|
plan UpgradePlanConfiguration |
|
timeouts Timeouts |
|
APIEndpoint
Зʼявляється в:
Структура APIEndpoint містить елементи для екземпляра API сервера, розгорнутого на вузлі.
Поле | Опис |
---|---|
advertiseAddress string |
|
bindPort int32 |
|
APIServer
Зʼявляється в:
APIServer містить налаштування, необхідні для розгортання API сервера в кластері.
Поле | Опис |
---|---|
ControlPlaneComponent [Обовʼязкове]ControlPlaneComponent | (Члени ControlPlaneComponent вбудовані в цей тип.)
Опис не надано. |
certSANs []string |
|
Arg
Зʼявляється в:
Arg представляє собою аргумент з імʼям і значенням.
Поле | Опис |
---|---|
name [Обовʼязкове]string | Імʼя аргументу. |
value [Обовʼязкове]string | Значення аргументу. |
BootstrapTokenDiscovery
Зʼявляється в:
BootstrapTokenDiscovery використовується для налаштування параметрів для виявлення з використанням токенів.
Поле | Опис |
---|---|
token [Обовʼязкове]string |
|
apiServerEndpoint string |
|
caCertHashes []string |
|
unsafeSkipCAVerification bool |
|
ControlPlaneComponent
Зʼявляється в:
ControlPlaneComponent містить налаштування, загальні для компонентів панелі управління кластера.
Поле | Опис |
---|---|
extraArgs []Arg |
|
extraVolumes []HostPathMount |
|
extraEnvs []EnvVar |
|
DNS
Зʼявляється в:
DNS визначає аддон DNS, який має бути використаний у кластері.
Поле | Опис |
---|---|
ImageMeta [Обовʼязково]ImageMeta | (Члени ImageMeta вбудовані в цей тип.)
|
disabled [Обовʼязково]bool |
|
Discovery
Зʼявляється в:
Discovery визначає параметри для kubelet під час процесу TLS Bootstrap.
Поле | Опис |
---|---|
bootstrapToken BootstrapTokenDiscovery |
|
file FileDiscovery |
|
tlsBootstrapToken string |
|
EncryptionAlgorithmType
(Аліас для string
)
Зʼявляється в:
EncryptionAlgorithmType може визначити тип асиметричного алгоритму шифрування.
EnvVar
Зʼявляється в:
EnvVar представляє змінну середовища, присутню в контейнері.
Поле | Опис |
---|---|
EnvVar [Обовʼязкове]core/v1.EnvVar | (Члени EnvVar вбудовані в цей тип.)
Опис не надано. |
Etcd
Зʼявляється в:
Etcd містить елементи, що описують конфігурацію Etcd.
Поле | Опис |
---|---|
local LocalEtcd |
|
external ExternalEtcd |
|
ExternalEtcd
Зʼявляється в:
ExternalEtcd описує зовнішній кластер etcd. Kubeadm не має інформації про те, де знаходяться файли сертифікатів, і їх необхідно надати.
Поле | Опис |
---|---|
endpoints [Обовʼязкове][]string |
|
caFile [Обовʼязкове]string |
|
certFile [Обовʼязкове]string |
|
keyFile [Обовʼязкове]string |
|
FileDiscovery
Зʼявляється в:
FileDiscovery використовується для вказівки файлу або URL на kubeconfig файл, з якого слід завантажити інформацію про кластер.
Поле | Опис |
---|---|
kubeConfigPath [Обовʼязкове]string |
|
HostPathMount
Зʼявляється в:
HostPathMount містить елементи, що описують томи, які монтуються з хоста.
Поле | Опис |
---|---|
name [Обовʼязкове]string |
|
hostPath [Обовʼязкове]string |
|
mountPath [Обовʼязкове]string |
|
readOnly bool |
|
pathType core/v1.HostPathType |
|
ImageMeta
Зʼявляється в:
ImageMeta дозволяє налаштувати образ, що використовується для компонентів, які не походять з процесу релізу Kubernetes/Kubernetes.
Поле | Опис |
---|---|
imageRepository string |
|
imageTag string |
|
JoinControlPlane
Зʼявляється в:
JoinControlPlane містить елементи, що описують додатковий екземпляр контрольної плити, який має бути розгорнуто на приєднуючому вузлі.
Поле | Опис |
---|---|
localAPIEndpoint APIEndpoint |
|
certificateKey string |
|
LocalEtcd
Зʼявляється в:
LocalEtcd описує, що kubeadm має запустити кластер etcd локально.
Поле | Опис |
---|---|
ImageMeta [Обовʼязково]ImageMeta | (Члени ImageMeta вбудовані в цей тип.)
|
dataDir [Обовʼязково]string |
|
extraArgs [Обовʼязково][]Arg |
|
extraEnvs []EnvVar |
|
serverCertSANs []string |
|
peerCertSANs []string |
|
Networking
Зʼявляється в:
Networking містить елементи, що описують конфігурацію мережі кластера.
Поле | Опис |
---|---|
serviceSubnet string |
|
podSubnet string |
|
dnsDomain string |
|
NodeRegistrationOptions
Зʼявляється в:
NodeRegistrationOptions містить поля, що стосуються реєстрації новоїпанелі управління або вузла в кластері, або через kubeadm init
, або kubeadm join
.
Поле | Опис |
---|---|
name string |
|
criSocket string |
|
taints [Обовʼязкове][]core/v1.Taint |
|
kubeletExtraArgs []Arg |
|
ignorePreflightErrors []string |
|
imagePullPolicy core/v1.PullPolicy |
|
imagePullSerial bool |
|
Patches
Зʼявляється в:
Patches містить опції, повʼязані із застосуванням патчів до компонентів, розгорнутих kubeadm.
Поле | Опис |
---|---|
directory string |
|
Proxy
Зʼявляється в:
Proxy визначає надбудову проксі, яка має використовуватися в кластері.
Поле | Опис |
---|---|
disabled [Обовʼязкове]bool |
|
Timeouts
Зʼявляється в:
Timeouts містить різні тайм-аути, які застосовуються до команд kubeadm.
Поле | Опис |
---|---|
controlPlaneComponentHealthCheck meta/v1.Duration |
|
kubeletHealthCheck meta/v1.Duration |
|
kubernetesAPICall meta/v1.Duration |
|
etcdAPICall meta/v1.Duration |
|
tlsBootstrap meta/v1.Duration |
|
discovery meta/v1.Duration |
|
upgradeManifests [Обовʼязкове]meta/v1.Duration |
|
UpgradeApplyConfiguration
Зʼявляється в:
UpgradeApplyConfiguration містить список параметрів конфігурації, які специфічні для команди kubeadm upgrade apply
.
Поле | Опис |
---|---|
kubernetesVersion string |
|
allowExperimentalUpgrades bool |
|
allowRCUpgrades bool | Увімкнення |
certificateRenewal bool |
|
dryRun bool |
|
etcdUpgrade bool |
|
forceUpgrade bool |
|
ignorePreflightErrors []string |
|
patches Patches |
|
printConfig bool |
|
skipPhases [Обовʼязкове][]string |
|
imagePullPolicy core/v1.PullPolicy |
|
imagePullSerial bool |
|
UpgradeDiffConfiguration
Зʼявляється в:
UpgradeDiffConfiguration містить список параметрів конфігурації, які специфічні для команди kubeadm upgrade diff
.
Поле | Опис |
---|---|
kubernetesVersion string |
|
contextLines int |
|
UpgradeNodeConfiguration
Зʼявляється в:
UpgradeNodeConfiguration містить список параметрів конфігурації, які специфічні для команди "kubeadm upgrade node".
Поле | Опис |
---|---|
certificateRenewal bool |
|
dryRun bool |
|
etcdUpgrade bool |
|
ignorePreflightErrors []string |
|
skipPhases []string |
|
patches Patches |
|
imagePullPolicy core/v1.PullPolicy |
|
imagePullSerial bool |
|
UpgradePlanConfiguration
Зʼявляється в:
UpgradePlanConfiguration містить список параметрів конфігурації, які специфічні для команди "kubeadm upgrade plan".
Поле | Опис |
---|---|
kubernetesVersion [Обовʼязкове]string |
|
allowExperimentalUpgrades bool |
|
allowRCUpgrades bool | Увімкнення |
dryRun bool |
|
ignorePreflightErrors []string |
|
printConfig bool |
|
15 - kubeconfig (v1)
Типи ресурсів
Config
Config містить інформацію, необхідну для підключення до віддалених кластерів Kubernetes як вказаний користувач
Поле | Опис |
---|---|
apiVersion string | /v1 |
kind string | Config |
kind string | Спадкове поле з pkg/api/types.go TypeMeta. TODO(jlowdermilk): видалити його після усунення залежностей з низхідних напрямків. |
apiVersion string | Спадкове поле з pkg/api/types.go TypeMeta. TODO(jlowdermilk): видалити його після усунення залежностей з низхідних напрямків. |
preferences [Обовʼязкове]Preferences | Preferences містить загальну інформацію для використання у взаємодії з CLI |
clusters [Обовʼязкове][]NamedCluster | Clusters — це map імен, на які можна посилатися в конфігураціях кластерів |
users [Обовʼязкове][]NamedAuthInfo | AuthInfos — це map імен, на які можна посилатися в конфігураціях користувача |
contexts [Обовʼязкове][]NamedContext | Контексти — це map імен, на які можна посилатися, до конфігурацій контекстів |
current-context [Обовʼязкове]string | CurrentContext — це імʼя контексту, який ви хочете використовувати стандартно |
extensions []NamedExtension | Extensions містить додаткову інформацію. Це корисно для розширювачів, щоб читання та запис не знищували невідомі поля |
AuthInfo
Зʼявляється в:
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, перевага надається 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. |
auth-provider AuthProviderConfig | AuthProvider вказує на власний втулок автентифікації для кластера Kubernetes. |
exec ExecConfig | Exec вказує на власний втулок автентифікації на основі виконання для кластера Kubernetes. |
extensions []NamedExtension | Extensions містить додаткову інформацію. Це корисно для розширювачів, щоб читання та запис не знищували невідомі поля. |
AuthProviderConfig
Зʼявляється в:
AuthProviderConfig містить конфігурацію для вказаного провайдера автентифікації.
Поле | Опис |
---|---|
name [Обовʼязково]string | Опис не надано. |
config [Обовʼязково]map[string]string | Опис не надано. |
Cluster
Зʼявляється в:
Cluster містить інформацію про те, як спілкуватися з кластером Kubernetes.
Поле | Опис |
---|---|
server [Обовʼязково]string | Server — це адреса кластера Kubernetes (https://hostname:port). |
tls-server-name string | TLSServerName використовується для перевірки сертифіката сервера. Якщо TLSServerName порожній, використовується імʼя хоста, щоб звʼязатися з сервером. |
insecure-skip-tls-verify bool | InsecureSkipTLSVerify пропускає перевірку дійсності сертифіката сервера. Це зробить ваші HTTPS-зʼєднання небезпечними. |
certificate-authority string | 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. |
extensions []NamedExtension | Extensions містить додаткову інформацію. Це корисно для розширювачів, щоб читання і запис не пошкоджували невідомі поля |
Context
Зʼявляється в:
Context — це набір посилань на кластер (як спілкуватись з кластером Kubernetes), користувача (як користувач ідентифікує себе) і простір імен (з якою підмножиною ресурсів стандартно працювати)
Поле | Опис |
---|---|
cluster [Обовʼязково]string | Cluster —це імʼя кластера для цього контексту |
user [Обовʼязково]string | AuthInfo — це імʼя authInfo для цього контексту |
namespace string | Namespace — це стандартний простір імен, який використовується для запитів, де простір імен не вказаний |
extensions []NamedExtension | Extensions містить додаткову інформацію. Це корисно для розширювачів, щоб читання і запис не пошкоджували невідомі поля |
ExecConfig
Зʼявляється в:
ExecConfig визначає команду для надання клієнтських облікових даних. Команда виконується і виводить структурований stdout, що містить облікові дані.
Дивіться групу API client.authentication.k8s.io для специфікацій точного формату вводу та виводу.
Поле | Опис |
---|---|
command [Обовʼязково]string | Команда для виконання. |
args []string | Аргументи для передачі команді під час її виконання. |
env []ExecEnvVar | Env визначає додаткові змінні середовища для експонування процесу. Вони обʼєднуються з середовищем хосту, а також зі змінними, які client-go використовує для передачі аргументів втулку. |
apiVersion [Обовʼязково]string | Бажана версія введення ExecInfo. Повернені ExecCredentials МАЮТЬ використовувати те ж саме кодування версії, що й ввод. |
installHint [Обовʼязково]string | Цей текст показується користувачеві, коли виконуваний файл здається відсутнім. Наприклад, |
provideClusterInfo [Обовʼязково]bool | ProvideClusterInfo визначає, чи слід надавати інформацію про кластер, яка може потенційно містити дуже великі дані CA, цьому exec втулку як частину змінної середовища KUBERNETES_EXEC_INFO. Стандартно встановлено на false. Пакет k8s.io/client-go/tools/auth/exec надає допоміжні методи для отримання цієї змінної середовища. |
interactiveMode ExecInteractiveMode | InteractiveMode визначає звʼязки цього втулку зі стандартним вводом. Дійсні значення: "Never" (цей exec втулок ніколи не використовує стандартний ввод), "IfAvailable" (цей exec втулок хоче використовувати стандартний ввод, якщо він доступний) або "Always" (цей exec втулок вимагає стандартний ввод для функціонування). Див. значення ExecInteractiveMode для більш детальної інформації. Якщо APIVersion — client.authentication.k8s.io/v1alpha1 або client.authentication.k8s.io/v1beta1, то це поле є необовʼязковим і стандартно встановлено у "IfAvailable" при відсутності значення. В іншому випадку це поле є обовʼязковим. |
ExecEnvVar
Зʼявляється в:
ExecEnvVar використовується для налаштування змінних середовища під час виконання втулка облікових даних на основі exec.
Поле | Опис |
---|---|
name [Обовʼязково]string | Опис не надано. |
value [Обовʼязково]string | Опис не надано. |
ExecInteractiveMode
(Аліас для string
)
Зʼявляється в:
ExecInteractiveMode є рядком, який описує взаємодію exec втулка зі стандартним вводом.
NamedAuthInfo
Зʼявляється в:
NamedAuthInfo повʼязує псевдоніми з інформацією для автентифікації.
Поле | Опис |
---|---|
name [Обовʼязкове]string | Назва є псевдонімом для цієї AuthInfo |
user [Обовʼязкове]AuthInfo | AuthInfo містить інформацію для автентифікації |
NamedCluster
Зʼявляється в:
NamedCluster повʼязує псевдоніми з інформацією про кластер.
Поле | Опис |
---|---|
name [Обовʼязкове]string | Назва є псевдонімом для цього кластера |
cluster [Обовʼязкове]Cluster | Cluster містить інформацію про кластер |
NamedContext
Зʼявляється в:
NamedContext повʼязує псевдоніми з інформацією про контекст
Поле | Опис |
---|---|
name [Обовʼязкове]string | Назва є псевдонімом для цього контексту |
context [Обовʼязкове]Context | Context містить інформацію про контекст |
NamedExtension
Зʼявляється в:
NamedExtension повʼязує псевдоніми з інформацією про розширення
Поле | Опис |
---|---|
name [Обовʼязкове]string | Назва є псевдонімом для цього розширення |
extension [Обовʼязкове]k8s.io/apimachinery/pkg/runtime.RawExtension | Extension містить інформацію про розширення |
Preferences
Зʼявляється в:
Поле | Опис |
---|---|
colors bool | Опис не надано. |
extensions []NamedExtension | Extensions містить додаткову інформацію. Це корисно для розширювачів, щоб читання і запис не пошкоджували невідомі поля |
16 - Kubelet Configuration (v1)
Типы ресурсов
CredentialProviderConfig
CredentialProviderConfig є конфігурацією, що містить інформацію про кожного exec credential provider. Kubelet читає цю конфігурацію з диска та активує кожного провайдера відповідно до типу CredentialProvider.
Поле | Опис |
---|---|
apiVersion string | kubelet.config.k8s.io/v1 |
kind string | CredentialProviderConfig |
providers [Обовʼязково][]CredentialProvider | providers є списком втулків провайдерів облікових даних, які будуть активовані kubelet. Кілька провайдерів можуть відповідати одному образу, в такому випадку облікові дані з усіх провайдерів будуть повернуті kubelet. Якщо кілька провайдерів викликаються для одного образу, результати обʼєднуються. Якщо провайдери повертають перекриваючі ключі автентифікації, використовується значення з провайдера, що знаходиться раніше в цьому списку. |
CredentialProvider
Зʼявляється в:
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, коли всі з нижченаведених умов є істинними:
Приклади значень matchImages:
|
defaultCacheDuration [Обовʼязково]meta/v1.Duration | defaultCacheDuration є стандартною тривалістю, впродовж якої втулок кешуватиме облікові дані в памʼяті, якщо тривалість кешу не надана у відповіді втулка. Це поле є обовʼязковим. |
apiVersion [Обовʼязково]string | Обовʼязкова версія вхідного exec CredentialProviderRequest. Повернута CredentialProviderResponse МУСИТЬ використовувати таку ж версію кодування, як і вхідна. Поточні підтримувані значення:
|
args []string | Аргументи для передачі команді при її виконанні. |
env []ExecEnvVar | Env визначає додаткові змінні середовища для передачі процесу. Вони обʼєднуються з середовищем хоста, а також змінними, які client-go використовує для передачі аргументів втулку. |
ExecEnvVar
Зʼявляється в:
ExecEnvVar використовується для встановлення змінних середовища при виконанні втулка для облікових даних на основі exec.
Поле | Опис |
---|---|
name [Обовʼязково]string | Опис не надано. |
value [Обовʼязково]string | Опис не надано. |
17 - Kubelet Configuration (v1alpha1)
Типи ресурсів
CredentialProviderConfig
CredentialProviderConfig є конфігурацією, що містить інформацію про кожен втулок облікових даних exec. Kubelet читає цю конфігурацію з диска та активує кожен втулок відповідно до типу CredentialProvider.
Поле | Опис |
---|---|
apiVersion string | kubelet.config.k8s.io/v1alpha1 |
kind string | CredentialProviderConfig |
providers [Обовʼязково][]CredentialProvider | providers є списком втулків провайдерів облікових даних, які будуть активовані kubelet. Кілька провайдерів можуть відповідати одному образу, в такому випадку облікові дані з усіх провайдерів будуть повернуті kubelet. Якщо кілька провайдерів викликаються для одного образу, результати обʼєднуються. Якщо провайдери повертають перекриваючі ключі автентифікації, використовується значення з провайдера, що знаходиться раніше в цьому списку. |
CredentialProvider
Зʼявляється в:
CredentialProvider представляє втулок exec, який буде викликаний kubelet. Втулок буде викликаний тільки тоді, коли образ, який завантажується, відповідає образам, які підтримуються втулком (див. matchImages).
Поле | Опис |
---|---|
name [Обовʼязково]string | name є обовʼязковою назвою постачальника облікових даних. Назва повинна відповідати назві виконуваного файлу постачальника, як його бачить kubelet. Виконуваний файл повинен знаходитися в теці bin kubelet (встановленій за допомогою прапорця --image-credential-provider-bin-dir). |
matchImages [Обовʼязково][]string | matchImages є обовʼязковим списком рядків, які використовуються для зіставлення з образами, щоб визначити, чи потрібно викликати цього провайдера. Якщо один з рядків відповідає запитаному образу від kubelet, втулок буде викликаний і отримає можливість надати облікові дані. Образи повинні містити домен реєстрації та URL шлях. Кожен запис у matchImages є шаблоном, який може містити порт і шлях. Глоби можуть використовуватися в домені, але не в порту чи шляху. Глоби підтримуються як піддомени, такі як Відповідність існує між образами і matchImage, коли все з наведеного нижче є істинними:
Приклади значень matchImages:
|
defaultCacheDuration [Обовʼязково]meta/v1.Duration | defaultCacheDuration є стандартною тривалістю, впродовж якої втулок кешуватиме облікові дані в памʼяті, якщо тривалість кешу не надана у відповіді втулка. Це поле є обовʼязковим. |
apiVersion [Обовʼязково]string | Обовʼязкова версія вхідного exec CredentialProviderRequest. Повернута CredentialProviderResponse МУСИТЬ використовувати таку ж версію кодування, як і вхідна. Поточні підтримувані значення:
|
args []string | Аргументи, які слід передати команді при її виконанні. |
env []ExecEnvVar | Env визначає додаткові змінні середовища, які слід надати процесу. Вони обʼєднуються з середовищем хоста, а також з змінними, які використовує client-go для передачі аргументів втулку. |
ExecEnvVar
Зʼявляється в:
ExecEnvVar використовується для встановлення змінних середовища при виконанні втулка облікових даних на основі exec.
Поле | Опис |
---|---|
name [Обовʼязково]string | Опис не надано. |
value [Обовʼязково]string | Опис не надано. |
18 - Kubelet Configuration (v1beta1)
Типи ресурсів
FormatOptions
Зʼявляється в:
FormatOptions містить параметри для різних форматів логування.
Поле | Опис |
---|---|
text [Обовʼязково]TextOptions | [Alpha] Text містить параметри для формату логування "text". Доступно лише при увімкненій функціональній можливості LoggingAlphaOptions. |
json [Обовʼязково]JSONOptions | [Alpha] JSON містить параметри для формату журналювання "json". Доступно лише при увімкненій функціональній можливості LoggingAlphaOptions. |
JSONOptions
Зʼявляється в:
JSONOptions містить параметри для формату логування "json".
Поле | Опис |
---|---|
OutputRoutingOptions [Обовʼязково]OutputRoutingOptions | (Члени OutputRoutingOptions вбудовані в цей тип.)
Опис не надано. |
LogFormatFactory
LogFormatFactory забезпечує підтримку певного додаткового формату логу, який не є стандартним.
LoggingConfiguration
Зʼявляється в:
LoggingConfiguration містить параметри для логування.
Поле | Опис |
---|---|
format [Обовʼязково]string | Format Flag визначає структуру повідомлень логу. Станадртне значення для формату — |
flushFrequency [Обовʼязково]TimeOrMetaDuration | Максимальний час між очищенням логів. Якщо рядок, розбирається як тривалість (наприклад, "1s"). Якщо ціле число, максимальна кількість наносекунд (наприклад, 1с = 1000000000). Ігнорується, якщо обраний механізм логування записує повідомлення без буферизації. |
verbosity [Обовʼязково]VerbosityLevel | Verbosity є порогом, який визначає, які повідомлення логу записуються. Стандартне значення — нуль, що записує лише найбільш важливі повідомлення. Більші значення дозволяють додаткові повідомлення. Повідомлення про помилки завжди записуються. |
vmodule [Обовʼязково]VModuleConfiguration | VModule переозначає поріг детальності для окремих файлів. Підтримується тільки для формату логу "text". |
options [Обовʼязково]FormatOptions | [Alpha] Options містить додаткові параметри, специфічні для різних форматів логування. Використовуються лише параметри для обраного формату, але всі вони перевіряються. Доступно тільки при увімкненій функціональній можливості LoggingAlphaOptions. |
LoggingOptions
LoggingOptions можна використовувати з ValidateAndApplyWithOptions для перевизначення деяких глобальних стандартних значень.
Поле | Опис |
---|---|
ErrorStream [Обовʼязково]io.Writer | ErrorStream можна використовувати для перевизначення стандартного значення os.Stderr. |
InfoStream [Обовʼязково]io.Writer | InfoStream можна використовувати для перевизначення стандартного значення os.Stdout. |
OutputRoutingOptions
Зʼявляється в:
OutputRoutingOptions містить параметри, що підтримуються як для формату "text", так і для "json".
Поле | Опис |
---|---|
splitStream [Обовʼязково]bool | [Alpha] SplitStream перенаправляє повідомлення про помилки на stderr, тоді як інформаційні повідомлення відправляються на stdout з буферизацією. Стандартне значення — записувати обидва потоки у stdout без буферизації. Доступно тільки коли увімкнено функціональну можливість LoggingAlphaOptions. |
infoBufferSize [Обовʼязково]k8s.io/apimachinery/pkg/api/resource.QuantityValue | [Alpha] InfoBufferSize встановлює розмір інформаційного потоку при використанні розділених потоків. Стандартне значення — нуль, що вимикає буферизацію. Доступно тільки коли увімкнено функціональну можливість LoggingAlphaOptions. |
TextOptions
Зʼявляється в:
TextOptions містить параметри для формату логування "text".
Поле | Опис |
---|---|
OutputRoutingOptions [Обовʼязково]OutputRoutingOptions | (Члени OutputRoutingOptions вбудовані в цей тип.)
Опис не надано. |
TimeOrMetaDuration
Зʼявляється в:
TimeOrMetaDuration присутній лише для зворотної сумісності з полем flushFrequency, і нові поля повинні використовувати metav1.Duration.
Поле | Опис |
---|---|
Duration [Обовʼязково]meta/v1.Duration | Duration містить тривалість |
- [Обовʼязково]bool | SerializeAsString контролює, чи буде значення серіалізоване як рядок чи ціле число |
TracingConfiguration
Зʼявляється в:
TracingConfiguration надає версіоновану конфігурацію для клієнтів OpenTelemetry tracing.
Поле | Опис |
---|---|
endpoint string | Endpoint колектора, до якого цей компонент буде відправляти трасування. Зʼєднання не є захищеним і наразі не підтримує TLS. Рекомендується не задавати, і endpoint буде за замовчуванням otlp grpc, localhost:4317. |
samplingRatePerMillion int32 | SamplingRatePerMillion — кількість зразків для збору на мільйон спанів. Рекомендується не задавати. Якщо не задано, пробник поважає темп рідного спану, але в іншому випадку ніколи не здійснює пробу. |
VModuleConfiguration
(Аліас для []k8s.io/component-base/logs/api/v1.VModuleItem
)
Зʼявляється в:
VModuleConfiguration — це колекція окремих імен файлів або шаблонів та відповідний поріг докладності.
VerbosityLevel
(Аліас для uint32
)
Зʼявляється в:
VerbosityLevel представляє поріг докладності для klog або logr.
CredentialProviderConfig
CredentialProviderConfig — це конфігурація, яка містить інформацію про кожного постачальника облікових даних exec. Kubelet зчитує цю конфігурацію з диска та активує кожного постачальника, як зазначено в типі CredentialProvider.
Поле | Опис |
---|---|
apiVersion string | kubelet.config.k8s.io/v1beta1 |
kind string | CredentialProviderConfig |
providers [Обовʼязково][]CredentialProvider | providers — це список втулків постачальників облікових даних, які будуть активовані kubelet. Кілька постачальників можуть відповідати одному образу, у такому випадку облікові дані від усіх постачальників будуть повернуті kubelet. Якщо кілька постачальників викликаються для одного образуу, результати обʼєднуються. Якщо постачальники повертають перекриваючі ключі автентифікації, використовується значення від постачальника, який знаходиться раніше в цьому списку. |
KubeletConfiguration
KubeletConfiguration містить конфігурацію для Kubelet.
Поле | Опис |
---|---|
apiVersion string | kubelet.config.k8s.io/v1beta1 |
kind string | KubeletConfiguration |
enableServer [Обовʼязково]bool | enableServer вмикає захищений сервер Kubelet. Примітка: незахищений порт Kubelet контролюється параметром readOnlyPort. Стандартне значення: true |
staticPodPath string | staticPodPath — це шлях до теки з локальними (статичними) Podʼами для запуску, або шлях до окремого статичного файлу Podʼа. Стандартно: "" |
podLogsDir string | podLogsDir - власний шлях до кореневої теки, який kubelet використовуватиме для розміщення лог-файлів под'ів. Стандартно: "/var/log/pods/" Примітка: не рекомендується використовувати теку temp як теку логу, оскільки це може спричинити неочікувану поведінку у багатьох місцях. |
syncFrequency meta/v1.Duration | syncFrequency — максимальний період між синхронізацією запущених контейнерів і конфігурацією. Стандартно: "1m"]; |
fileCheckFrequency meta/v1.Duration | fileCheckFrequency — тривалість між перевірками конфігураційних файлів на наявність нових даних. Стандартно: "20s"]; |
httpCheckFrequency meta/v1.Duration | 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 |
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 |
authentication KubeletAuthentication | authentication визначає спосіб автентифікації запитів до сервера Kubelet. Стандартно: anonymous: enabled: false webhook: enabled: true cacheTTL: "2m" |
authorization KubeletAuthorization | authorization визначає спосіб авторизації запитів до сервера Kubelet. Стандартно: mode: Webhook webhook: cacheAuthorizedTTL: "5m" cacheUnauthorizedTTL: "30s" |
registryPullQPS int32 | registryPullQPS — ліміт отримання образів з реєстру за секунду. Значення не повинно бути відʼємним числом. Встановлення значення 0 означає відсутність обмеження. Стандартно: 5 |
registryBurst int32 | registryBurst — максимальний розмір стрімких витягань, тимчасово дозволяє стрімким витяганням досягати цього числа, але при цьому не перевищувати registryPullQPS. Значення не повинно бути відʼємним числом. Використовується тільки якщо registryPullQPS більше 0. Стандартно: 10 |
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 meta/v1.Duration | streamingConnectionIdleTimeout — максимальний час, протягом якого потокове зʼєднання може простоювати, перш ніж зʼєднання буде автоматично закрито. Стандартно: "4h"; |
nodeStatusUpdateFrequency meta/v1.Duration | nodeStatusUpdateFrequency - частота, з якою kubelet обчислює статус вузла. Якщо функцію оренди вузлів не увімкнено, це також частота, з якою kubelet надсилає статус вузла майстру. Примітка: Якщо функцію оренди вузла не увімкнено, будьте обережні при зміні константи, вона має працювати з nodeMonitorGracePeriod у nodecontroller. Стандартно: "10s" |
nodeStatusReportFrequency meta/v1.Duration | 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 meta/v1.Duration | imageMinimumGCAge — мінімальний вік невикористаного образу перед тим, як його буде вилучено. Стандартно: "2m"]; |
imageMaximumGCAge meta/v1.Duration | imageMaximumGCAge — максимальний вік, протягом якого образ може бути невикористаним, перш ніж його буде вилучено у смітник. Стандартне значення цього поля - "0s", що вимикає це поле - тобто образи не буде вилучено у смітник через те, що їх не було використано надто довго. Стандартно: "0s" (вимкнено) |
imageGCHighThresholdPercent int32 | imageGCHighThresholdPercent — це відсоток використання диска, після якого завжди запускається прибирання образів. Відсоток обчислюється діленням значення цього поля на 100, тому значення цього поля має бути від 0 до 100 включно. Якщо вказано, значення має бути більшим за imageGCLowThresholdPercent. Стандартно: 85 |
imageGCLowThresholdPercent int32 | imageGCLowThresholdPercent — це відсоток використання диска, до якого прибирання образів ніколи не виконуватиметься. Найнижчий відсоток використання диска для збирання сміття. Відсоток обчислюється діленням значення цього поля на 100, тому значення поля має бути у діапазоні від 0 до 100 включно. Якщо вказано, значення має бути меншим за imageGCHighThresholdPercent. Стандартно: 80 |
volumeStatsAggPeriod meta/v1.Duration | 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" |
cpuManagerPolicyOptions map[string]string | cpuManagerPolicyOptions — це набір key=value, який дозволяє встановити додаткові опції для точного налаштування поведінки політик диспетчера процесорів. Потребує увімкнення функціональних можливостей "CPUManager" та "CPUManagerPolicyOptions". Стандартно: nil |
cpuManagerReconcilePeriod meta/v1.Duration | cpuManagerReconcilePeriod - період узгодження для CPU Manager. Потребує увімкнення функціональної можливості CPUManager. Стандартне значення: "10s" |
memoryManagerPolicy string | memoryManagerPolicy - назва політики, яку використовуватиме менеджер памʼяті. Потребує увімкнення функціональної можливості MemoryManager. Стандартно: "none" |
topologyManagerPolicy string | topologyManagerPolicy — назва політики менеджера топології, яку слід використовувати. Допустимі значення включають:
Default: "none" |
topologyManagerScope string | topologyManagerScope представляє обсяг генерації підказок топології, які запитує менеджер топології та генерують постачальники підказок. Допустимі значення включають:
Default: "container" |
topologyManagerPolicyOptions map[string]string | TopologyManagerPolicyOptions - це набір key=value, який дозволяє встановити додаткові опції для точного налаштування поведінки політик менеджера топології. Потребує увімкнення обох функціональних можливостей — "TopologyManager" та "TopologyManagerPolicyOptions". Стандартно: nil |
qosReserved map[string]string | qosReserved — це набір пар імені ресурсу та відсотка, які визначають мінімальний відсоток ресурсу, зарезервований для ексклюзивного використання на рівні гарантованого QoS. Наразі підтримувані ресурси: "памʼять" Потребує увімкнення функціональної можливості QOSReserved. Стандартно: nil |
runtimeRequestTimeout meta/v1.Duration | runtimeRequestTimeout — це таймаут для всіх запитів часу виконання, окрім довготривалих запитів — pull, logs, exec та attach. Стандартно: "2m" |
hairpinMode string | hairpinMode вказує, як Kubelet має налаштувати міст контейнера для пакета hairpin. Встановлення цього прапорця дозволяє точкам доступу в Service перерозподіляти навантаження на себе, якщо вони намагаються отримати доступ до свого власного Service. Значення:
Зазвичай, для досягнення hairpin NAT потрібно встановити |
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 meta/v1.Duration | cpuCFSQuotaPeriod — це значення періоду квоти CFS процесора, |
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: "100Mi" nodefs.available: "10%" nodefs.inodesFree: "5%" imagefs.available: "15%" |
evictionSoft map[string]string | evictionSoft це map імен сигналів до величин, яка визначає мʼякі пороги виселення. Наприклад: |
evictionSoftGracePeriod map[string]string | evictionSoftGracePeriod це map назв сигналів до величин, яка визначає пільгові періоди для кожного сигналу мʼякого виселення. Наприклад: |
evictionPressureTransitionPeriod meta/v1.Duration | evictionPressureTransitionPeriod — це тривалість, протягом якої kubelet має зачекати, перш ніж вийти зі стану тиску витіснення. Стандартно: "5m" |
evictionMaxPodGracePeriod int32 | evictionMaxPodGracePeriod - це максимально дозволений пільговий період (у секундах), який можна використовувати при завершенні роботи pods у відповідь на досягнення порогу мʼякого виселення. Це значення фактично обмежує значення terminationGracePeriodSeconds під час мʼякого виселення. Примітка: У звʼязку з issue #64530 у поведінці є помилка, коли це значення наразі просто перевизначає пільговий період під час мʼякого виселення, що може збільшити пільговий період порівняно з тим, що встановлено в Pod. Ця помилка буде виправлена в наступному випуску. Стандартно: 0 |
evictionMinimumReclaim map[string]string | evictionMinimumReclaim це map імен сигналів до величин, що визначає мінімальні відновлення, які описують мінімальну кількість заданого ресурсу, яку kubelet буде відновлювати при виконанні виселення pod, поки цей ресурс знаходиться під тиском. Наприклад: |
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 MemorySwapConfiguration | memorySwap налаштовує памʼять підкачки, доступну для контейнерних робочих навантажень. |
containerLogMaxSize string | containerLogMaxSize — величина, що визначає максимальний розмір лог-файлу контейнера перед його ротацією. Наприклад: "5Mi" або "256Ki". Стандартно: "10Mi""; |
containerLogMaxFiles int32 | containerLogMaxFiles визначає максимальну кількість файлів логу контейнера, які можуть бути присутніми для контейнера. Стандартно: 5 |
containerLogMaxWorkers int32 | ContainerLogMaxWorkers визначає максимальну кількість паралельних робочих процесів для виконання операцій ротації логів. Встановіть це значення рівним 1, щоб вимкнути паралельні робочі процеси ротації логу. Стандартно: 1 |
containerLogMonitorInterval meta/v1.Duration | ContainerLogMonitorInterval визначає тривалість, протягом якої контейнерні логи відстежуються для виконання операції ротації логів. Стандартно це значення дорівнює 10 * time.Seconds. Але його можна налаштувати на менше значення залежно від частоти генерації логів і розміру, щодо якого потрібно виконати ротацію. Стандартно: 10s |
configMapAndSecretChangeDetectionStrategy ResourceChangeDetectionStrategy | configMapAndSecretChangeDetectionStrategy - режим, у якому працюють менеджери ConfigMap і Secret. Допустимі значення включають:
Default: "Watch" |
systemReserved map[string]string | systemReserved - це набір пар ResourceName=ResourceQuantity (наприклад, cpu=200m,memory=150G), які описують ресурси, зарезервовані для компонентів, що не належать до kubernetes. Наразі підтримуються лише процесор і памʼять. Дивіться http://kubernetes.io/docs/user-guide/compute-resources для більш детальної інформації. Стандартно: nil |
kubeReserved map[string]string | kubeReserved — це набір пар ResourceName=ResourceQuantity (наприклад, cpu=200m,memory=150G), які описують ресурси, зарезервовані для компонентів системи kubernetes. Наразі підтримуються процесор, памʼять та локальне сховище для кореневої файлової системи. Більш детальну інформацію можна знайти на сторінці https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/. Стандартно: nil |
reservedSystemCPUs [Обовʼязково]string | Параметр reservedSystemCPUs визначає список процесорів, зарезервованих для системних потоків рівня хоста та потоків, повʼязаних з kubernetes. Це забезпечує "статичний" список процесорів, а не "динамічний" список за допомогою systemReserved та kubeReserved. Цей параметр не підтримує systemReservedCgroup або kubeReservedCgroup. |
showHiddenMetricsForVersion string | showHiddenMetricsForVersion — це попередня версія, для якої ви хочете показати приховані метрики. Тільки попередня мінорна версія є значущою, інші значення не допускаються. Формат |
systemReservedCgroup string | systemReservedCgroup допомагає kubelet ідентифікувати абсолютну назву верхнього рівня CGroup, який використовується для забезпечення |
kubeReservedCgroup string | kubeReservedCgroup допомагає kubelet ідентифікувати абсолютну назву верхнього рівня CGroup, який використовується для забезпечення |
enforceNodeAllocatable []string | Цей прапорець визначає різні примусові дії Node Allocatable, які Kubelet повинен виконувати. Цей прапорець приймає список опцій. Прийнятні опції: |
allowedUnsafeSysctls []string | Список небезпечних sysctl або шаблонів sysctl, розділених комами (які закінчуються на |
volumePluginDir string | volumePluginDir — це повний шлях до теки, в якій слід шукати додаткові втулки томів сторонніх розробників. Стандартно: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/" |
providerID string | providerID, якщо вказано, встановлює унікальний ID екземпляра, який зовнішній постачальник (наприклад, хмарний постачальник) може використовувати для ідентифікації конкретного вузла. Стандартно: "" |
kernelMemcgNotification bool | kernelMemcgNotification, якщо вказано, інструктує kubelet інтегруватися з нотифікацією memcg ядра для визначення, чи перевищені порогові значення памʼяті для виселення, замість опитування. Стандартно: false |
logging [Обовʼязково]LoggingConfiguration | logging вказує параметри логування. Для отримання додаткової інформації зверніться до Options for Logs. стандартно: Format: text |
enableSystemLogHandler bool | enableSystemLogHandler дозволяє отримати доступ до системних логів через веб-інтерфейс за адресою host:port/logs/. Стандартно: true |
enableSystemLogQuery bool | enableSystemLogQuery активує функцію запиту логів вузла на точці доступу /logs. Для роботи цієї функції також потрібно включити EnableSystemLogHandler. Стандартно: false |
shutdownGracePeriod meta/v1.Duration | shutdownGracePeriod вказує загальну тривалість, на яку вузол повинен затримати завершення роботи і загальний період належного завершення роботи для завершення роботи Podʼів під час завершення роботи вузла. Стандартно: "0s" |
shutdownGracePeriodCriticalPods meta/v1.Duration | shutdownGracePeriodCriticalPods вказує тривалість, що використовується для завершення критичних Podʼів під час завершення роботи вузла. Це повинно бути менше ніж shutdownGracePeriod. Наприклад, якщо shutdownGracePeriod=30s, і shutdownGracePeriodCriticalPods=10s, під час завершення роботи вузла перші 20 секунд будуть зарезервовані для мʼякого завершення роботи звичайних Podʼів, а останні 10 секунд будуть зарезервовані для завершення роботи критичних Podʼів. Стандартно: "0s" |
shutdownGracePeriodByPodPriority []ShutdownGracePeriodByPodPriority | shutdownGracePeriodByPodPriority вказує період часу для належного завершення роботи Podʼів на основі їх значення класу пріоритету. Коли отримано запит на завершення роботи, Kubelet ініціює завершення роботи для всіх Podʼів, що працюють на вузлі, з періодом часу, що залежить від пріоритету Podʼа, і потім чекає на завершення роботи всіх Podʼів. Кожен запис у масиві представляє час належного завершення роботи для Podʼа з значенням класу пріоритету, що лежить у діапазоні цього значення та наступного вищого запису в списку під час завершення роботи вузла. Наприклад, щоб дозволити критичним Podʼам 10 секунд для завершення роботи, Podʼам з пріоритетом >=10000 — 20 секунд, а всім іншим Podʼам — 30 секунд. shutdownGracePeriodByPodPriority:
Час, який Kubelet чекатиме перед завершенням роботи, буде максимумом з усіх shutdownGracePeriodSeconds для кожного діапазону класів пріоритету, представленого на вузлі. Коли всі Podʼи завершать роботу або досягнуть своїх періодівналежного завершення, Kubelet звільнить блокування інгібіції завершення роботи. Потрібно, щоб була ввімкнена функція GracefulNodeShutdown. Ця конфігурація має бути порожньою, якщо встановлено або ShutdownGracePeriod, або ShutdownGracePeriodCriticalPods. Стандартно: nil |
reservedMemory []MemoryReservation | reservedMemory визначає список резервувань памʼяті для NUMA-вузлів, розділений комами. Цей параметр має сенс лише в контексті функції керування памʼяттю. Менеджер памʼяті не виділятиме зарезервовану памʼять для робочих навантажень контейнерів. Наприклад, якщо у вас є NUMA0 з 10Gi памʼяті, і reservedMemory було вказано для резервування 1Gi памʼяті на NUMA0, менеджер памʼяті передбачатиме, що лише 9Gi доступні для виділення. Ви можете вказати різну кількість вузлів NUMA та типів памʼяті. Ви можете взагалі опустити цей параметр, але повинні знати, що кількість зарезервованої памʼяті з усіх вузлів NUMA повинна бути рівною кількості памʼяті, вказаній у node allocatable. Якщо хоча б один параметр node allocatable має ненульове значення, вам потрібно буде вказати принаймні один вузол NUMA. Також уникайте вказування:
Стандартно: nil |
enableProfilingHandler bool | enableProfilingHandler дозволяє профілювання через веб-інтерфейс host:port/debug/pprof/. Стандартно: true |
enableDebugFlagsHandler bool | enableDebugFlagsHandler дозволяє доступ до прапорців через веб-інтерфейс host:port/debug/flags/v. Стандартно: true |
seccompDefault bool | SeccompDefault дозволяє використовувати |
memoryThrottlingFactor float64 | MemoryThrottlingFactor визначає множник, який множиться на обмеження памʼяті або доступну памʼять вузла при встановленні значення cgroupv2 memory.high для забезпечення MemoryQoS. Зменшення цього коефіцієнта встановить нижчу високу межу для cgroups контейнера і створить більший тиск на відновлення памʼяті, тоді як збільшення зменшить тиск на відновлення. Детальніше дивіться за посиланням: KEP-2570. Стандартно: 0.9 |
registerWithTaints []core/v1.Taint | registerWithTaints — це масив "taints" (міток) для додавання до обʼєкта вузла під час реєстрації kubelet. Набирає чинності лише тоді, коли параметр registerNode встановлено в значення true і під час початкової реєстрації вузла. Стандартно: nil |
registerNode bool | registerNode дозволяє автоматичну реєстрацію з apiserver. Стандартно: true |
tracing TracingConfiguration | 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. Стандартно цей параметр має значення false, що означає, що kubelet дозволяється запускати на хостах cgroup v1, якщо цей параметр явно не ввімкнено. Стандартно: false |
SerializedNodeConfigSource
SerializedNodeConfigSource дозволяє серіалізувати v1.NodeConfigSource. Цей тип використовується всередині Kubelet для відстеження збережених динамічних конфігурацій. Він існує в API групі kubeletconfig, оскільки класифікується як версійний вхідний параметр для Kubelet.
Поле | Опис |
---|---|
apiVersion string | kubelet.config.k8s.io/v1beta1 |
kind string | SerializedNodeConfigSource |
source core/v1.NodeConfigSource | source є джерелом, яке ми серіалізуємо. |
CredentialProvider
Зʼявляється в:
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, коли всі з нижченаведених умов виконані:
Приклади значень matchImages:
|
defaultCacheDuration [Обовʼязково]meta/v1.Duration | defaultCacheDuration є стандартним періодом, протягом якого втулок буде кешувати облікові дані в памʼяті, якщо в відповіді втулка не вказано період кешування. Це поле є обовʼязковим. |
apiVersion [Обовʼязково]string | Обовʼязкова версія введення запиту CredentialProvider. Повернутий CredentialProviderResponse МУСИТЬ використовувати таку ж версію кодування, як і ввод. Поточні підтримувані значення:
|
args []string | Аргументи, які передаються команді при її виконанні. |
env []ExecEnvVar | Env визначає додаткові змінні середовища, які потрібно надати процесу. Вони обʼєднуються з середовищем хоста, а також змінними, які client-go використовує для передачі аргументів втулку. |
ExecEnvVar
Зʼявляється в:
ExecEnvVar використовується для встановлення змінних середовища при виконанні втулку облікових даних на основі exec.
Поле | Опис |
---|---|
name [Обовʼязково]string | name визначає імʼя змінної середовища. |
value [Обовʼязково]string | value визначає значення змінної середовища. |
KubeletAnonymousAuthentication
Зʼявляється в:
Поле | Опис |
---|---|
enabled bool | enabled дозволяє анонімні запити до сервера kubelet. Запити, які не відхиляються іншим методом автентифікації, обробляються як анонімні запити. Анонімні запити мають імʼя користувача |
KubeletAuthentication
Зʼявляється в:
Поле | Опис |
---|---|
x509 KubeletX509Authentication | x509 містить налаштування, що стосуються автентифікації за допомогою клієнтських сертифікатів x509. |
webhook KubeletWebhookAuthentication | webhook містить налаштування, що стосуються автентифікації за допомогою webhook токенів на предʼявника. |
anonymous KubeletAnonymousAuthentication | anonymous містить налаштування, що стосуються анонімної автентифікації. |
KubeletAuthorization
Зʼявляється в:
Поле | Опис |
---|---|
mode KubeletAuthorizationMode | mode визначає режим авторизації для запитів до сервера kubelet. Дійсні значення: |
webhook KubeletWebhookAuthorization | webhook містить налаштування, що стосуються авторизації через Webhook. |
KubeletAuthorizationMode
(Аліас до string
)
Зʼявляється в:
KubeletWebhookAuthentication
Зʼявляється в:
Поле | Опис |
---|---|
enabled bool | enabled дозволяє автентифікацію за допомогою токенів, підтримувану API tokenreviews.authentication.k8s.io. |
cacheTTL meta/v1.Duration | cacheTTL дозволяє кешування результатів автентифікації. |
KubeletWebhookAuthorization
Зʼявляється в:
Поле | Опис |
---|---|
cacheAuthorizedTTL meta/v1.Duration | cacheAuthorizedTTL — тривалість кешування відповідей 'authorized' від веб-хук авторизатора. |
cacheUnauthorizedTTL meta/v1.Duration | cacheUnauthorizedTTL — тривалість кешування відповідей 'unauthorized' від веб-хук авторизатора. |
KubeletX509Authentication
Зʼявляється в:
Поле | Опис |
---|---|
clientCAFile string | clientCAFile — шлях до файлу сертифікатів у форматі PEM. Якщо встановлено, будь-який запит, що надає клієнтський сертифікат, підписаний одним з органів сертифікації з цього пакету, автентифікується з іменем користувача, що відповідає CommonName, та групами, що відповідають організації у клієнтському сертифікаті. |
MemoryReservation
Зʼявляється в:
MemoryReservation визначає різні типи резервування памʼяті для кожного взула NUMA.
Поле | Опис |
---|---|
numaNode [Обовʼязково]int32 | Номер NUMA вузла, для якого задається резервування памʼяті. |
limits [Обовʼязково]core/v1.ResourceList | Список ресурсів для резервування, які визначають обмеження памʼяті. |
MemorySwapConfiguration
ЗустрЗʼявляється в:
Поле | Опис |
---|---|
swapBehavior string | swapBehavior налаштовує використання swap-пам’яті для контейнерних навантажень. Може бути однією з таких опцій:
|
ResourceChangeDetectionStrategy
(Аліас string
)
ЗустрЗʼявляється в:
ResourceChangeDetectionStrategy позначає режим, у якому внутрішні менеджери (секрети, configmap) виявляють зміни об’єктів.
ShutdownGracePeriodByPodPriority
ЗустрЗʼявляється в:
ShutdownGracePeriodByPodPriority визначає період належного завершення перед завершенням роботи для Podʼів на основі їхнього значення пріоритету.
Поле | Опис |
---|---|
priority [Обовʼязкове]int32 | priority — це значення пріоритету, яке повʼязане з періодом належного завершення перед завершенням роботи |
shutdownGracePeriodSeconds [Обовʼязкове]int64 | shutdownGracePeriodSeconds — це період належного завершення перед завершенням роботи в секундах |
19 - Kubelet CredentialProvider (v1)
Типи ресурсів
CredentialProviderRequest
CredentialProviderRequest включає образ, для якого kubelet вимагає автентифікацію. Kubelet передасть цей обʼєкт запиту втулку через stdin. Загалом втулки повинні відповідати тією ж версією API, яку вони отримали.
Поле | Опис |
---|---|
apiVersion string | credentialprovider.kubelet.k8s.io/v1 |
kind string | CredentialProviderRequest |
image [Обовʼязкове]string | image — це образ контейнеа, який завантажується в рамках запиту втулка для автентифікатора. Втулки можуть за бажанням розпарсити образ для отримання будь-якої інформації, необхідної для отримання облікових даних. |
CredentialProviderResponse
CredentialProviderResponse містить облікові дані, які kubelet повинен використовувати для зазначеного образу, наданого в оригінальному запиті. Kubelet буде читати відповідь з втулка через stdout. Ця відповідь повинна бути встановлена на ту ж версію API, що й CredentialProviderRequest.
Поле | Опис |
---|---|
apiVersion string | credentialprovider.kubelet.k8s.io/v1 |
kind string | CredentialProviderResponse |
cacheKeyType [Обовʼязкове]PluginCacheKeyType | cacheKeyType вказує тип ключа кешування для використання на основі образу, наданого в запиті. Є три дійсні значення для типу ключа кешування: Image, Registry і Global. Якщо вказано недійсне значення, kubelet не буде використовувати відповідь. |
cacheDuration meta/v1.Duration | cacheDuration вказує тривалість, впродовж якої облікові дані повинні бути кешовані. Kubelet використовуватиме це поле для налаштування тривалості кешування в пам’яті для облікових даних в AuthConfig. Якщо null, kubelet використовуватиме defaultCacheDuration, надану в CredentialProviderConfig. Якщо встановлено 0, kubelet не буде кешувати наданий AuthConfig. |
auth map[string]AuthConfig | auth — це map, що містить інформацію для автентифікації, передану в kubelet. Кожен ключ є рядком для образу (детальніше про це нижче). Відповідний authConfig має бути дійсним для всіх образів, що відповідають цьому ключу. Втулок повинен встановити це поле в null, якщо не можна повернути дійсні облікові дані для запитаного образу. Кожен ключ у map є шаблоном, який може містити порт і шлях. Глоби можна використовувати в домені, але не в порті або шляху. Глоби підтримуються як піддомени, такі як '*.k8s.io' або 'k8s.*.io', і домени верхнього рівня, такі як 'k8s.*'. Часткові піддомени, такі як 'app*.k8s.io', також підтримуються. Кожен глоб може відповідати лише одному сегменту піддомена, тому '*.io' не відповідає '*.k8s.io'. Kubelet буде порівнювати образ з ключем, коли всі з наступного є істинними:
Коли повертається кілька ключів, kubelet проходитиме через усі ключі у зворотному порядку, щоб:
Для будь-якого відповідного образу kubelet спробує завантажити образ з наданими обліковими даними, зупиняючись після першого успішно автентифікованого завантаження. Приклади ключів:
|
AuthConfig
Зустрічається в:
AuthConfig містить інформацію для автентифікації для реєстру контейнерів. Сьогодні підтримується тільки автентифікація на основі імені користувача та пароля, але в майбутньому можуть бути додані інші механізми автентифікації.
Поле | Опис |
---|---|
username [Обовʼязкове]string | username — це імʼя користувача, яке використовується для автентифікації в реєстрі контейнерів. Порожнє імʼя користувача є дійсним. |
password [Обовʼязкове]string | password — це пароль, який використовується для автентифікації в реєстрі контейнерів. Порожній пароль є дійсним. |
PluginCacheKeyType
(Аліас string
)
Зустрічається в:
20 - WebhookAdmission Configuration (v1)
Пакунок v1 є версією v1 API.
Типи ресурсів
WebhookAdmission
WebhookAdmission надає конфігурацію для контролера доступу на основі webhook.<
Поле | Опис |
---|---|
apiVersion string | apiserver.config.k8s.io/v1 |
kind string | WebhookAdmission |
kubeConfigFile [Обовʼязкове]string | KubeConfigFile — це шлях до файлу kubeconfig. |