• Русский
  • Управление профилями 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
    
    # Вход с указанием конкретного кластера и namespace
    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: 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
    
    # Переключение с указанием namespace
    ac config use-session staging --cluster workload-b --namespace my-app

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

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

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

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

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

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

    Отобразить текущий статус:

    ac namespace

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

    Вы сейчас находитесь в 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

    Переключить namespace:

    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: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
        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

    Обновить namespace контекста:

    # Установить namespace для текущего контекста
    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
    • Для любой отсутствующей информации используются значения по умолчанию, а также запрашивается дополнительная информация.