Kubernetes
November 11, 2022

S3 Unlimited + PVC limited

Что будет если создать PVC с ограниченным объёмом поверх бакета у которого нет ограничений на объём?

В кубере есть S3 хранилище. Предположим есть бакет с неограниченным размером. С другой стороны есть PVC с ограничением в 100Гб. Вопрос: влезет ли файл в 1000Гб в такое хранилище? Ответ: влезет. И видимо не только 1000Гб.

Пример:

Есть бакет без ограничения размера.

+--------------------+-----------------------------+
| NAME               | VALUE                       |
+--------------------+-----------------------------+
| bucket_name        | cam-test                    |
| cloud_id           | b1gig0ogqtnk75jde2q8        |
| folder_id          | b1g62iqs14tk7mu0faun        |
| storage_class      | STANDARD                    |
| public             | False                       |
| used_space         | 1 GB, 976 MB                |
| max_space          | unlimited                   |
| standard_obj_count | 1                           |
| standard_size      | 0                           |
| cold_obj_count     | 0                           |
| cold_size          | 0                           |
| created_at         | 2022-11-10T19:48:58.153629Z |
+--------------------+-----------------------------+

По строчке used_space видно, что используется 1 GB, 976 MB

И есть PVC, где размер ограничен 1Гб:

kubectl describe pvc csi-s3-pvc-test
Name:          csi-s3-pvc-test
Namespace:     default
StorageClass:  csi-s3
Status:        Bound
Volume:        pvc-f28fb493-72ec-4fd0-b63f-253448a23d6b
Labels:        <none>
Annotations:   pv.kubernetes.io/bind-completed: yes
               pv.kubernetes.io/bound-by-controller: yes
               volume.beta.kubernetes.io/storage-provisioner: ru.yandex.s3.csi
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      1Gi
Access Modes:  RWX
VolumeMode:    Filesystem
Used By:       cam-nginx2-d475c748c-fzc86
Events:        <none>

Если провалиться внутрь пода, то можно увидеть, что там есть один файл с размером, превышающим размер Capacity у PVC.

kubectl exec --stdin --tty cam-nginx2-d475c748c-fzc86 -- /bin/bash
cd /mnt/s3
ls -hl
total 2.0G
-rw-rw-rw- 1 root root 2.0G Nov 10 19:52 1.img