Sobes.tech
Junior

Vai, veicot deployment, saglabājas kāda stāvokļa?

sobes.tech AI

Atbilde no AI

Kad Kubernetes ieviešot Deployment, nav saglabāts stāvoklis pašā Deployment kontrolierī. Deployment pārvalda ReplicaSet, kas savukārt pārvalda Podus. Pod-iem pēc būtības ir efemēri un tie var tikt pārstartēti vai dzēsti.

Stāvokļa saglabāšana Deployment izvietotajām lietojumprogrammām parasti tiek īstenota ar citiem mehānismiem:

  • Persistent Volumes (PV) un Persistent Volume Claims (PVC): Tiek izmantoti datu glabāšanai, kas jāpaliek pieejamiem pat pēc Podu dzēšanas vai pārstartēšanas. PV nodrošina glabāšanu, bet PVC to pieprasa.
  • ConfigMaps un Secrets: Tiek izmantoti konfigurācijas datu un jutīgas informācijas (paroles, atslēgas) glabāšanai, atdalīti no konteineru attēla.
  • StatefulSets: Īpaši izstrādāts stāvokļa programmām. StatefulSets garantē stabilu tīkla identifikāciju un stabilu glabāšanu katram Podam, kā arī kārtīgu izvietošanu un mērogošanu.

Piemērs PVC pieprasījumam Pod manifestā:

# Pod definīcija, kas izmanto 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 nosaukums, ko izmanto

StatefulSet definīcija:

# StatefulSet definīcija
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

Tātad, pats Deployment nesaglabā stāvokli. Tā uzdevums ir nodrošināt nepieciešamo Pod repliku skaitu bez to individuālās identitātes vai stāvokļa saglabāšanas starp restarta reižu. Stāvokļa programmām izmanto StatefulSets, PV/PVC, ConfigMaps un Secrets.