Kubernetes, eyni sirri olan altı replik podu ilə necə sirrləri yeniləyəcək?
sobes.tech Süni İntellekt
AI-dan cavab
Kubernetes pod işləyərkən sirrləri birbaşa yeniləməz. Podlar dəqiq surət istifadə edir, bu surət podun işə salındığı zaman mövcud idi.
Podların yenilənmiş sirri "görməsi" üçün onları yenidən başlatmaq və ya yenidən yaratmaq lazımdır. Bunun üçün məşhur yerləşdirmə strategiyaları bunlardır:
-
Rolling Update (Yavaş Yeniləmə): Köhnə podlar tədricən yeniləri ilə əvəz olunur, bu da Deployment üçün standart strategiyadır.
-
Recreate (Yenidən Yaratma): Bütün köhnə podlar eyni vaxtda silinir və yeni podlar yaradılır. Bu, xidmətdə qısa fasiləyə səbəb olur.
-
Blue/Green Deployment: Tamamilə yeni versiya (yenilənmiş sirrlə) köhnə ilə paralel olaraq yerləşdirilir. Yoxlamadan sonra bütün trafik yeni versiyaya yönəldilir və köhnə silinir.
-
Canary Release: Yeni versiya (yenilənmiş sirrlə) kiçik istifadəçi qrupuna yerləşdirilir və tədricən trafik artırılır.
ConfigMaps və Secrets fayl kimi montaj olunubsa, sirrdəki dəyişikliklər artıq işləyən pod daxilində avtomatik yenilənə bilər, lakin bu müəyyən gecikmə ilə baş verir (kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod). Ancaq, məsələn, sirri mühit dəyişənlərində istifadə etmək üçün, podun yenidən başlatılması tələb olunur.
Rolling Update istifadə edərək Deployment yeniləməsinin nümunəsi:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 6
selector:
matchLabels:
app: my-app
strategy:
type: RollingUpdate # Standart strategiya
rollingUpdate:
maxUnavailable: 1 # Yeniləmə zamanı əlçatmaz podların maksimum sayı
maxSurge: 1 # İstənilən replikasiya sayını aşan yeni podların maksimum sayı
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image:latest
env:
- name: MY_SECRET_VALUE
valueFrom:
secretKeyRef:
name: my-secret # Sirrin adı
key: my-key # Sirrin açarı
my-secret sirrini dəyişdikdən sonra, Deployment-i yeniləmək lazımdır (məsələn, şəkil versiyasını dəyişərək və ya şərh əlavə etməklə), beləliklə, Rolling Update tetiklenir:
kubectl apply -f deployment.yaml
Kubernetes Deployment spesifikasiyasındakı dəyişiklikləri aşkar edir və yeni podlar yaratmağa başlayır, bu da yenilənmiş sirrə giriş imkanı verir. Köhnə podlar isə sonlandırılır.