Хранилище
Для хранения данных Kubernetes-кластера в VMware vSphere используются:
- Datastore — для размещения root-дисков виртуальных машин;
- CNS-диски (Container Native Storage) — для автоматического создания PersistentVolume’ов через CSI.
Deckhouse Kubernetes Platform автоматически создаёт StorageClass для каждого Datastore и DatastoreCluster, маркированных как zone.
Можно указать:
- имя StorageClass по умолчанию (
default); - исключения через
exclude— список имен или шаблонов StorageClass, которые не нужно создавать.
Пример настройки через ModuleConfig:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cloud-provider-vsphere
spec:
version: 2
enabled: true
settings:
storageClass:
default: fast-lun102
exclude:
- ".*-lun101-.*"
- slow-lun103
Изменение размера тома (PVC)
Deckhouse Kubernetes Platform поддерживает Online Resize PersistentVolume, начиная с версии vSphere 7.0U2. Однако из-за особенностей CSI и API vSphere после изменения размера PVC требуется выполнить дополнительные действия:
- Выполните
d8 k cordon <имя_узла>. - Удалите под, использующий PVC.
- Дождитесь завершения операции Resize:
- убедитесь, что у PVC нет condition
Resizing; FileSystemResizePendingможно игнорировать.
- убедитесь, что у PVC нет condition
- Выполните
d8 k uncordon <имя_узла>.
Балансировка нагрузки
Варианты организации балансировки входящего трафика:
-
Через внешний балансировщик. Если в инфраструктуре уже есть внешний балансировщик (например, NSX-T), можно направлять трафик напрямую на frontend-узлы кластера.
-
Через MetalLB. Для отказоустойчивой балансировки внутри кластера рекомендуется использовать MetalLB в режиме BGP. В этом случае:
- frontend-узлы получают два сетевых интерфейса;
- требуется отдельный VLAN для BGP-трафика;
- необходим DHCP и доступ в интернет в этой сети;
- указываются IP-адреса и ASN BGP-роутеров;
- задаётся пул IP-адресов, который будет анонсироваться.
Необходимо обеспечить связь между BGP-роутерами и frontend-узлами в выделенном VLAN.
CSI
Подсистема хранения по умолчанию использует CNS-диски с возможностью изменения их размера на лету. Но также поддерживается работа и в legacy-режиме с использованием FCD-дисков. Поведение подсистемы устанавливается с помощью параметра compatibilityFlag.
Важная информация об увеличении размера PVC
Из-за особенностей работы volume-resizer CSI и vSphere API, после увеличения размера PVC нужно сделать следующее:
- На узле, где находится под, выполните команду
d8 k cordon <имя_узла>. - Удалите под.
- Убедитесь, что изменение размера прошло успешно. В объекте PVC не будет condition
Resizing.Состояние
FileSystemResizePendingне является проблемой. - На узле, где находится под, выполните команду
d8 k uncordon <имя_узла>.
Настройка Datastore
Pазметку Datastore также можно сделать через vSphere Client по инструкции «Настройка через vSphere Client». Ниже описана настройка через govc.
Для корректной работы PersistentVolume необходимо, чтобы datastore был доступен на всех ESXi.
Назначьте теги:
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>