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.