Зміна типового StorageClass
Ця сторінка показує, як змінити типовий StorageClass, який використовується для створення томів для PersistentVolumeClaims, які не мають особливих вимог.
Перш ніж ви розпочнете
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:
Для перевірки версії введітьkubectl version
.Чому змінювати типовий StorageClass?
Залежно від методу встановлення, ваш кластер Kubernetes може бути розгорнутий з наявним StorageClass, який позначений як типовий. Цей типовий StorageClass потім використовується для динамічного створення сховищ для PersistentVolumeClaims, які не вимагають будь-якого конкретного класу сховища. Див. документацію по PersistentVolumeClaim для деталей.
Попередньо встановлений типовий StorageClass може не відповідати вашим очікуваним навантаженням; наприклад, він може створювати занадто дороге сховище. У цьому випадку ви можете змінити типовий StorageClass або повністю вимкнути його, щоб уникнути динамічного створення сховища.
Видалення типового StorageClass може бути недійсним, оскільки він може бути автоматично створений знову менеджером надбудов, що працює в вашому кластері. Будь ласка, перегляньте документацію для вашого встановлення для деталей про менеджера надбудов та способи вимкнення окремих надбудов.
Зміна типового StorageClass
Перегляньте StorageClasses у вашому кластері:
kubectl get storageclass
Вивід буде схожий на це:
NAME PROVISIONER AGE standard (default) kubernetes.io/gce-pd 1д gold kubernetes.io/gce-pd 1д
Типовий StorageClass позначений як
(default)
.Позначте типовий StorageClass як не типовий:
У типового StorageClass є анотація
storageclass.kubernetes.io/is-default-class
, встановлена наtrue
. Будь-яке інше значення або відсутність анотації розглядається якfalse
.Щоб позначити StorageClass як не типовий, вам потрібно змінити його значення на
false
:kubectl patch storageclass standard -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
де
standard
— це назва вашого вибраного StorageClass.Позначте StorageClass як типовий:
Аналогічно попередньому кроку, вам потрібно додати/встановити анотацію
storageclass.kubernetes.io/is-default-class=true
.kubectl patch storageclass gold -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Зверніть увагу, що максимум один StorageClass може бути позначений як типовий. Якщо два або більше з них позначені як типові, PersistentVolumeClaim без явно вказаного
storageClassName
не може бути створений.Перевірте, що ваш вибраний StorageClass є default:
kubectl get storageclass
Вивід буде схожий на це:
NAME PROVISIONER AGE standard kubernetes.io/gce-pd 1д gold (default) kubernetes.io/gce-pd 1д
Що далі
- Дізнайтеся більше про PersistentVolumes.