При создании тома SFS Turbo существует минимальный предел ёмкости, поэтому оплата производится исходя из этой минимальной ёмкости, а не из фактически использованной. По умолчанию, когда вы монтируете том SFS Turbo к рабочей нагрузке, корневой каталог тома отображается в контейнерах. Фактическая ёмкость, используемая нагрузкой, значительно ниже предела, что приводит к растрате ресурсов.
Дополнение CCE Container Storage (Everest) позволяет динамически создавать подкаталоги в файловой системе SFS Turbo и монтировать эти подкаталоги в контейнеры. Таким образом, файловая система SFS Turbo может использоваться несколькими контейнерами для повышения эффективности хранения.
Удаление тома subPath не приводит к удалению файловой системы SFS Turbo.
Ниже приведён пример:
apiVersion: storage.k8s.io/v1allowVolumeExpansion: truekind: StorageClassmetadata:name: sfsturbo-subpath-sc # Storage class namemountOptions: #Mount options- lockparameters:csi.storage.k8s.io/csi-driver-name: sfsturbo.csi.everest.iocsi.storage.k8s.io/fstype: nfseverest.io/archive-on-delete: "true"everest.io/share-expand-type: bandwidtheverest.io/share-export-location: 192.168.1.1:/sfsturbo/ # Mount directory configurationeverest.io/share-source: sfs-turboeverest.io/share-volume-type: STANDARDeverest.io/volume-as: subpatheverest.io/volume-id: 0d773f2e-1234-1234-1234-de6a35074696 # ID of an SFS Turbo volumeprovisioner: everest-csi-provisionerreclaimPolicy: DeletevolumeBindingMode: Immediate
Где:
mountOptions:- vers=3- timeo=600- nolock- hard
Ниже приведён пример:
apiVersion: v1kind: PersistentVolumeClaimmetadata:name: sfs-turbo-test # PVC namenamespace: defaultspec:accessModes:- ReadWriteManyresources:requests:storage: 50GistorageClassName: sfsturbo-subpath-sc # Storage class namevolumeMode: Filesystem
Где:
Ёмкость тома subPath ограничивается общей ресурсной ёмкостью соответствующей файловой системы SFS Turbo. Если ресурсы файловой системы SFS Turbo недостаточны, вы можете изменить ресурсную ёмкость через консоль SFS Turbo.
Ниже приведён пример:
Где:
kubectl create -f deployment-test.yaml
Ниже приведён пример:
apiVersion: apps/v1kind: StatefulSetmetadata:name: test-turbo-subpath # Name of the created workloadnamespace: defaultgeneration: 1labels:appgroup: ''spec:replicas: 2selector:matchLabels:app: test-turbo-subpathtemplate:metadata:labels:app: test-turbo-subpathannotations:metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"","path":"","port":"","names":""}]'pod.alpha.kubernetes.io/initialized: 'true'spec:containers:- name: container-0image: 'nginx:latest' # Image of a workloadresources: {}volumeMounts:- name: sfs-turbo-160024548582479676mountPath: /tmp # Mount path in a containerterminationMessagePath: /dev/termination-logterminationMessagePolicy: FileimagePullPolicy: IfNotPresentrestartPolicy: AlwaysterminationGracePeriodSeconds: 30dnsPolicy: ClusterFirstsecurityContext: {}imagePullSecrets:- name: default-secretaffinity: {}schedulerName: default-schedulervolumeClaimTemplates:- metadata:name: sfs-turbo-160024548582479676namespace: defaultannotations: {}spec:accessModes:- ReadWriteManyresources:requests:storage: 10GistorageClassName: sfsturbo-subpath-sc # Enter the name of a self-managed storage class.serviceName: wwwwpodManagementPolicy: OrderedReadyupdateStrategy:type: RollingUpdaterevisionHistoryLimit: 10
Где:
kubectl create -f statefulset-test.yaml