Kubernetes
March 24, 2023
Создать свой StorageClass и PVC с подом
В данной статье создадим кастомный SC на базе стандартного SC YC. Создадим под с PVC, в котором будет указан новый SC.
Создадим кастомный StorageClass и укажем политику по-умолчанию Retain.
cat <<EOF | kubectl apply -f -
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: cam-hdd-retain
namespace: default
labels:
sc: hdd-retain
annotations:
author: cameda
provisioner: disk-csi-driver.mks.ycloud.io
volumeBindingMode: WaitForFirstConsumer
parameters:
type: network-hdd
csi.storage.k8s.io/fstype: ext4
allowVolumeExpansion: false
reclaimPolicy: Retain
EOFkubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE cam-hdd-retain disk-csi-driver.mks.ycloud.io Retain WaitForFirstConsumer false 7s csi-s3 ru.yandex.s3.csi Delete Immediate false 9d local-path rancher.io/local-path Delete WaitForFirstConsumer false 20d yc-network-hdd (default) disk-csi-driver.mks.ycloud.io Delete WaitForFirstConsumer true 31d yc-network-nvme disk-csi-driver.mks.ycloud.io Delete WaitForFirstConsumer true 31d yc-network-ssd disk-csi-driver.mks.ycloud.io Delete WaitForFirstConsumer true 31d yc-network-ssd-nonreplicated disk-csi-driver.mks.ycloud.io Delete WaitForFirstConsumer true 31d
Устанавливаем тип StorageClass cam-hdd-retain по-умолчанию:
kubectl patch storageclass cam-hdd-retain \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'kubectl patch storageclass yc-network-hdd \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nginx
namespace: default
labels:
pvc: nginx
annotations:
author: cameda
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 6Gi
EOFcat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: cameda-nginx
namespace: default
labels:
app: nginx
env: prod
annotations:
author: cameda
spec:
containers:
- name: cameda-nginx
image: nginx:latest
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 300m
memory: 300Mi
limits:
memory: 500Mi
ports:
- containerPort: 80
- containerPort: 443
livenessProbe:
failureThreshold: 10
successThreshold: 1
httpGet:
path: /
port: 80
periodSeconds: 10
timeoutSeconds: 1
initialDelaySeconds: 5
readinessProbe:
failureThreshold: 3
successThreshold: 1
exec:
command:
- curl
- http://127.0.0.1:80
periodSeconds: 10
timeoutSeconds: 1
initialDelaySeconds: 7
volumeMounts:
- name: cam-volume
mountPath: /mnt/cameda
restartPolicy: OnFailure
volumes:
- name: cam-volume
persistentVolumeClaim:
claimName: pvc-nginx
securityContext:
fsGroup: 1000
runAsUser: 0
EOFkubectl get po NAME READY STATUS RESTARTS AGE cameda-nginx 1/1 Running 0 46s
March 24, 2023, 11:46
0 views
0 reposts