Стадия жизненного цикла модуля: Deprecated
В этом разделе описана подготовка vCenter и vSphere к работе модуля csi-vsphere.
Список необходимых ресурсов
Для работы модуля требуется наличие следующих ресурсов:
- User с необходимым набором прав.
- Network с DHCP и доступом в интернет.
- Datacenter с соответствующим тегом
k8s-region. - Cluster с соответствующим тегом
k8s-zone. - Datastore в любом количестве с соответствующими тегами.
Установка govc
Для дальнейшей конфигурации csi-vsphere понадобится vSphere CLI — govc.
После установки задайте переменные окружения для работы с vCenter:
export GOVC_URL=example.com
export GOVC_USERNAME=<username>@vsphere.local
export GOVC_PASSWORD=<password>
export GOVC_INSECURE=1
Создание тегов и категорий тегов
В csi-vsphere нет понятий «регион» и «зона». «Регионом» в csi-vsphere является Datacenter, а «зоной» — Cluster. Связь между этими объектами задаётся через теги.
Чтобы связать объекты Cluster и Datacenter, выполните следующие действия:
-
Создайте категории тегов:
govc tags.category.create -d "Kubernetes Region" k8s-region govc tags.category.create -d "Kubernetes Zone" k8s-zone -
Создайте теги в каждой категории. Если планируется несколько зон (Cluster), создайте отдельный тег для каждой:
govc tags.create -d "Kubernetes Region" -c k8s-region test-region govc tags.create -d "Kubernetes Zone Test 1" -c k8s-zone test-zone-1 govc tags.create -d "Kubernetes Zone Test 2" -c k8s-zone test-zone-2 -
Назначьте тег региона на Datacenter:
govc tags.attach -c k8s-region test-region /<DatacenterName> -
Назначьте теги зон на объекты Cluster:
govc tags.attach -c k8s-zone test-zone-1 /<DatacenterName>/host/<ClusterName1> govc tags.attach -c k8s-zone test-zone-2 /<DatacenterName>/host/<ClusterName2>
Конфигурация Datastore
Для динамического заказа PersistentVolume необходимо, чтобы Datastore был доступен на каждом хосте ESXi (shared datastore).
Для автоматического создания StorageClass в кластере назначьте теги региона и зоны на объекты Datastore:
govc tags.attach -c k8s-region test-region /<DatacenterName>/datastore/<DatastoreName1>
govc tags.attach -c k8s-zone test-zone-1 /<DatacenterName>/datastore/<DatastoreName1>
govc tags.attach -c k8s-region test-region /<DatacenterName>/datastore/<DatastoreName2>
govc tags.attach -c k8s-zone test-zone-2 /<DatacenterName>/datastore/<DatastoreName2>
Создание и назначение роли
Ввиду разнообразия подключаемых к csi-vsphere SSO-провайдеров шаги по созданию пользователя в данном разделе не рассматриваются.
Предлагаемая ниже роль включает права, достаточные для всех компонентов DKP. Детальный перечень привилегий описан в документации модуля cloud-provider-vsphere.
Создайте роль с необходимыми правами:
govc role.create deckhouse \
Cns.Searchable Datastore.AllocateSpace Datastore.Browse Datastore.FileManagement \
Global.GlobalTag Global.SystemTag Network.Assign StorageProfile.View \
$(govc role.ls Admin | grep -F -e 'Folder.' -e 'InventoryService.' -e 'Resource.' -e 'VirtualMachine.')
Назначьте пользователю роль на объекте vCenter:
govc permissions.set -principal <username>@vsphere.local -role deckhouse /