אם אתם מנהלים השקות בכמה קבוצות של מכשירים, מומלץ להשתמש בפרויקט ייעודי לאירוח אובייקטים מסוג RolloutSequence. הפרויקט הזה משמש כפרויקט ראשי וכמתאם לפריסות ברצף. הפרויקט הזה בדרך כלל לא חלק מהרצף, כלומר הפרויקט לא מכיל צי של מכונות או אשכולות שהם חלק מהרצף.
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init - מוודאים שיש לכם קלאסטרים קיימים של Autopilot או Standard. כדי ליצור אשכול חדש, אפשר לעיין במאמר יצירת אשכול Autopilot.
- (אופציונלי) אם עדיין אין לכם פרויקט ייעודי Cloud de Confiance by S3NS לאירוח ההגדרה של
RolloutSequence, אתם יכולים ליצור אותו באמצעותCloud de Confiance המסוף או בשיטה אחרת. - מוודאים שהפעלתם את ממשקי ה-API הנדרשים לניהול צי רכבים.
כדי ליצור רצף פריסה מכל סוג, צריך להפעיל את ממשקי ה-API האלה בפרויקטים של מארחי Fleet. בפרויקט המארח של רצף ההשקה, מפעילים את
gkehub.googleapis.comAPI. אם אתם משתמשים בהוראות של Terraform, אתם צריכים לוודא שאתם משתמשים בגרסה הבאה או בגרסה מאוחרת יותר של ספק Terraform
google, בהתאם לפעולות שאתם רוצים לבצע:- כדי לבצע את הפעולות הבאות, צריך להשתמש בגרסה 7.39.0 ואילך:
- גרסה 7.42.0 ואילך נדרשת לפעולה הבאה:
התפקידים הנדרשים
כדי ליצור פרויקט, צריך את התפקיד Project Creator (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
כדי ליצור או לשנות רצף השקה, צריך לקבל את תפקיד ה-IAM של עריכת Fleet (roles/gkehub.editor) בכל פרויקט מארח של Fleet ברצף ההשקה ובפרויקט המארח של רצף ההשקה. התפקיד הזה מספק את ההרשאות הבאות:
gkehub.rolloutsequences.creategkehub.rolloutsequences.getgkehub.rolloutsequences.listgkehub.rolloutsequences.updategkehub.rolloutsequences.deletegkehub.fleet.update
ההרשאות האלה מאפשרות לכם ליצור אובייקטים של RolloutSequence, לגשת אליהם ולשנות אותם, ולהשתמש בציים ברצף ההשקה.
אם אתם צריכים לרשום או לבטל רישום של אשכולות ב-Fleet, אתם צריכים את כל ההרשאות הבאות:
- הרשאות לרישום אשכולות בפרויקטים המארחים של ה-Fleet.
- הרשאות אדמין באשכול לכל אשכול GKE שרוצים לרשום.
- הרשאות רישום אשכולות בין פרויקטים כדי לרשום אשכולות GKE ב-Fleet בפרויקט אחר.
אתם יכולים ליצור רצפים של השקות באמצעות ציוד שמתארח בפרויקטים בארגון אחד או יותר, אם יש לכם את ההרשאות הנדרשות לפרויקטים האלה.
מידע נוסף על תפקידי IAM עם ההרשאות המינימליות הנדרשות למשימות שונות זמין במאמר קבלת הצעות לתפקידים מוגדרים מראש בעזרת Gemini.
הגדרת רצף השקה
כדי ליצור רצף השקה, צריך לארגן את האשכולות בקבוצות של ציוד. אפשר גם ליצור שלבים מפורטים שיכולים לטרגט קבוצות משנה ספציפיות של אשכולות בצי, באמצעות תוויות Kubernetes. כדי לקבל הנחיות לגבי ארגון האשכולות, אפשר לעיין בדוגמה של בנק קהילתי. אחרי שמארגנים את האשכולות בקבוצות ואפשר גם להוסיף להן תוויות, יוצרים רצף השקה על ידי הגדרת רשימה מסודרת של שלבים וזמן ההרצה לכל קבוצה.
ארגון אשכולות בצי
ברצף השקה, מומלץ לרשום את כל האשכולות לאותו ערוץ הפצה. אם האשכולות לא רשומים לאותו ערוץ, GKE בוחר גרסה מהערוץ השמרני ביותר ברצף. לדוגמה, אם אשכולות רשומים גם לערוץ היציב וגם לערוץ הרגיל, GKE בוחר את הגרסה מהערוץ היציב. מומלץ גם להפעיל את אותה גרסה משנית בכל האשכולות כדי שהם יעמדו בדרישות לשדרוג אוטומטי לאותה גרסת יעד.
אם כבר ארגנתם את האשכולות שלכם לציים, אתם יכולים לדלג על השלבים הבאים ולעבור לקטע יצירת קבוצות משנה של אשכולות.
- קיבוץ האשכולות לציים. אפשר לארגן את האשכולות לפי סביבות פריסה כמו בדיקה, Staging וייצור (מומלץ).
- רושמים כל אשכול ל-Fleet על סמך הקיבוץ שבחרתם.
יצירת קבוצות משנה של אשכולות (אופציונלי)
כדי לטרגט אשכולות ספציפיים בשלב ברצף ההשקה, צריך לתייג את האשכולות האלה.
לדוגמה, כדי לבדוק גרסה חדשה בקבוצת משנה קטנה של אשכולות לפני השקה מלאה, אפשר להחיל תווית canary על האשכולות האלה. כדי להוסיף את התווית canary עם הערך true לאשכול באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:
gcloud container clusters update CLUSTER_NAME \
--location=CLUSTER_LOCATION\
--update-labels=canary=true
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול הקיים. -
CLUSTER_LOCATION: האזור או התחום של Compute Engine שבו נמצא האשכול.
הדגל --update-labels=canary=true מורה ל-GKE להחיל את התווית canary על האשכול .
מידע נוסף על הוספת תווית לאשכול זמין במאמר הוספה או עדכון של תוויות לאשכולות קיימים.
יצירת רצף השקה עם שלבים בהתאמה אישית
רצף השקה עם שלבים מותאמים אישית מגדיר את סדר השדרוגים על ידי הגדרה הצהרתית של השלבים. ב-CLI של gcloud משתמשים בקובץ YAML, וב-Terraform מוסיפים בלוק משאבים להגדרות.
בביצוע השלבים שמתוארים בקטע הזה, אתם יוצרים RolloutSequence.
כדי לוודא שהרצף יכלול את כל האשכולות, כל Fleet חייב לכלול שלב catch-all (שלב ללא בורר תוויות). בשלב הזה נכללים כל שאר האשכולות שלא נבחרו בשלבים הקודמים של GKE. אם מקצים אשכול יחיד לכמה שלבים בתוך RolloutSequence אחד, כדי לפתור התנגשויות, GKE מקצה את האשכול רק לשלב המוקדם ביותר.
ההגדרות לדוגמה הבאות יוצרות שלושה שלבים:
- בשלב הראשון, המערכת מכוונת לכל האשכולות בצי
dev. אחרי השדרוג, יש תקופת הרצה של 7 ימים (7d). - השלב השני מכוון לאשכולות בצי
prodעם התוויתcanary=true. אחרי השדרוג, יש תקופת הרצה של 7 ימים (7d). בשלב השלישי, המערכת מטפלת באשכולות הנותרים ב-Fleet מספר
prod. אחרי שהשדרוג יסתיים, יחול תקופת הרצה של 7 ימים (7d).
gcloud
שומרים את קובץ המניפסט הבא בשם
rollout-sequence.yaml:- stage: fleet-projects: - projects/dev soak-duration: 7d - stage: fleet-projects: - projects/prod soak-duration: 7d label-selector: resource.labels.canary=='true' - stage: fleet-projects: - projects/prod soak-duration: 7dשימו לב לנקודות הבאות:
-
stage: כולל Fleet או קבוצת משנה של אשכולות ב-Fleet. צריך לשדרג את האשכולות בשלבים הקודמים באופן מלא ולבדוק אותם לפני שהרצף עובר לשלב הבא. עם זאת, אם שדרוג האשכול לא הסתיים 30 יום אחרי שתהליך השדרוג התחיל, GKE מתחיל את תקופת ההמתנה. -
fleet-projects: רשימה של Fleet שמהן אפשר לבחור אשכולות לשלב הזה. אפשר להפנות לצי אחד לכל היותר בכל שלב. Fleet מזוהה לפי הפרויקט שבו מתארח ה-Fleet. הפרויקט הזה יכול להיות פרויקט אחר מהפרויקט שבו נמצאים האשכולות, אם ה-Fleet מכיל חברויות חוצות פרויקטים. הפורמט לציון פרויקט של צי הואprojects/PROJECT_ID. -
label-selector(אופציונלי): בוחר קבוצת משנה של אשכולות מהציים שצוינו. בשדה הזה נעשה שימוש בתחביר של Common Expression Language (CEL) והוא חייב להתחיל ב-resource.labels. -
soak-duration: הזמן להמתנה אחרי שדרוג כל האשכולות בשלב הקודם לפני שממשיכים לשלב הבא. הערך מבוטא בשניות, דקות, שעות וימים.
-
כדי ליצור את רצף ההשקה שהגדרתם במניפסט
rollout-sequence.yaml, מריצים את הפקודה הבאה:gcloud container fleet rolloutsequences create ROLLOUT_SEQUENCE_NAME \ --display-name=DISPLAY_NAME \ --stage-config=rollout-sequence.yamlמחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAME: מזהה קבוע שתואם למפרטים של RFC-1034, לדוגמה,test-rollout-sequence. -
DISPLAY_NAME: מחרוזת קריאה לאנשים של רצף ההשקה.
-
Terraform
בקטע הזה מוסבר איך ליצור רצף השקה עם שלבים מותאמים אישית באמצעות Terraform. אפשר גם להשתמש במקור הזה כדי לעדכן את הרצף. למידע נוסף, תוכלו לקרוא את מאמרי העזרה של google_gke_hub_rollout_sequence.
מוסיפים את הבלוק הבא להגדרות של Terraform כדי ליצור משאב של רצף פריסה:
resource "google_gke_hub_rollout_sequence" "rollout_sequence" { rollout_sequence_id = "ROLLOUT_SEQUENCE_NAME" display_name = "DISPLAY_NAME" stages { fleet_projects = ["projects/dev"] soak_duration = "7d" } stages { fleet_projects = ["projects/prod"] cluster_selector { label_selector = "resource.labels.canary=='true'" } soak_duration = "7d" } stages { fleet_projects = ["projects/prod"] soak_duration = "7d" } }מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAME: מזהה קבוע שתואם למפרטים של RFC-1034, לדוגמה,test-rollout-sequence. -
DISPLAY_NAME: מחרוזת קריאה לאנשים של רצף ההשקה.
-
הפצת גרסה ספציפית
אתם יכולים להוסיף גרסה ספציפית לרצף ההשקה. מידע נוסף זמין במאמר בנושא הפצת גרסה ספציפית.
אתם יכולים להשיק גרסה לרמות הבקרה או לצמתים של האשכולות ברצף ההשקה. אתם יכולים לבחור באופן עצמאי אילו גרסאות לפרוס למישורי הבקרה או לצמתים.
GKE יכול לפרוס רק גרסה אחת בכל פעם בשלב של מישור הבקרה או הצמתים, בהתאמה. אם יש לכם פריסה קיימת שפועלת בשלב הראשון של רצף הפריסה, GKE מבצע את הפעולות הבאות, בהתאם לאופן שבו אתם מנהלים את רצף הפריסה באמצעות ה-CLI של gcloud או Terraform:
- ה-CLI של gcloud: כשמריצים את הפקודה, מוצגת הנחיה אינטראקטיבית שבה נשאלים אם רוצים לבטל את ההשקה הקיימת כדי ליצור השקה לגרסה שצוינה. אם תענו בחיוב, GKE יבטל את ההשקה הקיימת וייצור השקה חדשה. אם לא, GKE ישמור את הפריסה הקיימת ולא ייצור פריסה חדשה כמו שביקשתם במקור בפקודה.
- Terraform: כשמעדכנים את הגדרות Terraform כמו שמתואר בקטע הבא, GKE מבטל את ההשקה הקיימת אם ההשקה מתבצעת בשלב הראשון.
השקת גרסה למישורי הבקרה ברצף השקה
gcloud
מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--control-plane-version="CONTROL_PLANE_VERSION"
מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAME: השם של רצף ההשקה. -
CONTROL_PLANE_VERSION: הגרסה להפצה. אפשר לבחור גרסה ספציפית, כמו1.34.7-gke.1055000, או להשתמש בכינוי של גרסה. מידע נוסף זמין במאמר בנושא ציון גרסת האשכול.
Terraform
אם אתם משתמשים ב-Terraform כדי לנהל את רצף ההשקה, אתם יכולים להשיק גרסה ספציפית על ידי הוספה לבלוק שבו השתמשתם כדי ליצור את רצף ההשקה.
מוסיפים את השדה הבא לבלוק. אפשר להוסיף את השדה בכל מקום חוץ מאשר בין בלוקים של stages, שצריכים להיות עוקבים:
min_control_plane_version = "CONTROL_PLANE_VERSION"
מחליפים את CONTROL_PLANE_VERSION בגרסה שרוצים להשיק. אפשר לבחור גרסה ספציפית, כמו 1.34.7-gke.1055000, או להשתמש בכינוי גרסה. מידע נוסף זמין במאמר בנושא ציון גרסת האשכול.
אם כבר השתמשתם בשדה הזה כדי להשיק גרסה של מישור הבקרה, השדה יישאר בבלוק. מחליפים את הגרסה הקודמת שהופצה בגרסה CONTROL_PLANE_VERSION שרוצים להפיץ הפעם.
הפעלת גרסה בצמתים ברצף הפעלה
gcloud
מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--node-version="NODE_VERSION"
מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAME: השם של רצף ההשקה. -
NODE_VERSION: הגרסה להפצה, לדוגמה,1.34.7-gke.1055000.
Terraform
אם אתם משתמשים ב-Terraform כדי לנהל את רצף ההשקה, אתם יכולים להשיק גרסה ספציפית על ידי הוספה לבלוק שבו השתמשתם כדי ליצור את רצף ההשקה.
מוסיפים את השדה הבא לבלוק. אפשר להוסיף את השדה בכל מקום חוץ מאשר בין בלוקים של stages, שצריכים להיות עוקבים:
min_node_version = "NODE_VERSION"
מחליפים את NODE_VERSION בגרסה שרוצים להשיק, לדוגמה, 1.34.7-gke.1055000. אם כבר השתמשתם בשדה הזה כדי להשיק גרסת צומת, השדה יישאר בבלוק. מחליפים את הגרסה הקודמת שהופצה בגרסה NODE_VERSION שרוצים להפיץ הפעם.
בדיקת הסטטוס של השקת תכונה
אחרי שמגדירים רצף השקה, המערכת יוצרת אוטומטית Rollout
אובייקטים לניהול השדרוגים. אפשר לעקוב אחרי ההתקדמות של האובייקטים האלה באמצעות פקודות של Google Cloud CLI.
הצגת רשימת ההשקות
כדי להציג את כל ההשקות הפעילות וההיסטוריות בפרויקט המארח של רצף ההשקות, מריצים את הפקודה הבאה:
gcloud container fleet rollouts list --project=HOST_PROJECT_ID
מחליפים את HOST_PROJECT_ID במזהה של פרויקט המארח של רצף ההשקה.
אפשר להשמיט את הדגל --project=HOST_PROJECT_ID אם כבר נמצאים בפרויקט שבו מתארחת רצף ההשקה.
הפלט אמור להיראות כך:
NAME STATE CREATE_TIME
05eb251e4f19269e23-node-1-33-5-gke-1201000-t7mqd COMPLETED 2025-10-30T20:07:46
05eb251e4f19269e23-kcp-1-33-5-gke-1201000-djwst COMPLETED 2025-10-30T18:07:06
05eb251e4f19269e23-node-1-33-5-gke-1125000-6bxvu COMPLETED 2025-10-23T17:46:54
05eb251e4f19269e23-kcp-1-33-5-gke-1125000-2f6ct RUNNING 2025-10-23T16:41:33
בפלט שלמעלה, שמות של השקות שכוללים את kcp מתייחסים לשדרוגים של מישור הבקרה, ושמות שכוללים את node מתייחסים לשדרוגים של הצומת. הפלח של שם ההשקה אחרי kcp או node נגזר מהגרסה של GKE.
תארו השקה
כדי לקבל מידע מפורט על השקה מסוימת, כולל גרסת היעד, המצב ואילו אשכולות שודרגו, משתמשים בפקודה describe עם מזהה ההשקה שהתקבל מהפקודה הקודמת:
gcloud container fleet rollouts describe ROLLOUT_ID \
--project=HOST_PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_ID: מזהה ההשקה שקיבלתם כשציינתם את רשימת ההשקות. -
HOST_PROJECT_ID: מזהה הפרויקט שבו מתארח רצף ההשקה.
לדוגמה:
gcloud container fleet rollouts describe 927e9a989930cf3b55-kcp-1-32-4-gke-1106006 \
--project=my-hostfleet
הפלט אמור להיראות כך:
createTime: '2025-05-26T11:47:29.909959672Z'
membershipStates:
projects/dev-project-id/locations/us-central1/memberships/c-1:
lastUpdateTime: '2025-05-26T12:20:55.601542481Z'
targets:
- cluster: projects/dev-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/dev-project-id/locations/us-central1/operations/operation-1234567890-abcdefg-hijklm-nopqrst
state: SUCCEEDED
stageAssignment: 1
projects/dev-project-id/locations/us-central1/memberships/c-2:
lastUpdateTime: '2025-05-26T12:22:57.151203493Z'
targets:
- cluster: projects/dev-project-id/locations/us-central1/clusters/c-2
operation: //container.googleapis.com/v1/projects/dev-project-id/locations/us-central1/operations/operation-987654321-ghijkl-mno-pqr-stu-vwxyz
state: SUCCEEDED
stageAssignment: 1
projects/prod-project-id/locations/us-central1/memberships/c-1:
lastUpdateTime: '2025-05-26T13:03:34.134308942Z'
targets:
- cluster: projects/prod-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/prod-project-id/locations/us-central1/operations/operation-567891234-efghij-klm-nopq-rstu-vwxyz
state: SUCCEEDED
stageAssignment: 2
projects/prod-project-id/locations/us-central1/memberships/c-2:
lastUpdateTime: '2025-05-26T13:06:34.025261641Z'
targets:
- cluster: projects/prod-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/prod-project-id/locations/us-central1/operations/operation-765432198-01a7b896-67c2-523-6fjjh4-icmdydh
state: SUCCEEDED
stageAssignment: 2
name: projects/user-hostfleet/locations/global/rollouts/05eb251e4f19269e23-kcp-1-32-4-gke-1106006
rolloutSequence: projects/project-id/locations/global/rolloutSequences/my-sequence
state: COMPLETED
updateTime: '2025-07-22T07:36:51.052691989Z'
versionUpgrade:
desiredVersion: 1.32.4-gke.1106006
type: TYPE_CONTROL_PLANE
stages:
- state: COMPLETED
endTime: '2025-05-26T12:22:28.828506491Z'
stageNumber: 1
startTime: '2025-05-26T11:48:28.772658427Z'
soakDuration: 600s
- state: COMPLETED
endTime: '2025-05-26T13:06:20.026390832Z'
stageNumber: 2
startTime: '2025-05-26T12:32:38.419372153Z'
soakDuration: 600s
פרטי סטטוס של השקה
כשמתארים השקה, השדות stages ו-membershipStates של הפלט מספקים את סטטוס ההתקדמות של כל שלב ושל כל אשכול בשלב הזה, בהתאמה.
בטבלה הבאה מפורטים הסטטוסים האפשריים של שלב:
| סטטוס | תיאור |
|---|---|
PENDING |
השדרוג עדיין לא התחיל בשלב הזה. |
RUNNING |
השדרוג מתבצע בשלב הזה. אם הגדרתם חלון זמן לתחזוקה של האשכולות בשלב, מערכת GKE תמתין עד לפתיחת חלון הזמן לפני שדרוג האשכולות. |
SOAKING |
כל האשכולות בשלב הזה סיימו את השדרוגים שלהם, והשלב נמצא בתקופת ההמתנה שהוגדרה לו. |
FORCED_SOAKING |
השדרוג נמשך יותר מזמן השדרוג המקסימלי (30 ימים), ולכן GKE התחיל בכפייה את שלב ההמתנה. השדרוג ימשיך בכל האשכולות שנותרו. |
COMPLETED |
השלב הסתיים, וההשקה ממשיכה לשלב הבא. |
בטבלה הבאה מפורטים הסטטוסים האפשריים של אשכול ברצף:
| סטטוס | תיאור |
|---|---|
PENDING |
השדרוג ממתין באשכול הזה. |
INELIGIBLE |
האשכול הזה לא עומד בדרישות לשדרוג, יכול להיות בגלל חוסר התאמה בגרסה. הסיבה לאי-עמידה בתנאים מופיעה בפלט. |
RUNNING |
השדרוג מתבצע באשכול הזה. |
SUCCEEDED |
השדרוג הושלם בהצלחה באשכול הזה. |
FAILED |
השדרוג נכשל באשכול הזה. המערכת מנסה שוב ושוב להגיע ליעדים שנכשלו בזמן שהשלב שלהם פעיל (במצב RUNNING או FORCED_SOAKING). |
ניהול השקה
כדי לנהל פריסה ספציפית, אפשר להיעזר בהוראות שמפורטות בקטעים הבאים. מידע נוסף על ניהול השקה ועל הפעולות שניתן לבצע מופיע במאמר ניהול השקה.
כדי לנהל רצף שלם של השקות ולא רק השקה ספציפית אחת, אפשר לעיין בקטע הבא, ניהול רצף של השקות.
השהיית ההשקה
אתם יכולים להשהות את הפריסה הפעילה. מידע נוסף על הפעולה הזו זמין במאמר בנושא השהיית פריסה.
כדי להשהות את ההשקה, מריצים את הפקודה הבאה:
gcloud container fleet rollouts pause ROLLOUT_ID
מחליפים את ROLLOUT_ID במזהה של ההשקה שרוצים להשהות. כדי לקבל את מזהי ההשקה של ההשקות ברצף ההשקות, אפשר לעיין במאמר בנושא רשימת השקות.
המשך השקה
אפשר להמשיך פריסה מושהית שההשהיה שלה נמשכה פחות מ-90 יום. מידע נוסף על הפעולה הזו זמין במאמר המשך הפריסה.
כדי להמשיך השקה שהושהתה, מריצים את הפקודה הבאה:
gcloud container fleet rollouts resume ROLLOUT_ID
מחליפים את ROLLOUT_ID במזהה של הפריסה שרוצים להמשיך. כדי לקבל את מזהי ההשקה של ההשקות ברצף ההשקות, אפשר לעיין במאמר רשימת השקות.
ביטול השקה
אתם יכולים לבטל השקה, כולל השקות פעילות או השקות שהושהו. אי אפשר לבטל השקות של שדרוגים אוטומטיים חובה. מידע נוסף על ביטול השקות זמין במאמר ביטול השקה.
כדי לבטל השקה, מריצים את הפקודה הבאה:
gcloud container fleet rollouts cancel ROLLOUT_ID
מחליפים את ROLLOUT_ID במזהה של ההשקה שרוצים לבטל. כדי לקבל את מזהי ההשקה של ההשקות ברצף ההשקות, אפשר לעיין במאמר רשימת השקות.
השלמת שלב בהשקה
אפשר לסיים שלב בהשקה אם מוכנים לשדרוגים כדי לעבור לשלב הבא. מידע נוסף על הפעולה הזו זמין במאמר בנושא השלמת שלב בהשקה.
כדי להשלים שלב בהשקה, מריצים את הפקודה הבאה:
gcloud container fleet rollouts force-complete-stage ROLLOUT_ID \
--stage=STAGE
מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_ID: המזהה של ההשקה שרוצים להשלים בה שלב. כדי לקבל את מזהי ההשקה של ההשקות ברצף ההשקות, אפשר לעיין במאמר רשימת השקות. -
STAGE: השלב שרוצים להשלים עכשיו. לדוגמה, אם רוצים להשלים את השלב השני, מזינים2. כדי להשתמש בפקודה הזו, השלב צריך להיות בהרצה או בהמתנה.
התעלמות מקבוצה ברצף השקה להשקה ספציפית
אתם יכולים להגדיר ש-GKE יתעלם מקלאסטר ברצף של השקות אם אתם לא רוצים שהקלאסטר ישודרג כחלק מהשקה פעילה. עם זאת, הפעולה הזו מסירה את האשכול מרצף ההשקה להשקות פעילות ועתידיות, ולא רק להשקות פעילות.
כדי לבצע את הפעולה הזו ולמנוע שדרוג של אשכול בהפצה פעילה, אפשר לעיין במאמר בנושא התעלמות מאשכול ברצף הפצה.
ניהול רצף השקה
יש כמה דרכים לשלוט בשדרוגים אוטומטיים של אשכולות באמצעות פריסה מדורגת, כמו שמוסבר בקטעים הבאים.
אם אתם רוצים לנהל השקה אחת מתוך רצף השקות במקום את כל רצף ההשקות ואת כל ההשקות שבו, תוכלו לעיין במאמר בנושא ניהול השקה.
הצגת רשימת רצפי ההשקה
כדי להציג את כל רצפי ההשקה בפרויקט המארח, מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences list --project=HOST_PROJECT_ID
מחליפים את HOST_PROJECT_ID במזהה של פרויקט המארח של רצף ההשקה.
תארו רצף השקה
כדי לראות את הפרטים של רצף השקה ספציפי, מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences describe ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAME: השם של רצף ההשקה. -
HOST_PROJECT_ID: המזהה של פרויקט המארח של רצף ההשקה.
הפלט אמור להיראות כך:
createTime: '2025-10-23T16:40:16.403871189Z'
displayName: my-display-name
name: projects/HOST_PROJECT_ID/locations/global/rolloutSequences/ROLLOUT_SEQUENCE_NAME
stages:
- clusterSelector:
labelSelector: resource.labels.canary=='true'
fleetProjects:
- projects/FLEET_PROJECT_ID
soakDuration: 600s
- fleetProjects:
- projects/FLEET_PROJECT_ID
soakDuration: 300s
uid: 5c5b2ac8-9d76-45f9-92ca-5e6bd3fbcaef
updateTime: '2025-10-23T17:11:57.285678399Z'
בחירת סוגי השדרוגים ש-GKE מבצע ברצף השקה
כברירת מחדל, GKE מבצע את כל סוגי השדרוגים של האשכול ברצף של פריסה. אתם יכולים להגביל את היקף השדרוגים של האשכולות ברצף השקה כדי לבצע רק סוגים ספציפיים של שדרוגים. מידע נוסף זמין במאמר בחירת סוגי השדרוגים ש-GKE מבצע במהלך פריסה.
כדי להגדיר את סוגי השדרוגים שרוצים ש-GKE יבצע ברצף השקה, פועלים לפי ההוראות האלה, בהתאם לאופן שבו מנהלים את רצף ההשקה:
gcloud
מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--auto-rollout-scope=TYPES_OF_UPGRADES
מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAME: השם של רצף ההשקה. TYPES_OF_UPGRADES: רשימת השדרוגים שצריך לבצע, שיכולה לכלול את האפשרויות הבאות:-
all: ברירת המחדל, GKE מבצע את כל סוגי השדרוגים של האשכול ברצף ההשקה. -
none: GKE לא מבצע שדרוגים של אשכולות ברצף הפריסה, למעט פריסות לשדרוגים אוטומטיים חובה. אחד או יותר מהערכים הבאים. אם יש כמה ערכים, צריך להזין אותם ברשימה מופרדת בפסיקים ללא רווחים:
-
control-plane-patch: GKE מבצע שדרוגים אוטומטיים של מישור הבקרה של האשכול לגרסאות תיקון מאוחרות יותר. -
control-plane-minor: GKE מבצע שדרוגים אוטומטיים של מישור הבקרה של האשכול לגרסאות משניות מאוחרות יותר. -
nodes-patch: GKE מבצע שדרוגים אוטומטיים של צמתי אשכול לגרסאות תיקון מאוחרות יותר. -
nodes-minor: GKE מבצע שדרוגים אוטומטיים של צמתי אשכול לגרסאות משניות מאוחרות יותר.
-
לדוגמה, אם רוצים שרק גרסאות תיקון יופעלו ברצף ההשקה, צריך לציין את ההגדרה
control-plane-patch,nodes-patch.-
Terraform
אם אתם משתמשים ב-Terraform כדי לנהל את רצף ההשקה, אתם יכולים לציין אילו סוגי שדרוגים אתם רוצים ש-GKE יבצע ברצף ההשקה הזה. לשם כך, מוסיפים את סוגי השדרוגים לבלוק שבו השתמשתם כדי ליצור את רצף ההשקה.
מוסיפים את השדה הבא לבלוק. אפשר להוסיף את השדה בכל מקום חוץ מאשר בין בלוקים של stages, שצריכים להיות עוקבים:
auto_upgrade_config {
rollout_creation_scope {
upgrade_types = [
UPGRADE_TYPES
]
}
}
מחליפים את UPGRADE_TYPES ברשימת השדרוגים שרוצים לבצע, שיכולה לכלול אחד או יותר מהערכים הבאים (כל אחד בתוך מרכאות):
-
"CONTROL_PLANE_PATCH": GKE מבצע שדרוגים אוטומטיים של מישור הבקרה של האשכול לגרסאות תיקון מאוחרות יותר. -
"CONTROL_PLANE_MINOR": GKE מבצע שדרוגים אוטומטיים של מישור הבקרה של האשכול לגרסאות משניות מאוחרות יותר. -
"NODE_PATCH": GKE מבצע שדרוגים אוטומטיים של צמתי אשכול לגרסאות תיקון מאוחרות יותר. -
"NODE_MINOR": GKE מבצע שדרוגים אוטומטיים של צמתי אשכולות לגרסאות משניות מאוחרות יותר.
לדוגמה, אם רוצים שרק גרסאות תיקון יופצו ברצף ההפצה, צריך לציין את ההגדרה upgrade_types = ["CONTROL_PLANE_PATCH", "NODE_PATCH"].
אם מגדירים את upgrade_types = [], מערכת GKE לא מבצעת שדרוגים של אשכולות ברצף ההשקה, למעט השקות של שדרוגים אוטומטיים נדרשים.
כדי לחזור להתנהגות ברירת המחדל שבה GKE מבצע את כל סוגי שדרוגי האשכולות ברצף ההשקה, מציינים את ההגדרה upgrade_types = ["CONTROL_PLANE_PATCH", "CONTROL_PLANE_MINOR", "NODE_PATCH", "NODE_MINOR"]. אפשר גם להסיר את הבלוק auto_upgrade_config מההגדרה של Terraform.
שינוי רצף ההשקה
אפשר לשנות רצף פריסה קיים אחרי שיוצרים אותו. משנים את רצף ההשקה לפי ההוראות הבאות, בהתאם לאופן שבו אתם מנהלים את רצף ההשקה.
gcloud
אם אתם משתמשים ב-CLI של gcloud כדי לנהל את רצף ההפצה, אתם יכולים לערוך את קובץ ההגדרות בפורמט YAML שבו הגדרתם את הרצף. לדוגמה, אפשר לעדכן את זמן הטבילה של שלב מסוים או לעדכן את השלב כדי לשנות את סדר השדרוגים. אחרי עריכת הקובץ, מאשרים את השינויים.
לדוגמה, אם הגדרתם את רצף ההשקה המקורי בקובץ בשם rollout-sequence.yaml, עורכים את הקובץ לפי הצורך. לאחר מכן, מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences update test-rollout-sequence \
--display-name="My Updated Rollout Sequence" \
--stage-config=rollout-sequence.yaml
Terraform
אם אתם משתמשים ב-Terraform כדי לנהל את רצף ההשקה, אתם יכולים לשנות את רצף ההשקה על ידי שינוי הבלוק שבו השתמשתם כדי ליצור את רצף ההשקה.
התעלמות מקבוצת משתמשים בסדרת השקה
אתם יכולים להגדיר ש-GKE יתעלם מאשכול ברצף ההשקה. אתם יכולים להתעלם מקבוצה אחת או יותר של משתמשים ברצף ההשקה. מידע נוסף זמין במאמר בנושא התעלמות מאשכול ברצף של השקה.
כדי ש-GKE יתעלם מאשכול ברצף השקה, מבצעים את השלבים הבאים:
- מוסיפים תווית לאשכול שרוצים ש-GKE יתעלם ממנו, או משתמשים בתווית קיימת. לדוגמה, אפשר להגדיר ש-GKE יתעלם מתווית כמו
status, או שיתעלם מתווית כשהיא מקבלת ערך ספציפי, כמוstatus=quarantine. מגדירים את רצף ההשקה כך שיתעלם מקלאסטרים עם התווית הזו. כדי לעשות את זה, פועלים לפי השלבים הבאים, בהתאם לאופן שבו מנהלים את רצף ההשקה:
gcloud
מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \ --ignored-clusters-selector="resource.labels.LABEL_TO_IGNORE"מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAME: השם של רצף ההשקה. -
LABEL_TO_IGNORE: שם התווית של האשכולות ש-GKE צריך להתעלם מהם ברצף ההשקה.
Terraform
אם אתם משתמשים ב-Terraform כדי לנהל את רצף ההשקה, מוסיפים את השדה הבא לבלוק שבו השתמשתם כדי ליצור את רצף ההשקה. אפשר להוסיף את השדה בכל מקום חוץ מאשר בין הבלוקים
stages, שצריכים להיות רצופים:ignored_clusters_selector { label_selector = "resource.labels.LABEL_TO_IGNORE" }מחליפים את
LABEL_TO_IGNOREבשם התווית של האשכולות ש-GKE צריך להתעלם מהם ברצף ההשקה.-
בהוראות האלה מוסבר איך להגדיר את GKE כך שיתעלם מסוג אחד של תווית ברצף ההשקה. אם רוצים להתעלם מכמה תוויות או ליצור ביטויים מורכבים יותר כדי להתעלם מקבוצות עם תוויות ספציפיות, אפשר להעביר ערכים לשדה הזה באמצעות תחביר של ביטוי CEL.
כל התוויות צריכות להתחיל בקידומת resource.labels..
הוספה של אשכול בחזרה לרצף השקה
אם פעלתם לפי ההוראות שבקטע הקודם בנושא GKE כדי להתעלם מקלאסטר ברצף השקה, אתם יכולים לבטל את הפעולה הזו. אם אתם רוצים ש-GKE יפסיק להתעלם מאשכולות, צריך להסיר את בורר ההתעלמות באמצעות ההוראות הבאות, בהתאם לאופן שבו אתם מנהלים את רצף ההשקה:
gcloud
מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--clear-ignored-clusters-selector
מחליפים את ROLLOUT_SEQUENCE_NAME בשם של רצף ההשקה.
הפקודה הזו מאפסת את בורר ההתעלמות, כך ש-GKE לא יתעלם מאף אשכול ברצף.
Terraform
אם אתם משתמשים ב-Terraform כדי לנהל את רצף ההשקה, אתם צריכים להסיר את הבלוק ignored_clusters_selector מהבלוק שבו השתמשתם כדי ליצור את רצף ההשקה.
לחלופין, אם רוצים ש-GKE לא יתעלם מאשכול מסוים, מסירים את התוויות מהאשכול.
מחיקת רצף השקה
כדי למחוק רצף השקה, מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
ROLLOUT_SEQUENCE_NAMEבשם של רצף ההשקה. HOST_PROJECT_IDבמזהה של פרויקט המארח של רצף ההשקה.
כשמוחקים רצף השקה, כל ההשקות שעדיין בתהליך ברצף הזה מבוטלות. האשכולות שהיו חלק מהרצף חוזרים להתנהגות ברירת המחדל של שדרוג אוטומטי בערוץ ההפצה שאליו הם רשומים.
העברת רצף פריסה קיים לשימוש בשלבים מותאמים אישית
אם אתם משתמשים בגרסה מבוססת-הצי של פריסת רצפים, אתם יכולים לעבור לרצף שמשתמש בשלבים מותאמים אישית על ידי יצירת RolloutSequence חדש שמפנה לציים הקיימים שלכם. שימו לב: בגרסה הזו של פריסת רצפים אין תמיכה במסוף Cloud de Confiance .
כדי להעביר את רצף ההשקה, צריך לבצע את השלבים הבאים:
אפשר גם ליצור עותק של ההגדרה הנוכחית של רצף ההשקה לפני שמבצעים את ההעברה. כדי ליצור עותק של ההגדרה, מבצעים אחת מהפעולות הבאות:
- ה-CLI של gcloud: מריצים את הפקודה כדי לבדוק את הסטטוס של רצף פריסה שמבוסס על Fleet. שומרים את הפלט של הפקודה.
- Terraform: שומרים את התצורה של Terraform.
מומלץ לא למחוק את רצף הפריסה שמבוסס על צי, כדי שיהיה קל יותר לחזור לגרסה הקודמת של רצף הפריסה, אם יהיה צורך. אין צורך למחוק את רצף ההפצה שמבוסס על צי, כדי שרצף ההפצה עם שלבים מותאמים אישית יפעל, כי GKE פועל רק לפי רצף ההפצה עם שלבים מותאמים אישית אם שניהם קיימים.
יוצרים פרויקט ייעודי Cloud de Confiance by S3NS לאירוח רצף ההשקה. בדרך כלל הפרויקט הזה לא חלק מהרצף, כלומר הפרויקט לא מכיל צי או אשכולות שהם חלק מהרצף.
אם רוצים שרצף ההשקה יכלול אשכולות ספציפיים בצי, מוסיפים תוויות לאשכולות האלה. השלב הזה הוא אופציונלי.
פועלים לפי ההוראות במאמר יצירת רצף השקה עם שלבים בהתאמה אישית.
לדוגמה, המניפסט הבא, שנקרא
rollout-sequence-migrate.yaml, מפנה אל צי הרכבים הקיים ברצף פריסה קודם. קובץ המניפסט הזה מתאר שלושה שלבים, כולל שלבcanaryבציprod:- stage: fleet-projects: - projects/dev soak-duration: 604800s - stage: fleet-projects: - projects/prod soak-duration: 604800s label-selector: canary=true - stage: fleet-projects: - projects/prod soak-duration: 604800s
מיד אחרי שמגדירים RolloutSequence חדש לציים, GKE מתחיל לשדרג את הציים לפי הרצף החדש ומסיר את ההגדרה הקודמת.
העברה של רצף השקה עם שלבים מותאמים אישית לרצף ההשקה הקודם
בקטע הזה מוסבר איך לחזור מפריסת רצף עם שלבים מותאמים אישית למודל של פריסת רצף מבוססת-צי. התהליך הזה כולל מחיקה של RolloutSequence החדש ושחזור של התצורה המקורית של צי המכשירים.
איך מונעים שדרוג לא תקין במהלך העברה
כדי למנוע שדרוגים לא מכוונים או שדרוגים שלא מתבצעים לפי הסדר בזמן שאתם מגדירים מחדש את הרצף, צריך להחיל החרגה של תחזוקה על אשכולות הייצור. בשלב הזה, כל השדרוגים האוטומטיים של האשכולות האלה מושהים באופן זמני. לדוגמה, אתם יכולים להגדיר החרגה של תחזוקה מסוג no upgrades באשכולות הייצור שלכם.
מחיקת רצף ההשקה
מוחקים את אובייקט RolloutSequence שמנהל את האשכולות. המחיקה הזו משביתה את התכונה 'שלבים בהתאמה אישית'.
כדי למחוק את RolloutSequence, מריצים את הפקודה הבאה:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME
מחליפים את ROLLOUT_SEQUENCE_NAME בשם של רצף ההשקה.
שחזור ההגדרה הקודמת של רצף ההשקה (ללא שלבים בהתאמה אישית)
אחרי שמוחקים את RolloutSequence, אפשר לשחזר את ההגדרה המקורית שמבוססת על צי הרכבים. התהליך הזה כולל יצירה מחדש של התכונות של clusterupgrade עם הפרמטרים המקוריים שלהן, כולל הקישורים של upstreamFleet וזמני ההמתנה לכל קבוצת רכבים ברצף. מידע נוסף זמין במאמר בנושא יצירת רצף השקה.
הסרת ההחרגות של התחזוקה
אחרי שמשחזרים את ההגדרה המקורית של רצף הפריסה שמבוסס על צי, מסירים את ההחרגה של התחזוקה שהגדרתם בשלב הראשון בקטע הזה. GKE ימשיך את השדרוגים האוטומטיים, שמעכשיו יתבצעו לפי הרצף ששוחזר על סמך המכשירים בארגון.