Junior
Կա՞ որևէ վիճակ, երբ մենք իրականացնում ենք deployment։
sobes.tech AI
Պատասխան AI-ից
Երբ Kubernetes-ում տեղադրվում է Deployment, չի պահվում ինքնին կարգավիճակը։ Deployment կառավարում է ReplicaSet-ը, որը, իր հերթին, կառավարում է Pod-երը։ Pod-երը բնույթով эфемերան են և կարող են վերագործարկվել կամ հեռացվել։
Կարգավիճակի պահպանումը Deployment-ի կողմից տեղադրված ծրագրերի համար սովորաբար իրականացվում է այլ մեխանիզմների միջոցով՝
- Persistent Volumes (PV) և Persistent Volume Claims (PVC): Օգտագործվում են տվյալների պահպանման համար, որոնք պետք է մնում են հասանելի նույնիսկ Pod-երի հեռացման կամ վերագործարկման դեպքում։ PV-ն ապահովում է պահեստը, իսկ PVC-ն պահանջում է այն։
- ConfigMaps և Secrets: Օգտագործվում են կոնֆիգուրացիոն տվյալների և զգայուն տեղեկությունների (գաղտնաբառեր, բանալիներ) պահպանման համար՝ բաժանված կոնտեյների պատկերից։
- StatefulSets: Մասնագիտացված վերահսկիչ՝ նախատեսված վիճակով ծրագրերի կառավարման համար։ StatefulSets-ը երաշխավորում է կայուն ցանցային նույնականացում և կայուն պահեստ՝ յուրաքանչյուր Pod-ի համար, ինչպես նաև կարգավորելի տեղադրում և մասշտաբավորում։
Օրինակ՝ PVC պահանջելու համար Pod-ի մանიფեստում՝
# Pod-ի սահմանում, որը օգտագործում է PVC
apiVersion: v1
kind: Pod
metadata:
name: my-stateful-app
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- name: data-volume
mountPath: /data
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: my-pvc-claim # Օգտագործվող PVC-ի անունը
StatefulSet-ի սահմանում՝
# StatefulSet-ի սահմանում
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-statefulset
spec:
serviceName: "my-service"
replicas: 3
selector:
matchLabels:
app: my-statefulset-app
template:
metadata:
labels:
app: my-statefulset-app
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- name: my-volume
mountPath: /data
volumeClaimTemplates:
- metadata:
name: my-volume
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
Արդյունքում՝ ինքնին Deployment-ը չի պահում վիճակը։ Նրա գործառույթը՝ ապահովել անհրաժեշտ քանակությամբ Pod-երի ռեպլիկներ՝ առանց նրանց անհատական նույնականության կամ վիճակի պահպանման։ Վիճակով ծրագրերի համար օգտագործվում են StatefulSets, PV/PVC, ConfigMaps և Secrets։