Yandex Marketplace
June 7, 2023
Установка Container Storage Interface для S3 в Marketplace k8s и через Helm
В данной статье рассмотрим установку CSI S3 в Marketplace mk8s.
- Namespace в котором ставим CSI;
- Оставляем галку создания sc (StorageClass);
- Оставляем галку создания Secret;
- Вставляем идентификатор статического ключа доступа для объектов S3. Пример генерации ключа здесь: https://teletype.in/@cameda/w93lPMPQWS4
- Вставляем секретный ключ доступа. Он создаётся вместе с идентификатором в одном файле;
- Вставляем имя бакета, в котором будут создаваться папки с pvc;
- Адрес S3 сервиса остаётся прежним: https://storage.yandexcloud.net
- Опции монтирования GeeseFS можно изменить по усмотрению;
- Политику очистки (Delete/Reclaim) такженастраиваем по-усмотрению;
- Название sc/secret на усмотрение, также как и галка игнорирования taint.
На момент написания статьи, версия драйвера geesefs.
cr.yandex/yc-marketplace/yandex-cloud/csi-s3/csi-s3-driver:0.35.5
Установка с помощью Helm чарта.
#В параметре storageClass.singleBucket передаётся название бакета; #Параметр untar говорит о том, что ставим инсталляцию впервые и нет никаких исходников. export HELM_EXPERIMENTAL_OCI=1 && \ helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/csi-s3/csi-s3 \ --version 0.35.5 \ --untar && cd csi-s3 && \ helm install \ --namespace default \ --set secret.accessKey=YC...kt72ges \ --set secret.secretKey=YCO...r3OrZz \ --set storageClass.singleBucket=cam-kuber \ --set storageClass.reclaimPolicy=Retain \ csi-s3 .
#Проверка установки helm list -n default #Удаление node-local-dns helm uninstall csi-s3 -n default
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: csi-s3-pvc-dynamic
namespace: default
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: csi-s3
EOFcat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: cam-nginx
labels:
app: nginx-prod
environment: prod
spec:
replicas: 2
selector:
matchLabels:
app: nginx
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
resources:
requests:
cpu: 300m
memory: 300Mi
limits:
cpu: 400m
memory: 400Mi
volumeMounts:
- mountPath: /mnt/s3
name: cameda-volume
restartPolicy: Always
volumes:
- name: cameda-volume
persistentVolumeClaim:
claimName: csi-s3-pvc-dynamic
EOFkubectl exec --tty --stdin <pod_name> -- touch /mnt/s3/file
Полезные ссылки
Информация о CSI
https://cloud.yandex.ru/marketplace/products/yc/csi-s3#docker-images
Подробнее о драйвере GeeseFS: https://cloud.yandex.ru/docs/storage/tools/geesefs
Официальный репозиторий: https://github.com/yandex-cloud/k8s-csi-s3
Подробнее про установку:
https://cloud.yandex.ru/docs/managed-kubernetes/operations/applications/csi-s3
Актуальная версия Helm чарта:
https://cloud.yandex.ru/marketplace/products/yc/csi-s3#docker-images
June 7, 2023, 11:58
0 views
0 reposts