Kas notiks, ja mēs izvietosim lietotni ar deployment un pēc tam mainīsim lietotnes versiju replikasē?
sobes.tech AI
Atbilde no AI
Pēc programmas versijas maiņas, ar šo Deployment saistītais ReplicaSet resursu tiks atjaunināts. Deployment izveidos jaunu ReplicaSet ar jaunu konteineru attēla versiju. Vecais ReplicaSet pakāpeniski samazināsies, bet jauns ReplicaSet palielināsies. Šo procesu sauc par rolling update (griešanas atjauninājums) un tas tiek veikts automātiski pēc noklusējuma.
Konkrēti soļi:
- Lietotājs vai CI/CD sistēma atjaunina Deployment.
- Deployment izveido jaunu ReplicaSet ar jaunu specifikāciju, kas satur jaunu attēla versiju.
- Jaunais ReplicaSet sāk izveidot jaunās versijas podus.
- Kad daļa jauno podu pāriet uz
Readystāvokli, Deployment sāk samazināt veco ReplicaSet, dzēšot vecās versijas podus. - Process turpinās, līdz visi podi ir jaunā ReplicaSet pārvaldībā.
- Vecais ReplicaSet paliek, bet ar vēlamo repliku skaitu 0.
Tas nodrošina nulles dīkstāves laiku programmas atjaunināšanā (ņemot vērā pietiekamus resursus un pareizu podu gatavību) un ļauj viegli atgriezties pie iepriekšējās versijas, vienkārši atjauninot Deployment.
Deployment YAML piemērs atjaunināšanai:
# Atjaunināts 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% # Maksimālais podu skaits, kas var tikt izveidots virs vēlamā skaita
maxUnavailable: 25% # Maksimālais podu skaits, kas var būt nepieejami atjaunināšanas laikā
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-registry/my-app:v1.1.0 # Mainīta attēla versija
ports:
- containerPort: 80
Viss pārvaldāmais izmaiņas jāveic caur Deployment resursu, manuālas izmaiņas ReplicaSet ir ļoti nevēlamas un var novest pie neparedzamas uzvedības, jo Deployment mēģinās saskaņot ReplicaSet stāvokli ar savu vēlamo stāvokli, pārrakstot jūsu izmaiņas. Visas pārvaldāmās izmaiņas jāveic caur Deployment resursu.