בדף הזה מוסבר על השימוש באובייקטים מסוג StatefulSet ב-Google Kubernetes Engine (GKE). אפשר גם לקרוא על פריסת אפליקציה עם שמירת מצב.
מידע על StatefulSets
StatefulSets מייצג קבוצה של Pods עם זהויות ייחודיות וקבועות, ושמות מארחים יציבים ש-GKE מתחזק בלי קשר למקום שבו הם מתוזמנים. מידע המצב ונתונים עמידים אחרים של כל פוד StatefulSet נשמרים בנפחים מתמשכים שמשויכים לכל פוד ב-StatefulSet. אפשר להפעיל מחדש את ה-Pods של StatefulSet בכל שלב.
עבור אפליקציות בלי שמירת מצב, משתמשים ב-Deployments.
הפונקציה StatefulSets פועלת באופן דומה ב-GKE וב-Kubernetes. במסמך הזה מתוארים שיקולים ספציפיים ל-GKE. מידע נוסף על אופן הפעולה של StatefulSets זמין במסמכי התיעוד של Kubernetes בנושא StatefulSets.
תכנון הרשת עבור StatefulSets
StatefulSets מספקות אחסון מתמיד בצורה של PersistentVolume וזהות רשת ייחודית (שם מארח). בטבלה הבאה מפורטים האזהרות שחשוב שמפעילי אפליקציות יכירו כשמגדירים StatefulSet:
| הערה לגבי רשתות | תיאור | שיטה מומלצת |
|---|---|---|
| שירותי GKE במקום כתובות IP קבועות |
למרות שלשכפול Pod יש אינדקס סידורי ייחודי, הוא תומך בכרכים לכל שכפול ובזהות רשת (שם מארח), כתובות ה-IP שמוקצות לשכפול יכולות להשתנות אם GKE מתזמן מחדש או מסיר Pod. |
כדי לצמצם בעיות ברשת, הארכיטקטורה צריכה להשתמש במשאבי Kubernetes Service. מידע נוסף זמין במאמר בנושא סוגים של שירותי Kubernetes. |
| Headless Services |
כשמאתחלים StatefulSet, הוא משויך לשירות תואם ללא כתובת IP. |
מוודאים שהשם `metadata.name` בשירות זהה לשדה |
| חיפוש עמיתים |
אפליקציות עם שמירת מצב צריכות מספר מינימלי (קוורום) של רפליקות כדי לפעול עם זמינות מלאה. |
יכול להיות ש-Pods יקרסו, יתוזמנו מחדש או יסולקו, ולכן כל רפליקה ב-StatefulSet צריכה להיות מסוגלת לצאת מקוורום ולהצטרף אליו מחדש. לאפליקציות שדורשות קישור ישיר צריך להיות היכולת לגלות עמיתים אחרים באמצעות שירותים ללא ראש (headless) ב-Kubernetes. |
| בדיקת תקינות שמבוססת על בדיקות מוכנות ובדיקות פעילות |
האפליקציה צריכה לכלול בדיקות מוכנות, בדיקות פעילות ובדיקות הפעלה שהוגדרו כראוי, במקומות שבהם זה רלוונטי. הבחירה של ערכי הזמן הקצובים לתפוגה לכל בדיקה תלויה בדרישות של האפליקציה. |
כדי להגדיר בדיקות מוכנות, מומלץ לפעול לפי השיטות המומלצות הבאות כדי לסמן את האפליקציה כמוכנה כשהיא מוכנה להעברת תנועה:
|
מידע נוסף על בדיקות זמין במאמר הגדרת בדיקות פעילות, מוכנות והפעלה.
עבודה עם StatefulSets
כדי ללמוד איך לפרוס StatefulSets באשכול GKE ואיך ליצור איתם אינטראקציה, אפשר לעיין במסמכי התיעוד של Kubernetes בנושא StatefulSet basics.
המאמרים הבאים
- איך פורסים אפליקציה עם שמירת מצב
- איך מעדכנים StatefulSets באמצעות עדכונים מדורגים
- מידע נוסף על פריסת עומסי עבודה ב-GKE
- מידע נוסף על StatefulSets במסמכי התיעוד של Kubernetes
- מדריך לשדרוג אשכול שמריץ עומס עבודה עם שמירת מצב