• Русский
  • Управление профилями CLI

    Файл конфигурации CLI позволяет настраивать различные профили или контексты для использования с ACP CLI (ac). Контекст состоит из данных аутентификации пользователя и информации о сервере платформы ACP, связанной с псевдонимом.

    Удобное управление конфигурацией

    ACP CLI предоставляет расширенные команды, которые значительно упрощают управление конфигурацией по сравнению с традиционной манипуляцией kubeconfig. Эти команды разработаны для бесшовной работы в мультикластерной среде ACP.

    Управление платформой и сессиями

    ac login — аутентификация и настройка доступа к платформам ACP

    Команда ac login служит основным входом для установления соединений с платформами ACP. Она аутентифицирует пользователей и автоматически настраивает все необходимые записи kubeconfig.

    # Интерактивный вход на платформу ACP
    ac login https://prod.acp.com --name prod
    
    # Вход с указанием конкретного кластера и пространства имён
    ac login https://prod.acp.com --name prod --cluster workload-a --namespace my-app
    
    # Вход с использованием переменных окружения (для автоматизации)
    AC_LOGIN_PLATFORM_URL=https://prod.acp.com AC_LOGIN_SESSION=prod AC_LOGIN_USERNAME=user AC_LOGIN_PASSWORD=secret ac login

    Процесс входа:

    1. Аутентификация на платформе ACP
    2. Обнаружение всех доступных кластеров в платформе
    3. Создание записей кластеров и пользователей в вашем kubeconfig
    4. Создание и активация контекста:
      • Если указан --cluster: создаётся контекст для этого конкретного кластера
      • Если указан --namespace: пространство имён устанавливается в контексте
      • Если кластер не указан: по умолчанию используется глобальный кластер
      • Имя контекста формируется по шаблону: <session_name>/<cluster_name>

    ac logout — завершение сессий платформы и очистка конфигурации

    # Выйти из текущей сессии платформы
    ac logout
    
    # Выйти из конкретной сессии
    ac logout --session prod

    Команда logout удаляет все записи конфигурации, связанные с сессией, включая кластеры, пользователей и контексты.

    ac config get-sessions — список всех настроенных сессий платформ ACP

    ac config get-sessions

    Пример вывода:

    CURRENT   SESSION    PLATFORM                              USER                  CLUSTERS
    *         prod       https://acp.prod.example.com          user@example.com      3
              staging    https://staging.acp.example.com       user@example.com      2
              dev        https://dev.acp.example.com           dev-user@example.com  1

    Эта команда отображает:

    • CURRENT: указывает, принадлежит ли текущий контекст этой сессии (отмечено *)
    • SESSION: имя сессии (задаётся пользователем при входе)
    • PLATFORM: базовый URL платформы
    • USER: имя аутентифицированного пользователя для сессии
    • CLUSTERS: количество доступных кластеров в сессии

    ac config use-session <session_name> — переключение между платформами ACP

    # Переключиться на платформу staging (по умолчанию глобальный кластер)
    ac config use-session staging
    
    # Переключиться на конкретный кластер в сессии
    ac config use-session prod --cluster workload-a
    
    # Переключение с указанием пространства имён
    ac config use-session staging --cluster workload-b --namespace my-app

    Эта команда интеллектуально выбирает или создаёт соответствующие контексты на основе вашей сессии и требований к кластеру.

    Ежедневные операции

    ac config use-cluster <cluster_name> — переключение кластеров в текущей сессии

    # Переключиться на кластер workload в текущей сессии
    ac config use-cluster workload-a
    
    # Создать новый контекст с указанием пространства имён
    ac config use-cluster workload-b --namespace my-app

    Команда находит или создаёт контексты для указанного кластера в рамках текущей сессии платформы.

    ac namespace — просмотр текущего статуса и переключение пространств имён

    Показать текущий статус:

    ac namespace

    Пример вывода:

    Вы находитесь в пространстве имён "my-app-dev".
    
    Контекст:   prod/workload-a
    Кластер:    acp:prod:workload-a
    Сервер:     https://acp.prod.example.com/kubernetes/workload-a/
    Платформа:  https://acp.prod.example.com/
    Сессия:     prod

    Переключить пространство имён:

    ac namespace my-app-dev

    ac config sync — синхронизация конфигурации платформы

    # Синхронизировать текущую сессию платформы
    ac config sync
    
    # Синхронизировать конкретную сессию
    ac config sync --session prod
    
    # Синхронизировать все сессии
    ac config sync --all

    Команда sync обновляет вашу конфигурацию с последней информацией с платформ ACP, добавляя новые кластеры и обновляя учётные данные по мере необходимости.

    Структура конфигурации ACP CLI

    ACP CLI хранит всю информацию конфигурации в стандартном файле ~/.kube/config, обеспечивая полную совместимость с kubectl и другими инструментами Kubernetes, при этом добавляя специфичные для ACP расширения.

    Расширенная структура kubeconfig ACP CLI

    ACP CLI расширяет стандартный формат kubeconfig метаданными ACP для улучшенной интеграции с платформой:

    apiVersion: v1
    clusters:
    - cluster:
        server: https://acp.prod.example.com/kubernetes/global/
        extensions:
        - name: acp.io/v1
          extension:
            isGlobal: true
            platformUrl: https://acp.prod.example.com
            sessionName: prod
            clusterName: global
            description: global cluster
            note: This cluster item is managed by ac CLI, to avoid unexpected behavior, do not edit this item.
      name: acp:prod:global
    - cluster:
        server: https://acp.prod.example.com/kubernetes/workload-a/
        extensions:
        - name: acp.io/v1
          extension:
            isGlobal: false
            platformUrl: https://acp.prod.example.com
            sessionName: prod
            clusterName: workload-a
            description: business cluster for team alpha
            note: This cluster item is managed by ac CLI, to avoid unexpected behavior, do not edit this item.
      name: acp:prod:workload-a
    contexts:
    - context:
        cluster: acp:prod:global
        namespace: default
        user: acp:prod:user
      name: prod/global
    - context:
        cluster: acp:prod:workload-a
        namespace: my-app
        user: acp:prod:user
      name: prod/workload-a
    current-context: prod/global
    kind: Config
    preferences: {}
    users:
    - name: acp:prod:user
      user:
        token: <TOKEN>
        extensions:
        - name: acp.io/v1
          extension:
            platformUrl: https://acp.prod.example.com
            sessionName: prod
            username: user@example.com
            note: This user item is managed by ac CLI, to avoid unexpected behavior, do not edit this item.

    Структура и организация метаданных

    ACP CLI использует расширения метаданных для организации и идентификации записей конфигурации:

    Идентификация на основе метаданных

    • Идентификация платформы: используется platformUrl для определения родительской платформы
    • Ассоциация сессии: используется sessionName для группировки связанных кластеров, пользователей и контекстов
    • Обнаружение глобального кластера: используется поле isGlobal для определения управляющих кластеров
    • Расположение учётных данных пользователя: совпадение sessionName и platformUrl в расширениях пользователя

    Конвенции именования

    ACP CLI использует единообразные правила именования при создании новых записей:

    • Записи кластеров: acp:<session_name>:<cluster_name> (например, acp:prod:global)
    • Записи пользователей: acp:<session_name>:user (например, acp:prod:user)
    • Записи контекстов: <session_name>/<cluster_name> (например, prod/global)
    NOTE

    Префикс acp: гарантирует, что записи, управляемые ACP CLI, не конфликтуют с существующими записями kubeconfig. Пользователи могут вручную переименовывать эти записи — ACP CLI использует метаданные для идентификации, а не имена.

    Ручная настройка профилей CLI

    Для продвинутых пользователей, которым требуется точный контроль над конфигурацией, ACP CLI поддерживает все стандартные команды kubectl config для ручного управления kubeconfig.

    TIP

    Большинству пользователей рекомендуется использовать удобные команды, описанные выше.

    Команды ручной настройки полезны для продвинутых сценариев:

    • Пользовательское именование контекстов — создание контекстов, не следующих конвенциям ACP CLI
    • Среды без ACP — управление традиционными контекстами kubectl наряду с сессиями ACP
    • Сложные мультиконтекстные сценарии — продвинутые рабочие процессы, требующие точного контроля контекстов
    • Отладка проблем с конфигурацией — диагностика или исправление проблем конфигурации

    Стандартные команды конфигурации

    ACP CLI обеспечивает полную совместимость с подкомандами kubectl config:

    ПодкомандаИспользование
    set-clusterУстанавливает запись кластера в файле конфигурации CLI
    set-contextУстанавливает запись контекста в файле конфигурации CLI
    use-contextУстанавливает текущий контекст по указанному имени
    setУстанавливает отдельное значение в файле конфигурации CLI
    unsetСнимает отдельные значения в файле конфигурации CLI
    viewОтображает объединённую конфигурацию CLI, используемую в данный момент

    Примеры ручных операций

    Создать пользовательский контекст:

    # Создать контекст с пользовательским именем
    ac config set-context my-custom-context --cluster=acp:prod:workload-a --namespace=my-app
    
    # Переключиться на пользовательский контекст
    ac config use-context my-custom-context

    Просмотреть текущую конфигурацию:

    # Показать объединённую конфигурацию
    ac config view
    
    # Показать конфигурацию из конкретного файла
    ac config view --config=/path/to/config

    Обновить пространство имён контекста:

    # Установить пространство имён для текущего контекста
    ac config set-context `ac config current-context` --namespace=my-namespace

    Правила загрузки и слияния

    Вы можете следовать этим правилам при выполнении операций CLI для порядка загрузки и слияния конфигурации CLI:

    • Файлы конфигурации CLI загружаются с вашей рабочей станции, используя следующую иерархию и правила слияния:

      • Если задан параметр --config, загружается только этот файл. Флаг устанавливается один раз, слияние не происходит.
      • Если установлена переменная окружения $KUBECONFIG, используется она. Переменная может содержать список путей, которые сливаются вместе. При изменении значения оно изменяется в файле, где определён соответствующий раздел. При создании значения оно создаётся в первом существующем файле. Если ни один файл из списка не существует, создаётся последний файл в списке.
      • В противном случае используется файл ~/.kube/config без слияния.
    • Контекст для использования определяется по первому совпадению в следующем порядке:

      • Значение параметра --context.
      • Значение current-context из файла конфигурации CLI.
      • На этом этапе допускается пустое значение.
    • Пользователь и кластер для использования определяются следующим образом. На этом этапе контекст может быть или не быть; они строятся по первому совпадению в следующем порядке, который выполняется отдельно для пользователя и для кластера:

      • Значение параметра --user для имени пользователя и --cluster для имени кластера.
      • Если присутствует параметр --context, используется значение из контекста.
      • На этом этапе допускается пустое значение.
    • Определяется фактическая информация о кластере. На этом этапе информация о кластере может быть или отсутствовать. Каждое поле информации о кластере строится по первому совпадению в следующем порядке:

      • Значения любых из следующих параметров командной строки: --server, --api-version, --certificate-authority, --insecure-skip-tls-verify
      • Если информация о кластере и значение атрибута присутствуют, используется оно.
      • Если адрес сервера отсутствует, возникает ошибка.
    • Определяется фактическая информация о пользователе. Пользователи строятся по тем же правилам, что и кластеры, за исключением того, что у пользователя может быть только один метод аутентификации; конфликтующие методы вызывают ошибку операции. Параметры командной строки имеют приоритет над значениями из файла конфигурации. Допустимые параметры командной строки:

      • --auth-path
      • --client-certificate
      • --client-key
      • --token
    • Для любой отсутствующей информации используются значения по умолчанию, а также запрашивается дополнительная информация.