Sobes.tech
Middle

Prečo používame deployment na správu ReplicaSetov namiesto ich priamej správy?

sobes.tech AI

Odpoveď od AI

Deployment zabezpečuje deklaratívny prístup k správe ReplicaSetov a Podov. Umožňuje opísať požadovaný stav aplikácie (koľko replík, aký obraz kontajnera atď.), a kontrolér Deployment neustále pracuje na dosiahnutí tohto stavu.

Hlavné výhody používania Deployment:

  • Správa aktualizácií a rollbackov: Deployment podporuje stratégie aktualizácií (napríklad RollingUpdate) a umožňuje ľahko sa vrátiť k predchádzajúcim verziám v prípade problémov.
  • Automatický RollingUpdate: Pri zmene obrazu kontajnera Deployment automaticky vytvára nové Pody s novou verziou, postupne odstraňuje Pody so starou verziou, zabezpečujúc nulový čas prestojov.
  • Správa ReplicaSetov: Deployment vytvára a spravuje ReplicaSety, ktoré zase udržiavajú požadovaný počet replík Podov.
  • História revízií: Deployment sleduje históriu zmien, čo umožňuje vykonávať rollbacky k predchádzajúcim verziám.
  • Jednoduchosť správy: Namiesto priamej interakcie s ReplicaSetmi a Podmi pracujeme s jedným objektom Deployment, ktorý abstraktuje nízkoúrovňové detaily.

Priame riadenie ReplicaSetu alebo Podov výrazne zťažuje úlohy aktualizácie, škálovania a rollbacku, vyžadujúc manuálne operácie alebo písanie zložitejších skriptov automatizácie. Deployment poskytuje hotový, stabilný mechanizmus na riešenie týchto úloh.

Príklad manifestu Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3 # Požadovaný počet replík
  selector:
    matchLabels:
      app: nginx
  strategy:
    type: RollingUpdate # Stratégia aktualizácie
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2 # Obraz kontajnera
        ports:
        - containerPort: 80

Tento manifest opisuje Deployment, ktorý by mal udržiavať 3 repliky Podov s obrazom nginx:1.14.2. Deployment bude riadiť vytváranie a škálovanie ReplicaSetu na zabezpečenie tohto stavu.