Добавление пользовательских устройств с использованием ConfigMap
Содержание
Введение
- Реализует стандартизированное определение и управление пользовательскими ресурсами Kubernetes через ConfigMap, решая задачи:
- Унифицированное управление спецификациями пользовательских ресурсов для предотвращения фрагментации конфигураций
- Стандартизированный формат определения ресурсов для лучшей поддерживаемости
- Поддержка многоязычных описаний и настройка значений по умолчанию
- Подходит для сценариев, требующих расширения модели ресурсов Kubernetes (например, управление GPU-ресурсами), предоставляя стандартизированную структуру определения ресурсов
Особенности
- Спецификация определения ресурса с одним ключом
- Определение ресурсов с несколькими связанными ключами
- Стандартизированный интерфейс запроса ресурсов
- Поддержка двуязычных описаний на китайском и английском языках
- Механизм настройки значений ресурсов по умолчанию
Преимущества
- Расширяемость: управление группами ресурсов через метки
- Безопасность: изоляция по namespace (kube-public)
- Стабильность: принудительное соблюдение правил валидации формата
- Поддерживаемость: унифицированные спецификации меток метаданных
Функциональный модуль 1: Спецификации создания ConfigMap
Основные правила
-
Принцип единственной ответственности: один ConfigMap на определение ключа
-
Namespace: фиксирован на namespace=kube-public
-
Правила именования:
cf-crl-{customName}-{keyName}
cf-crl
: фиксированный префикс
customName
: пользовательское валидное имя
keyName
: идентификатор ключа (специальные символы заменяются на '-')
-
Требования к меткам:
labels:
features.alauda.io/type: CustomResourceLimitation # фиксированное значение
features.alauda.io/group: {resource-group} # например, gpu-manager
features.alauda.io/enabled: "true" # флаг активации
Спецификация параметров
Параметр | Обязательный | Описание |
---|
формат имени | Да | Соответствует cf-crl-{customName}-{keyName} |
namespace | Да | Фиксирован как kube-public |
группа меток | Да | Должна содержать указанные 3 метки features |
Функциональный модуль 2: Определение значений ресурсов
Пример с одним ключом
apiVersion: v1
kind: ConfigMap
metadata:
name: cf-crl-gpu-manager-vcuda-core
namespace: kube-public
labels:
features.alauda.io/type: CustomResourceLimitation
features.alauda.io/group: gpu-manager
features.alauda.io/enabled: "true"
data:
key: "tencent.com/vcuda-core" # Ключ ресурса
dataType: "integer" # Тип значения
defaultValue: "20" # Значение по умолчанию
descriptionZh: "" # Описание на китайском
descriptionEn: "GPU vcore count, 100 virtual cores equal 1 physical GPU core" # Описание на английском
group: "gpu-manager" # Группа ресурса
limits: "optional" # Политика поля limits
requests: "disabled" # Политика поля requests
Ассоциация с несколькими ключами
metadata:
name: cf-crl-gpu-manager-vcuda-core
labels: [same group labels]
metadata:
name: cf-crl-gpu-manager-vcuda-memory
labels: [same group labels] # Ассоциация через одинаковые метки
Спецификация политики
Поле | Допустимые значения | Описание |
---|
limits | disabled/required/optional | Конфигурация ограничений ресурса |
requests | disabled/required/fromLimits | Конфигурация запросов ресурса |