VK Private Cloud logo
Помощь
Обновлена 17 июля 2026 г. в 15:55

Создание шаблона для кластера Magnum

Подсистема
Cloud Containers
Компонент
Magnum

Выполните команды на деплой-ноде или управляющем узле (на любом хосте, имеющим доступ к сети управления, если там установлены клиенты для работы с OpenStack) пользователем с правами Локального администратора:

  1. Примените файл окружения:

    $ source openrc.sh            $ token=`openstack token issue -f value -c id`.$ admin_user_id=`openstack user list -f value | grep -w admin | awk '{print $1}'`.$ admin_role_id=` openstack role list -f value | grep -w "admin" | awk '{print $1}'`.
  2. Получите шаблон (он создается после установки Magnum):

    $ openstack coe cluster template list -f json[  {    "uuid": "b0532c7c-cc9d-4ee8-8b83-843af91550d3",    "name": "Kubernetes-almalinux-v1.26.5-mcs.external",    "tags": ""  }]$ openstack coe cluster template show b0532c7c-cc9d-4ee8-8b83-843af91550d3  -f json{    "insecure_registry": "true",    "labels": {        "prometheus_monitoring": "true",        "calico_ipv4pool": "10.100.0.0/16",        "kube_ccm_tag": "1.26.5-mcs.2",        "kube_autoscaler_tag": "1.26.3-mcs.1",        "container_infra_prefix": "registry.infra.mail.ru:5010/",        "use_ccm": "true",        "kube_core_tag": "1.26.5-mcs.2",        "task_support": "true",        "calico_tag": "v3.26.1",        "calico_cni_tag": "v3.26.1",        "calico_kube_controllers_tag": "v3.26.1",        "cinder_csi_plugin_version": "1.26.2-mcs.3",        "kube_dashboard_version": "v2.3.1",        "ingress_controller_tag": "v1.2.1",        "cgroup_driver": "systemd",        "etcd_tag": "v3.5.9",        "config_drive": "true"    },    "updated_at": "-",    "floating_ip_enabled": true,    "fixed_subnet": "-",    "master_flavor_id": "311956c1-7f0b-4494-ba07-15978ac59ccc",    "uuid": "b0532c7c-cc9d-4ee8-8b83-843af91550d3",    "no_proxy": "",    "https_proxy": "",    "tls_disabled": false,    "keypair_id": "-",    "public": true,    "http_proxy": "",    "docker_volume_size": "-",    "server_type": "vm",    "external_network_id": "7ec400f9-83c6-4cb4-9145-1baaaf2f3512",    "cluster_distro": "almalinux",    "image_id": "08e144ff-fb54-477a-a048-e3a74e5728ec",    "volume_driver": "-",    "registry_enabled": false,    "docker_storage_driver": "devicemapper",    "apiserver_port": "-",    "name": "Kubernetes-almalinux-v1.26.5-mcs.external",    "created_at": "2023-11-08T02:23:47+00:00",    "network_driver": "calico",    "fixed_network": "-",    "coe": "kubernetes",    "flavor_id": "311956c1-7f0b-4494-ba07-15978ac59ccc",    "master_lb_enabled": true,    "dns_nameserver": "10.235.100.1",    "hidden": "",    "tags": ""}
  3. Создайте JSON-файл из шаблона, полученного на предыдущем шаге, и задайте параметры:

    "master_flavor_id": "INSERT","external_network_id": "INSERT","name": "INSERT","flavor_id": "INSERT",

    Пример: если установить тип инстанса 2 vCPU и 4 ГБ RAM, кластеры можно будет создать только с инстансом, количество ресурсов которых больше установленных. Типы инстансов с количеством ресурсов меньше установленных не будут доступны при выборе.

  4. Определите из Портала администратора название проекта (формат названия mcsXXXXX).

    1. Получите ID проекта (на примере проект project1 с именем mcs5887620293):

      $ user_project_id=`openstack project list -f value | grep -w mcs5887620293 | awk '{print $1}'`
    2. Для пользователя admin в проекте:

      1. Проверьте назначена ли пользователю роль Администратора:

        $ openstack role assignment list --project $user_project_id | grep -w $admin_role_id
      2. Назначьте роль Администратора пользователю, если она отсутствует у него:

        $ openstack role add --user $admin_user_id --project $user_project_id $admin_role_id
      3. Проверьте, появилась ли роль Администратора у пользователя:

        $ openstack role assignment list --project $user_project_id | grep -w $admin_role_id
      4. Получите токен:

        $ user_token=`openstack --os-project-id=$user_project_id  token issue -f value -c id`             $ magnum_url=`openstack endpoint list --service magnum --interface internal -f value -c URL`             $ curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: "$user_token -d @cluster-template-work-745.json $magnum_url/clustertemplates
      5. Проверьте наличие шаблона в проекте:

        $ curl -X GET -H "Content-Type: application/json" -H "X-Auth-Token: "$user_token  $magnum_url/clustertemplates

        Или:

        $ magnum --os-project-id=$user_project_id  cluster-template-list
      6. Удалите шаблон, если это нужно:

        $ magnum --os-project-id=$user_project_id  cluster-template-delete <ШАБЛОН>

        Здесь <ШАБЛОН> — идентификатор шаблона.

  5. Если в проекте была удалена/изменена внешняя сеть, удалите Floating IP-адреса из старой сети (раздел Виртуальные сетиIP-адресаFloating IP на Платформе).