Создание шаблона для кластера Magnum
Выполните команды на деплой-ноде или управляющем узле (на любом хосте, имеющим доступ к сети управления, если там установлены клиенты для работы с OpenStack) пользователем с правами Локального администратора:
-
Примените файл окружения:
$ 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}'`. -
Получите шаблон (он создается после установки 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": ""} -
Создайте JSON-файл из шаблона, полученного на предыдущем шаге, и задайте параметры:
"master_flavor_id": "INSERT","external_network_id": "INSERT","name": "INSERT","flavor_id": "INSERT",Пример: если установить тип инстанса 2 vCPU и 4 ГБ RAM, кластеры можно будет создать только с инстансом, количество ресурсов которых больше установленных. Типы инстансов с количеством ресурсов меньше установленных не будут доступны при выборе.
-
Определите из Портала администратора название проекта (формат названия
mcsXXXXX).-
Получите ID проекта (на примере проект
project1с именемmcs5887620293):$ user_project_id=`openstack project list -f value | grep -w mcs5887620293 | awk '{print $1}'` -
Для пользователя
adminв проекте:-
Проверьте назначена ли пользователю роль Администратора:
$ openstack role assignment list --project $user_project_id | grep -w $admin_role_id -
Назначьте роль Администратора пользователю, если она отсутствует у него:
$ openstack role add --user $admin_user_id --project $user_project_id $admin_role_id -
Проверьте, появилась ли роль Администратора у пользователя:
$ openstack role assignment list --project $user_project_id | grep -w $admin_role_id -
Получите токен:
$ 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 -
Проверьте наличие шаблона в проекте:
$ 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 -
Удалите шаблон, если это нужно:
$ magnum --os-project-id=$user_project_id cluster-template-delete <ШАБЛОН>Здесь
<ШАБЛОН>— идентификатор шаблона.
-
-
-
Если в проекте была удалена/изменена внешняя сеть, удалите Floating IP-адреса из старой сети (раздел Виртуальные сети → IP-адреса → Floating IP на Платформе).