• Русский
  • Добавление пользовательских устройств с использованием ConfigMap

    Содержание

    Введение

    • Реализует стандартизированное определение и управление пользовательскими ресурсами Kubernetes через ConfigMap, решая задачи:
    • Унифицированное управление спецификациями пользовательских ресурсов для предотвращения фрагментации конфигураций
    • Стандартизированный формат определения ресурсов для лучшей поддерживаемости
    • Поддержка многоязычных описаний и настройка значений по умолчанию
    • Подходит для сценариев, требующих расширения модели ресурсов Kubernetes (например, управление GPU-ресурсами), предоставляя стандартизированную структуру определения ресурсов

    Особенности

    • Спецификация определения ресурса с одним ключом
    • Определение ресурсов с несколькими связанными ключами
    • Стандартизированный интерфейс запроса ресурсов
    • Поддержка двуязычных описаний на китайском и английском языках
    • Механизм настройки значений ресурсов по умолчанию

    Преимущества

    • Расширяемость: управление группами ресурсов через метки
    • Безопасность: изоляция по namespace (kube-public)
    • Стабильность: принудительное соблюдение правил валидации формата
    • Поддерживаемость: унифицированные спецификации меток метаданных

    Функциональный модуль 1: Спецификации создания ConfigMap

    Основные правила

    1. Принцип единственной ответственности: один ConfigMap на определение ключа

    2. Namespace: фиксирован на namespace=kube-public

    3. Правила именования:

      cf-crl-{customName}-{keyName} 
      • cf-crl: фиксированный префикс
      • customName: пользовательское валидное имя
      • keyName: идентификатор ключа (специальные символы заменяются на '-')
    4. Требования к меткам:

      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]  # Ассоциация через одинаковые метки

    Спецификация политики

    ПолеДопустимые значенияОписание
    limitsdisabled/required/optionalКонфигурация ограничений ресурса
    requestsdisabled/required/fromLimitsКонфигурация запросов ресурса