Junior
Zachováva sa pri nasadení nejaký stav?
sobes.tech AI
Odpoveď od AI
Pri nasadení Deployment v Kubernetes sa stav neuchováva priamo v samotnom kontroléri Deployment. Deployment riadi ReplicaSet, ktorý následne riadi Pod-ov. Pod-ové sú svojou podstatou efemérne a môžu byť reštartované alebo odstránené.
Ukladanie stavu pre aplikácie nasadzované Deploymentom sa zvyčajne realizuje pomocou iných mechanizmov:
- Persistent Volumes (PV) a Persistent Volume Claims (PVC): Slúžia na ukladanie dát, ktoré musia zostať dostupné aj po odstránení alebo reštarte Pod-ov. PV poskytuje úložisko, zatiaľ čo PVC ho žiada.
- ConfigMaps a Secrets: Slúžia na ukladanie konfiguračných dát a citlivých informácií (heslá, kľúče), oddelených od obrazu kontajnera.
- StatefulSets: Kontrolér špeciálne navrhnutý na správu aplikácií so stavom. StatefulSets garantuje stabilnú sieťovú identifikáciu a stabilné úložisko pre každý Pod, ako aj usporiadané nasadzovanie a škálovanie.
Príklad požiadavky na PVC v manifeste Pod-u:
# Definícia Pod-u využívajúceho 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 # Názov PVC, ktorý sa používa
Príklad definície StatefulSet-u:
# Definícia StatefulSet-u
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
Takže, samotný Deployment ne uchováva stav. Jeho úlohou je zabezpečiť požadovaný počet replík Pod-ov bez uchovávania ich individuálnej identity alebo stavu medzi reštartmi. Pre stateful aplikácie sa používajú StatefulSets, PV/PVC, ConfigMaps a Secrets.