Sobes.tech
Middle+

Mis juhtub, kui me rakendame rakenduse koos deploymentiga ja seejärel muudame rakenduse versiooni replikasetes?

sobes.tech AI

Vastus AI-lt

Pärast rakenduse versiooni muutmist uuendatakse sellega seotud ReplicaSet ressurssi. Deployment loob uue ReplicaSet uue konteineripildi versiooniga. Vana ReplicaSet väheneb järk-järgult, samal ajal kui uus ReplicaSet suureneb. Seda protsessi nimetatakse rolling update (liikuva uuenduse) ning see toimub automaatselt vaikimisi.

Spetsiifilised sammud:

  1. Kasutaja või CI/CD süsteem uuendab Deployment.
  2. Deployment loob uue ReplicaSet, mille spetsiifikatsioon sisaldab uut versiooni.
  3. Uus ReplicaSet hakkab looma uusi pod'e.
  4. Kui osa uutest pod'idest jõuab olekusse Ready, alustab Deployment vana ReplicaSeti vähendamist, eemaldades vana versiooni pod'id.
  5. Protsess jätkub, kuni kõik pod'id on uue ReplicaSeti hallata.
  6. Vana ReplicaSet jääb alles, kuid soovitud replika arv on 0.

See tagab nulli ajalise seisaku rakenduse uuendamisel (arvestades piisavaid ressursse ja pod'ide õiget valmisolekut) ning võimaldab lihtsat tagasipöördumist eelmisele versioonile, lihtsalt uuendades Deployment'i.

Näide Deployment YAML-i uuendamiseks:

# Uuendatud Deployment YAML
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 25% # Maksimaalne pod'ide arv, mis võib olla loodud üle soovitud arvu
      maxUnavailable: 25% # Maksimaalne pod'ide arv, mis võib olla kättesaamatu uuendamise ajal
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app-container
        image: my-registry/my-app:v1.1.0 # Muudetud pildi versioon
        ports:
        - containerPort: 80

Kõik hallatavad muudatused tuleb teha Deployment ressursi kaudu, käsitsi muudetud ReplicaSet ei ole soovitatav ning võib põhjustada ettearvamatut käitumist, kuna Deployment püüab kohandada ReplicaSeti olekut oma soovitud olekuga, kirjutades üle teie muudatused. Kõik hallatavad muudatused tuleb teha Deployment ressursi kaudu.