Middle
Czym jest zestaw replik i wdrożenie?
sobes.tech AI
Odpowiedź od AI
ReplicaSet zapewnia określoną liczbę identycznych podów działających w klastrze. Monitoruje stan podów i automatycznie wymienia te, które uległy awarii lub przestały działać.
Deployment jest dostarczany na poziomie ReplicaSet. Zarządza aktualizacjami i cofnięciami aplikacji, utrzymując historię wersji deploymentu. Umożliwia wykonywanie aktualizacji według strategii rolling update lub recreate.
# Przykład manifestu Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Określa pożądaną liczbę podów (przez ReplicaSet)
selector:
matchLabels:
app: nginx
strategy:
type: RollingUpdate # Strategia aktualizacji
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2 # Wersja obrazu, która będzie aktualizowana
ports:
- containerPort: 80
W tym przykładzie Deployment utworzy ReplicaSet, który będzie obsługiwał 3 pody z obrazem nginx:1.14.2. Po zmianie wersji obrazu w manifeście Deployment, utworzy nowy ReplicaSet dla nowej wersji i stopniowo przekieruje na niego ruch, usuwając stare pody zgodnie z strategią RollingUpdate.
Tabela porównawcza:
| Możliwość | ReplicaSet | Deployment |
|---|---|---|
| Gwarancja liczby podów | ✅ | ✅ |
| Aktualizacja aplikacji | ❌ | ✅ |
| Cofanie wersji | ❌ | ✅ |
| Zarządzanie historią | ❌ | ✅ |