CSINode
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSINode
CSINode містить інформацію про всі драйвери CSI, встановлені на вузлі. Драйверам CSI не потрібно створювати обʼєкт CSINode безпосередньо. Якщо вони використовують sidecar контейнер node-driver-registrar, kubelet автоматично заповнить обʼєкт CSINode для драйвера CSI під час реєстрації втулка kubelet. CSINode має ту ж назву, що і вузол. Якщо обʼєкт відсутній, це означає, що або на вузлі немає доступних драйверів CSI, або версія Kubelet є достатньо низькою, щоб не створювати цей обʼєкт. CSINode має OwnerReference, яке вказує на відповідний обʼєкт вузла.
apiVersion: storage.k8s.io/v1
kind: CSINode
metadata (ObjectMeta)
Стандартні метадані обʼєкта. metadata.name має бути назвою вузла Kubernetes.
spec (CSINodeSpec)
spec — це специфікація CSINode
CSINodeSpec
CSINodeSpec містить інформацію про специфікації всіх драйверів CSI, встановлених на вузлі.
drivers ([]CSINodeDriver), обовʼязково
Patch strategy: злиття за ключем
name
Map: унікальні значення ключа name будуть збережені під час злиття
drivers — це список інформації про всі драйвери CSI, які існують на вузлі. Якщо всі драйвери в списку видалено, цей список може бути порожнім.
CSINodeDriver містить інформацію про специфікацію одного драйвера CSI, встановленого на вузлі
drivers.name (string), обовʼязково
name представляє імʼя драйвера CSI, до якого відноситься цей обʼєкт. Це МАЄ бути те саме імʼя, яке повертає виклик CSI GetPluginName() для цього драйвера.
drivers.nodeID (string), обовʼязково
nodeID вузла з погляду драйвера. Це поле дозволяє Kubernetes взаємодіяти з системами зберігання, які не використовують ту ж номенклатуру для вузлів. Наприклад, Kubernetes може називати вузол "node1", але система зберігання може називати той самий вузол "nodeA". Коли Kubernetes видає команду системі зберігання для приєднання тому до конкретного вузла, він може використовувати це поле для посилання на імʼя вузла за допомогою ID, який зрозуміє система зберігання, наприклад "nodeA" замість "node1". Це поле обовʼязкове.
drivers.allocatable (VolumeNodeResources)
allocatable представляє ресурс тому вузла, доступний для планування. Це поле є бета-версією.
VolumeNodeResources — це набір обмежень ресурсів для планування томів.
drivers.allocatable.count (int32)
count вказує максимальну кількість унікальних томів, що керуються драйвером CSI, які можна використовувати на вузлі. Том, який одночасно приєднаний і змонтований на вузлі, вважається використаним один раз, а не двічі. Те саме правило застосовується до унікального тому, який розділяється між кількома Podʼами на одному вузлі. Якщо це поле не вказано, то кількість підтримуваних томів на цьому вузлі не обмежена.
drivers.topologyKeys ([]string)
Atomic: буде замінено під час злиття
topologyKeys — це список ключів, підтримуваних драйвером. Коли драйвер ініціалізується в кластері, він надає набір ключів топології, які він розуміє (наприклад, "company.com/zone", "company.com/region"). Коли драйвер ініціалізується на вузлі, він надає ті самі ключі топології разом зі значеннями. Kubelet відображатиме ці ключі топології як мітки на своєму власному обʼєкті вузла. Коли Kubernetes виконує планування з урахуванням топології, він може використовувати цей список для визначення, які мітки він повинен отримати з обʼєкта вузла та передати назад драйверу. Для різних вузлів можуть використовуватися різні ключі топології. Це поле може бути порожнім, якщо драйвер не підтримує топологію.
CSINodeList
CSINodeList — це колекція обʼєктів CSINode.
apiVersion: storage.k8s.io/v1
kind: CSINodeList
metadata (ListMeta)
Стандартні метадані списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]CSINode), обовʼязково
items — це список CSINode.
Операції
get
отримати вказаний CSINode
HTTP запит
GET /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
pretty (в запиті): string
Відповідь
200 (CSINode): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу CSINode
HTTP запит
GET /apis/storage.k8s.io/v1/csinodes
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (CSINodeList): OK
401: Unauthorized
create
створення CSINode
HTTP запит
POST /apis/storage.k8s.io/v1/csinodes
Параметри
body: CSINode, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (CSINode): OK
201 (CSINode): Created
202 (CSINode): Accepted
401: Unauthorized
update
заміна вказаного CSINode
HTTP запит
PUT /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
body: CSINode, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (CSINode): OK
201 (CSINode): Created
401: Unauthorized
patch
часткове оновлення вказаного CSINode
HTTP запит
PATCH /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (CSINode): OK
201 (CSINode): Created
401: Unauthorized
delete
видалення CSINode
HTTP запит
DELETE /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (CSINode): OK
202 (CSINode): Accepted
401: Unauthorized
deletecollection
видалення колекції CSINode
HTTP запит
DELETE /apis/storage.k8s.io/v1/csinodes
Параметри
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
Відповідь
200 (Status): OK
401: Unauthorized