Зміна типового StorageClass

Ця сторінка показує, як змінити типовий StorageClass, який використовується для створення томів для PersistentVolumeClaims, які не мають особливих вимог.

Перш ніж ви розпочнете

Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:

Для перевірки версії введіть kubectl version.

Чому змінювати типовий StorageClass?

Залежно від методу встановлення, ваш кластер Kubernetes може бути розгорнутий з наявним StorageClass, який позначений як типовий. Цей типовий StorageClass потім використовується для динамічного створення сховищ для PersistentVolumeClaims, які не вимагають будь-якого конкретного класу сховища. Див. документацію по PersistentVolumeClaim для деталей.

Попередньо встановлений типовий StorageClass може не відповідати вашим очікуваним навантаженням; наприклад, він може створювати занадто дороге сховище. У цьому випадку ви можете змінити типовий StorageClass або повністю вимкнути його, щоб уникнути динамічного створення сховища.

Видалення типового StorageClass може бути недійсним, оскільки він може бути автоматично створений знову менеджером надбудов, що працює в вашому кластері. Будь ласка, перегляньте документацію для вашого встановлення для деталей про менеджера надбудов та способи вимкнення окремих надбудов.

Зміна типового StorageClass

  1. Перегляньте StorageClasses у вашому кластері:

    kubectl get storageclass
    

    Вивід буде схожий на це:

    NAME                 PROVISIONER               AGE
    standard (default)   kubernetes.io/gce-pd      1д
    gold                 kubernetes.io/gce-pd      1д
    

    Типовий StorageClass позначений як (default).

  2. Позначте типовий 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.

  3. Позначте 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 не може бути створений.

  4. Перевірте, що ваш вибраний StorageClass є default:

    kubectl get storageclass
    

    Вивід буде схожий на це:

    NAME             PROVISIONER               AGE
    standard         kubernetes.io/gce-pd      1д
    gold (default)   kubernetes.io/gce-pd      1д
    

Що далі

Змінено August 10, 2024 at 8:09 PM PST: Local links were prefixed with "uk" (7d9a96f799)