Плагин моментального снимка диска предназначен для упрощения управления хранилищами. После того как пользователь создает объект VolumeSnapshot
с указанием класса снимка, моментальный снимок и соответствующий объект VolumeSnapshotContent
создаются динамически и становятся готовыми для использования рабочими нагрузками.
Эта реализация не зависит от функции CSI, но использует концепцию моментальных снимков CSI, которая будет использоваться в качестве альфа-функции в k8s 1.13.
Плагин моментального снимка диска создает три CRD следующих типов:
volumesnapshotclasses.snapshot.storage.k8s.io: определяет детали создания объектов VolumeSnapshotContent, аналогично: StorageClass;
volumesnapshotcontents.snapshot.storage.k8s.io: определяет один моментальный снимок диска с обратной стороной, аналогично: PV;
volumesnapshots.snapshot.storage.k8s.io: претензия одного снимка, аналогично: PVC;
Плагин моментального снимка диска может быть собран в виде контейнера.
Для сборки контейнера выполните команду:
$ cd build && sh build.sh
Вы можете создать кластер Kubernetes на Alibaba Cloud Container Service.
Кластер Kubernetes должен быть версии 1.12 или выше.
Редактирование файлов:
/etc/kubernetes/manifests/kube-apiserver.yaml
/etc/kubernetes/manifests/kube-controller-manager.yaml
/etc/kubernetes/manifests/kube-scheduler.yaml
Добавьте:
- --feature-gates=CSINodeInfo=true,CSIDriverRegistry=true,VolumeSnapshotDataSource=true
Примечания:
cp /etc/kubernetes/manifests/kube-apiserver.yaml /tmp/kube-apiserver.yaml
Измените
/tmp/kube-apiserver.yaml
.cp /tmp/kube-apiserver.yaml /etc/kubernetes/manifests/kube-apiserver.yaml
# vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Добавьте:
Environment="KUBELET_FEATURE_GATES_ARGS=--feature-gates=CSINodeInfo=true,CSIDriverRegistry=true,VolumeSnapshotDataSource=true"
Перезапустите kubelet:
systemctl daemon-reload && systemctl restart kubelet
Если кластер не находится в режиме STS, вам потребуется настроить информацию AK для плагина; Установите ACCESS_KEY_ID
и ACCESS_KEY_SECRET
в окружение;
# kubectl create -f ./deploy/snapshot-controller.yaml
# kubectl get pod -n kube-system | grep alicloud-disk-snapshot
alicloud-disk-snapshot-89c88c7f7-6z95j 2/2 Running 0 42s
NAME AGE default-snapclass 15s
Создаются три CRD:
volumesnapshotclasses.snapshot.storage.k8s.io 2019-01-16T12:00:46Z volumesnapshotcontents.snapshot.storage.k8s.io 2019-01-16T12:00:46Z volumesnapshots.snapshot.storage.k8s.io 2019-01-16T12:00:46Z
## Использование
### Создание Pod с диском
Создайте деплоймент и PVC, используя дисковый объём.
NAME READY STATUS RESTARTS AGE dynamic-create-7fbf55b58f-qnrgm 1/1 Running 0 21s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-disk Bound d-wz9hhnhxu66zs6r6yyyq 20Gi RWO alicloud-disk-ssd 25s
### Шаг 4: Создание снимка с помощью PVC
volumesnapshot.snapshot.storage.k8s.io/snapshot-test создано
NAME AGE snapshot-test 2м
NAME AGE snapcontent-77a75b63-1987-11e9-a520-00163e024341 2м ``> snapshot.yaml определяет имя данных источника pvc и имя snapshotClass.
# kubectl create -f deploy-datasource.yaml
# kubectl get pod
NAME READY STATUS RESTARTS AGE
dynamic-create-7fbf55b58f-qnrgm 1/1 Running 0 10м
dynamic-snapshot-fdc86b6d8-bl6h5 1/1 Running 0 13с
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
disk-snapshot Bound d-wz98cj3vphycosrm6joa 20Gi RWO alicloud-disk-ssd 4с
pvc-disk Bound d-wz9hhnhxu66zs6r6yyyq 20Gi RWO alicloud-disk-ssd 10м
```# kubectl exec -ti dynamic-snapshot-fdc86b6d8-bl6h5 ls /data
lost+found snapshot123
Новый PVC создает новый диск, использующийся в снапшоте. И новый диск содержит старый диск с файлами (snapshot123).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )