Інформація в цьому документі може бути застарілою
Дата оновлення цього документа старіша за оригінал, можливо інформація в ньому застаріла. Радимо ознайомитись з оригіналом англійською для отримання найсвіжіших відомостей: kube-apiserver Configuration (v1)
kube-apiserver Configuration (v1)
Пакет v1 — це версія API v1.
Типи ресурсів
AdmissionConfiguration
AdmissionConfiguration надає версійовану конфігурацію для контролерів допуску.
Поле | Опис |
---|---|
apiVersion string | apiserver.config.k8s.io/v1 |
kind string | AdmissionConfiguration |
plugins []AdmissionPluginConfiguration | Plugins дозволяє вказувати конфігурацію для кожного втулка контролю допуску. |
AuthorizationConfiguration
Поле | Опис |
---|---|
apiVersion string | apiserver.config.k8s.io/v1 |
kind string | AuthorizationConfiguration |
authorizers [Обовʼязково][]AuthorizerConfiguration | Авторизатори — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорець --authorization-modes kube-apiserver Має бути принаймні один. |
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 — це вбудований конфігураційний обʼєкт, який використовується як конфігурація втулка. Якщо він присутній, то буде використовуватися замість шляху до конфігураційного файлу. |
AuthorizerConfiguration
Зʼявляється в:
Поле | Опис |
---|---|
type [Обовʼязково]string | Тип відноситься до типу авторизатора "Webhook" підтримується в загальному API сервері. Інші API сервери можуть підтримувати додаткові типи авторизаторів, такі як Node, RBAC, ABAC тощо. |
name [Обовʼязково]string | Name використовується для опису веб-хука. Це явно використовується в механізмах моніторингу для метрик. Примітка: Імена мають бути у вигляді міток DNS1123, наприклад |
webhook [Обовʼязково]WebhookConfiguration | Webhook визначає конфігурацію для авторизації Webhook. Має бути визначений, якщо Type=Webhook. Не повинно бути визначено, якщо Type!=Webhook |
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 байти. |
WebhookConfiguration
Зʼявляється в:
Поле | Опис |
---|---|
authorizedTTL [Обовʼязково]meta/v1.Duration | Тривалість кешування 'authorized' відповідей від авторизатора вебхуку. Теж, що й встановлення прапорця |
unauthorizedTTL [Обовʼязково]meta/v1.Duration | Тривалість кешування 'unauthorized' відповідей від авторизатора вебхуку. Теж, що й встановлення прапорця |
timeout [Обовʼязково]meta/v1.Duration | Таймаут для запиту веб-хука. Максимально допустиме значення — 30 секунд. Обовʼязкове, без стандартного значення. |
subjectAccessReviewVersion [Обовʼязково]string | Версія API authorization.k8s.io SubjectAccessReview, яку потрібно надсилати до веб-хука та очікувати від нього. Теж, що й встановлення прапорця |
matchConditionSubjectAccessReviewVersion [Обовʼязково]string | MatchConditionSubjectAccessReviewVersion specifies the SubjectAccessReview version the CEL expressions are evaluated against. Допустимі значення: v1. Обовʼязкове, без стандартного значення. |
failurePolicy [Обовʼязково]string | Керує рішенням про авторизацію, коли вебхук не може завершити запит або повертає неправильну відповідь чи помилки в оцінці matchConditions. Допустимі значення:
|
connectionInfo [Обовʼязково]WebhookConnectionInfo | ConnectionInfo визначає, як ми звʼязуємося з веб-хуком |
matchConditions [Обовʼязково][]WebhookMatchCondition | matchConditions — це список умов, яким повинен відповідати запит, щоб бути відправленим на цей вебхук. Порожній список matchConditions відповідає всім запитам. Допускається максимум 64 умови збігу. Логіка точного збігу така (по порядку):
|
WebhookConnectionInfo
Зʼявляється в:
Поле | Опис |
---|---|
type [Обовʼязково]string | Керує тим, як веб-хук повинен взаємодіяти з сервером. Допустимі значення:
|
kubeConfigFile [Обовʼязково]string | Шлях до KubeConfigFile для інформації про зʼєднання. Обов'язковий, якщо connectionInfo. Має тип KubeConfig |
WebhookMatchCondition
Зʼявляється в:
Поле | Опис |
---|---|
expression [Обовʼязково]string | expression представляє вираз, який буде обчислено CEL. Повинен мати тип bool. Вирази CEL мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана в subjectAccessReviewVersion у змінній запиту, має значення v1beta1, вміст буде перетворено у версію v1 перед обчисленням виразу CEL.
Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ |