Kubelet Configuration (v1alpha1)

Типи ресурсів

CredentialProviderConfig

CredentialProviderConfig є конфігурацією, що містить інформацію про кожен втулок облікових даних exec. Kubelet читає цю конфігурацію з диска та активує кожен втулок відповідно до типу CredentialProvider.

ПолеОпис
apiVersion
string
kubelet.config.k8s.io/v1alpha1
kind
string
CredentialProviderConfig
providers [Обовʼязково]
[]CredentialProvider

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

ImagePullIntent

ImagePullIntent - це запис про те, що kubelet намагається витягнути образ.

ПолеОпис
apiVersion
string
kubelet.config.k8s.io/v1alpha1
kind
string
ImagePullIntent
image [Обовʼязково]
string

Image — є специфікацією образ в полі image контейнера. Імʼя файлу — це хеш SHA-256 цього значення. Це робиться для того, щоб уникнути небезпечних символів у назві файлу символів, таких як ':' та '/'.

ImagePulledRecord

ImagePullRecord - це запис образу, який було витягнуто kubelet.

Якщо у полі kubernetesSecrets немає жодного запису, а значення nodeWideCredentials і anonymous дорівнюють false, то при наступному запиті образу, представленого цим записом, потрібно буде повторно перевірити облікові дані.

CredentialProvider

Зʼявляється в:

CredentialProvider представляє втулок exec, який буде викликаний kubelet. Втулок буде викликаний тільки тоді, коли образ, який завантажується, відповідає образам, які підтримуються втулком (див. matchImages).

ПолеОпис
apiVersion
string
kubelet.config.k8s.io/v1alpha1
kind
string
ImagePulledRecord
lastUpdatedTime [Обовʼязково]
meta/v1.Time

LastUpdatedTime — час останнього оновлення цього запису

imageRef [Обовʼязково]
string

ImageRef — це посилання на образ, представлений цим файлом, отримане від CRI. Імʼя файлу — це хеш SHA-256 цього значення. Це робиться для того, щоб уникнути небезпечних символів у назві файлу, таких як ':' та '/'.

credentialMapping [Обовʼязково]
map[string]ImagePullCredentials

CredentialMapping зіставляє image з набором облікових даних, які використовувалис для попереднього отримання образу. image в цьому випадку — є вмістом поля image контейнера podʼа, зякого вилдалено теґ/дайджест.

Приклад: Контейнер запитує образ hello-world:latest@sha256:91fb4b041da273d5a3273b6d587d62d518300a6ad268b28628f74997b93171b2 image: "credentialMapping": { "hello-world": { "nodePodsAccessible": true } }

ПолеОпис
name [Обовʼязково]
string

name є обовʼязковою назвою постачальника облікових даних. Назва повинна відповідати назві виконуваного файлу постачальника, як його бачить kubelet. Виконуваний файл повинен знаходитися в теці bin kubelet (встановленій за допомогою прапорця --image-credential-provider-bin-dir). Має бути унікальним серед всіх провайдерів.

matchImages [Обовʼязково]
[]string

matchImages є обовʼязковим списком рядків, які використовуються для зіставлення з образами, щоб визначити, чи потрібно викликати цього провайдера. Якщо один з рядків відповідає запитаному образу від kubelet, втулок буде викликаний і отримає можливість надати облікові дані. Образи повинні містити домен реєстрації та URL шлях.

Кожен запис у matchImages є шаблоном, який може містити порт і шлях. Глоби можуть використовуватися в домені, але не в порту чи шляху. Глоби підтримуються як піддомени, такі як *.k8s.io або k8s.*.io, і домени верхнього рівня, такі як k8s.*. Піддомени з частковими збігами, такі як app*.k8s.io, також підтримуються. Кожен шаблон може відповідати лише одному сегменту піддомена, тому *.io не відповідає *.k8s.io.

Відповідність існує між образами і matchImage, коли все з наведеного нижче є істинними:

  • Обидва містять однакову кількість частин домену, і кожна частина має збіг.
  • Шлях URL образу matchImage повинен бути префіксом шляху URL цільового образу.
  • Якщо imageMatch містить порт, порт також повинен мати збіг в образі.

Приклади значень matchImages:

  • 123456789.dkr.ecr.us-east-1.amazonaws.com
  • *.azurecr.io
  • gcr.io
  • *.*.registry.io
  • registry.io:8080/path
defaultCacheDuration [Обовʼязково]
meta/v1.Duration

defaultCacheDuration є стандартною тривалістю, впродовж якої втулок кешуватиме облікові дані в памʼяті, якщо тривалість кешу не надана у відповіді втулка. Це поле є обовʼязковим.

apiVersion [Обовʼязково]
string

Обовʼязкова версія вхідного exec CredentialProviderRequest. Повернута CredentialProviderResponse МУСИТЬ використовувати таку ж версію кодування, як і вхідна. Поточні підтримувані значення:

  • credentialprovider.kubelet.k8s.io/v1alpha1
args
[]string

Аргументи, які слід передати команді при її виконанні.

env
[]ExecEnvVar

Env визначає додаткові змінні середовища, які слід надати процесу. Вони обʼєднуються з середовищем хоста, а також з змінними, які використовує client-go для передачі аргументів втулку.

ExecEnvVar

Зʼявляється в:

ExecEnvVar використовується для встановлення змінних середовища при виконанні втулка облікових даних на основі exec.

ПолеОпис
name [Обовʼязково]
string
Опис не надано.
value [Обовʼязково]
string
Опис не надано.

ImagePullCredentials

Зʼявляється в:

ImagePullCredentials описує облікові дані, які можна використовувати для витягування образу.

ПолеОпис
kubernetesSecrets
[]ImagePullSecret

KuberneteSecretCoordinates — індекс координат усіх секретів kubernetes, які було використано для витягування зображень.

nodePodsAccessible
bool

NodePodsAccessible - прапорець, який вказує на те, що облікові дані для витягування доступні для всіх podʼів на вузлі, або на те, що для витягування не потрібні жодні облікові дані.

Якщо значення true, воно є взаємовиключним з полем kubernetesSecrets.

ImagePullSecret

Зʼявляється в:

ImagePullSecret — це представлення координат обʼєкта секрету Kubernetes разом з хешем облікових даних обʼєкта pull secret, який містить цей обʼєкт.

ПолеОпис
uid [Обовʼязково]
string
Опис не надано.
namespace [Обовʼязково]
string
Опис не надано.
name [Обовʼязково]
string
Опис не надано.
credentialHash [Обовʼязково]
string

CredentialHash — це SHA-256, отриманий шляхом хешування вмісту облікових даних для витягування образу з секрету, заданого координатами UID/Namespace/Name.

Змінено May 10, 2025 at 8:15 PM PST: sync upstream (951093d572)