תמונות של צמתים

בדף הזה מתוארים קובצי האימג' של הצמתים שזמינים לצמתים של Google Kubernetes Engine‏ (GKE).

צמתים של GKE Autopilot תמיד משתמשים במערכת הפעלה שמותאמת לקונטיינרים עם containerd (cos_containerd), שהיא מערכת ההפעלה המומלצת לצמתים. אם אתם משתמשים ב-GKE Standard, אתם יכולים לבחור את קובץ האימג' של מערכת ההפעלה שפועל בכל צומת במהלך היצירה של האשכול או של מאגר הצמתים. אפשר גם לשדרג אשכול Standard קיים כדי להשתמש בתמונת צומת אחרת. הוראות להגדרת קובץ האימג' של הצומת מפורטות במאמר ציון קובץ אימג' של צומת.

תמונות זמינות של צמתים

ב-GKE יש את האפשרויות הבאות לתמונות צמתים לכל מערכת הפעלה באשכול:

מערכת הפעלה תמונות של צמתים
מערכת הפעלה שמותאמת לקונטיינרים
Ubuntu
Windows Server

מערכת הפעלה שמותאמת לקונטיינרים

קובצי האימג' של הצמתים במערכת ההפעלה שמותאמת לקונטיינרים של Google מבוססים על גרסה עדכנית של ליבת Linux, והם מותאמים לשיפור האבטחה של הצמתים. קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים מגובים על ידי צוות ב-Google שיכול לתקן במהירות קובצי אימג' לצורכי אבטחה ולבצע איטרציות על תכונות. קובצי האימג' של מערכת הפעלה שמותאמת לקונטיינרים מספקים תמיכה, אבטחה ויציבות טובות יותר מאשר קובצי אימג' אחרים.

למידע על הפרויקט ועל משפחת התמונות, ראו פרויקטים של מקורות תמונות של צמתים.

גרסאות של מערכת הפעלה שמותאמת לקונטיינרים

אתם יכולים להשתמש בקובץ האימג' הבא של מערכת הפעלה שמותאמת לקונטיינרים:

  • מערכת הפעלה שמותאמת לקונטיינרים עם containerd‏ (cos_containerd): קובץ האימג' של cos_containerd משתמש ב-containerd כסביבת זמן הריצה של הקונטיינר, שמשולבת ישירות עם Kubernetes. אשכולות GKE Autopilot תמיד משתמשים בתמונה הזו. מידע נוסף זמין במאמר תמונות של צומתי Containerd.

Ubuntu

תמונות הצומת של Ubuntu אומתו מול הדרישות של GKE לתמונות צומת. אם הצמתים שלכם דורשים תמיכה בחבילות XFS, ‏ CephFS או Debian, כדאי להשתמש בתמונות של צומתי Ubuntu.

למידע על משפחת התמונות והפרויקט, ראו תמיכה בתכונות לפי מערכת הפעלה.

גרסאות של Ubuntu

אפשר להשתמש בתמונת Ubuntu הבאה:

  • ‫Ubuntu עם containerd‏ (ubuntu_containerd): קובץ האימג' ubuntu_containerd משתמש ב-containerd כסביבת זמן הריצה של הקונטיינר. למידע נוסף, קראו את המאמר תמונות של צומתי Containerd.

Windows Server

כשיוצרים אשכול באמצעות מאגרי צמתים של Windows Server, אפשר להשתמש בקובץ אימג' של צומת Windows Server Long-Term Servicing Channel ‏ (LTSC). קובץ האימג' של צומת Windows הוא קובץ אימג' של Windows Server Datacenter Core. באשכול אחד יכולים להיות כמה מאגרי צמתים של Windows Server שמשתמשים בגרסאות שונות של Windows Server, אבל כל מאגר צמתים יכול להשתמש רק בגרסה אחת של Windows Server. מידע נוסף מופיע במאמר בחירת קובץ אימג' של צומת Windows.

אפשר להשתמש בתמונת Windows Server הבאה:

  • <!--Windows Server LTSC with containerd (): The image uses containerd as the container runtime.-->Windows Server LTSC עם containerd ‏(windows_ltsc_containerd): קובץ האימג' windows_ltsc_containerd משתמש ב-containerd כסביבת זמן הריצה של הקונטיינר. נכון לעכשיו, סוג התמונה הזה ממפה לשתי תמונות של צמתים: Windows Server 2022 ו-Windows Server 2019. אפשר ליצור מאגרי צמתים של Windows LTSC2022 באמצעות פקודת ה-CLI של gcloud עם הדגל windows-os-version.

מידע נוסף על יצירת מאגרי צמתים של Windows Server 2022 זמין במאמר יצירת מאגרי צמתים של Windows.

למידע נוסף על קובצי אימג' של צומת containerd, קראו את המאמר קובצי אימג' של צומת containerd.

למידע על משפחת התמונות והפרויקט, ראו תמיכה בתכונות לפי מערכת הפעלה.

השוואה בין קובצי אימג' של צומתי Linux

בקטעים הבאים מוצגת השוואה בין ההיבטים התפעוליים של תמונות הצמתים של מערכת הפעלה שמותאמת לקונטיינרים ושל Ubuntu, כולל:

  • ניהול חבילות תוכנה
  • אתחול המערכת
  • איסוף יומנים
  • פריסת מערכת הקבצים
  • תמיכה במנהלי התקנים של אחסון

כלי לניהול חבילות תוכנה

קובצי האימג' של הצמתים cos ו-cos_containerd משתמשים במערכת קבצים מינימלית ברמה הבסיסית (root), עם תמיכה מובנית בסביבת זמן הריצה של קונטיינר Docker ‏(containerd), שמשמשת גם כמנהל חבילות התוכנה להתקנת תוכנות במארח. בתמונת Ubuntu משתמשים בכלי לניהול חבילות APT.

ניהול תוכנות במערכת הפעלה שמותאמת לקונטיינרים

קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים לא מספק כלי לניהול חבילות כמו apt-get. אי אפשר להתקין תוכנה שרירותית בצמתים באמצעות מנגנונים רגילים. במקום זאת, צרו קובץ אימג' של קונטיינר שמכיל את התוכנה שאתם צריכים.

באשכולות רגילים, למטרות ניפוי באגים בלבד, מערכת ההפעלה שמותאמת לקונטיינרים כוללת את CoreOS Toolbox להתקנה ולהפעלה של כלים נפוצים לניפוי באגים, כמו ping,‏ psmisc או pstree. למידע נוסף על ניפוי באגים בצמתים של מערכת הפעלה שמותאמת לקונטיינרים, קראו את המדריכים של מערכת הפעלה שמותאמת לקונטיינרים.

ניהול תוכנות ב-Ubuntu

התמונה של Ubuntu משתמשת בכלי לניהול חבילות APT. אפשר להשתמש בפקודה apt-get כדי להתקין חבילות בתמונות האלה. לדוגמה, כדי להתקין חבילות של ceph:

sudo apt-get update
sudo apt-get install ceph

אתחול המערכת

גם קובץ האימג' של הצומת של מערכת ההפעלה שמותאמת לקונטיינרים וגם קובץ האימג' של הצומת של Ubuntu משתמשים ב-systemd כדי לנהל את משאבי המערכת והשירותים במהלך תהליך האתחול של המערכת.

בשני סוגי האימג'ים של הצמתים נעשה שימוש בקובצי שירות של systemd כדי להגדיר את services בצומת, וב-systemd.targets כדי לקבץ יעדי הפעלה באמצעות יחסי תלות.

איסוף יומנים

קובצי האימג' של הצמתים במערכת ההפעלה שמותאמת לקונטיינרים וב-Ubuntu משתמשים ב-systemd-journald כדי לאסוף יומנים ברמת המערכת.

צפייה ביומנים במערכת הפעלה שמותאמת לקונטיינרים וב-Ubuntu

כדי להציג יומנים בצומת עם קובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים או של Ubuntu, צריך להשתמש בפקודה journalctl. לדוגמה, כדי להציג את יומני הדמון של containerd:

sudo journalctl -u containerd

כדי להציג את יומני ה-kubelet:

sudo journalctl -u kubelet

פריסת מערכת הקבצים

תמונת הצומת של Ubuntu משתמשת בפריסה הרגילה של מערכת הקבצים של Linux.

פריסת מערכת הקבצים של קובץ האימג' של הצומת במערכת ההפעלה שמותאמת לקונטיינרים מותאמת לשיפור האבטחה של הצומת. המקום בדיסק האתחול מחולק לשלושה סוגים של מחיצות:

  • מחיצת הבסיס, שנטענת במצב קריאה בלבד
  • מחיצות עם שמירת מצב, שניתנות לכתיבה ושומרות מצב
  • מחיצות ללא שמירת מצב, שניתן לכתוב בהן אבל התוכן לא נשמר אחרי הפעלה מחדש

כשמשתמשים במערכת הפעלה שמותאמת לקונטיינרים, חשוב לשים לב לחלוקה למחיצות אם מריצים שירותים משלכם שיש להם ציפיות מסוימות לגבי פריסת מערכת הקבצים מחוץ לקונטיינרים.

עבודה עם מערכת הקבצים של מערכת הפעלה שמותאמת לקונטיינרים

ברשימה הבאה מפורטים הנתיבים במערכת הקבצים של קובץ האימג' של הצומת ב-Container-Optimized OS, יחד עם המאפיינים שלהם והשימוש המומלץ בהם:

נתיב מאפיינים מטרה
/
  • לקריאה בלבד
  • קובץ הפעלה
מערכת הקבצים הבסיסית נטענת במצב קריאה בלבד כדי לשמור על השלמות. הקרנל מאמת את התקינות של מערכת הקבצים ברמה הבסיסית (root) במהלך ההפעלה, ומסרב להפעיל את המערכת אם יש שגיאות.
‎/home
/var
‎
  • ניתן לכתיבה
  • לא קובץ הפעלה
  • עם שמירת מצב
הנתיבים האלה מיועדים לאחסון נתונים שנשמרים לאורך כל משך החיים של דיסק האתחול. הם נטענים מ-/mnt/stateful_partition.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
  • ניתן לכתיבה
  • קובץ הפעלה
  • עם שמירת מצב
הנתיבים האלה הם ספריות עבודה של חבילות Compute Engine (לדוגמה, שירות מנהל החשבונות), Docker ו-Toolbox בהתאמה.
/var/lib/cloud
  • ניתן לכתיבה
  • קובץ הפעלה
  • אינו שומר מצב
  • tmpfs
הנתיב הזה הוא ספריית העבודה של החבילה cloud-init.
/etc
  • ניתן לכתיבה
  • קובץ הפעלה
  • אינו שומר מצב
  • tmpfs
בדרך כלל מכיל את ההגדרות האישיות (לדוגמה, שירותי systemd שמוגדרים באמצעות cloud-init). מומלץ לתעד את המצב הרצוי של המכונות ב-cloud-init, כי cloud-init מופעל כשיוצרים מכונה חדשה וגם כשמפעילים מחדש מכונה.
/tmp
  • ניתן לכתיבה
  • לא קובץ הפעלה
  • אינו שומר מצב
  • tmpfs
בדרך כלל משמש כמרחב זמני ולא צריך לשמש לאחסון נתונים קבועים.
/mnt/disks
  • ניתן לכתיבה
  • קובץ הפעלה
  • אינו שומר מצב
  • tmpfs
אפשר לטעון דיסקים קבועים בספריות ב-/mnt/disks.

תמיכה במנהלי התקנים של אחסון

כל קובץ אימג' של צומת שונה בסוגי הפלאגינים של האחסון שהוא תומך בהם. המונחים הבאים מתייחסים לתמיכה של קובץ אימג' של צומת במנהל התקן אחסון מסוים:

  • כן – נבדק ונתמך באופן מלא: הפלאגין הזה לאחסון נתמך באופן מלא ונבדק עם קובץ האימג' של הצומת שצוין.
  • כן – בדיקה מוגבלת: הפלאגין הזה לאחסון פועל עם קובץ האימג' שצוין של הצומת, אבל נבדק באופן מוגבל בלבד. יכול להיות שתיתקלו בהתנהגות לא צפויה. במערכת הפעלה שמותאמת לקונטיינרים, הפלאגינים האלה ייבדקו וייתמכו באופן מלא בסופו של דבר.
  • לא נתמך: הפלאגין הזה לאחסון לא נבדק או לא היה בשימוש עם קובץ האימג' של הצומת שצוין, ו-GKE לא יכולה להבטיח את הפונקציונליות שלו. אין תוכניות לבדוק את הפלאגין הזה לאחסון.
  • לא: הפלאגין הזה לאחסון לא פועל עם קובץ האימג' שצוין של הצומת, בגלל מגבלה שקשורה למערכת ההפעלה של הצומת או ל- Google Cloud.

במטריצה הבאה מתואר איך כל קובץ אימג' של צומת GKE תומך בכמה יישומי פלאגין נפוצים לאחסון.

סוג נפח האחסון האם זה עובד במערכת הפעלה שמותאמת לקונטיינרים (cos)? האם זה עובד ב-Ubuntu?
Compute Engine
Persistent Disk (EXT4 או XFS)
כן – נבדק ונתמך באופן מלא
(XFS נתמך רק ב-cos-85 ואילך). נתוני הגרסה של GKE
כן – נבדק ונתמך באופן מלא
NFSv3 כן – נבדק ונתמך באופן מלא כן – נבדק ונתמך באופן מלא
NFSv4 כן – נבדק ונתמך באופן מלא כן – נבדק ונתמך באופן מלא
CephFS לא כן – בדיקה מוגבלת
(מנהל ההתקן לא מותקן כברירת מחדל. צריך להתקין את הלקוח ceph, רצוי באמצעות DaemonSet.)
Cinder לא לא
Fibre Channel לא לא
Flocker לא נתמך לא נתמך
iSCSI לא לא
RBD לא לא

סנכרון זמן

גם קובצי אימג' של צמתים של מערכת הפעלה שמותאמת לקונטיינרים וגם של Ubuntu משתמשים בשרת פנימי של פרוטוקול זמן רשת (NTP) כמקור הזמן הראשי. שרת ה-NTP הפנימי הזה מפוזר באופן זהה ל-Google Public NTP.

אם שרת ה-NTP הפנימי לא זמין, גם מערכת ההפעלה שמותאמת לקונטיינרים וגם קובצי האימג' של צומתי Ubuntu משתמשים בשעון זמן אמת (RTC), שהוא שעון החומרה של המכונה המארחת, כמקור גיבוי לזמן.

יצירת מספרים אקראיים

בצמתים של מערכת הפעלה שמותאמת לקונטיינרים ושל Ubuntu, לפודים יש גישה לקבצים /dev/random ו-/dev/urandom. הקבצים האלה מספקים מספרים אקראיים שנוצרים על ידי Virtio RNG ממאגר אנטרופיה שנוצר על ידי המכונה של Compute Engine.

שינויים ב-VM של הצומת

שינויים בדיסק האתחול של VM של צומת לא נשמרים כשיוצרים מחדש את הצומת. הצמתים נוצרים מחדש במהלך שדרוג ידני, שדרוג אוטומטי, תיקון אוטומטי והתאמה אוטומטית לעומס (automatic scaling). בנוסף, הצמתים נוצרים מחדש כשמפעילים תכונה שדורשת יצירה מחדש של צמתים, כמו GKE Sandbox, הרשאות גישה בתוך הצומת וצמתים מוגנים.

כדי לשמור על השינויים ביצירה מחדש של צמתים, צריך להשתמש ב-DaemonSet.

לא מומלץ לנהל תוכנות קריטיות שמסופקות על ידי קובץ אימג' של צומת, כמו הליבה או סביבת זמן הריצה של הקונטיינר. תמונות של צמתים נבדקות באופן נרחב, ושינוי של תוכנה קריטית שסופקה בתמונת הצומת מעביר את הצומת למצב לא ידוע שלא ניתן לבדיקה. בצמתים של GKE Autopilot אי אפשר לשנות את התוכנה של הצומת.

מיפוי גרסאות של קובצי אימג' של צומת מערכת הפעלה שמותאמת לקונטיינרים לגרסאות תיקון של GKE

‫GKE מפרסם מיפוי JSON של גרסאות התיקונים של GKE לגרסאות של קובצי האימג' של צומתי מערכת ההפעלה שמותאמת לקונטיינרים:

אתם יכולים להשתמש במיפוי הזה כדי לשדרג לגרסה ספציפית של GKE ולקבל גרסת קובץ אימג' ספציפית. לדוגמה, אם האשכול שלכם צריך תכונה או תיקון מסוימים מגרסת אימג', אתם יכולים למצוא את המיפוי ולשדרג את האשכול לגרסה ספציפית של GKE כדי לקבל את גרסת האימג' של מערכת ההפעלה שמותאמת לקונטיינרים עם השינויים. לפרטים על גרסאות של קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים, קראו את נתוני הגרסה של מערכת ההפעלה שמותאמת לקונטיינרים.

הרשימה הזו מתעדכנת בערך פעם בשבוע. כדי לראות את עדכניות המידע, עיינו בשדה creation_time בקובץ ה-JSON.

נתוני גרסה של קובצי אימג' של צמתים

מערכת הפעלה שמותאמת לקונטיינרים

‫Google מספקת תיעוד מקיף למערכת הפעלה שמותאמת לקונטיינרים:

Ubuntu

מדי פעם Google מעדכנת את קובצי האימג' של Ubuntu שזמינים לשימוש בצומתי האשכול. בנתוני הגרסה של GKE מפורט מידע על העדכונים האלה, כולל קישור למניפסט שמפרט את החבילות שמותקנות כברירת מחדל.

פרויקטים של מקורות תמונות של צמתים

קובצי האימג' הזמינים של הצמתים לאשכולות GKE נמצאים בפרויקטים הבאים:

  • קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים: gke-node-images
  • תמונות של Ubuntu:
    • בגרסאות GKE שקודמות ל-1.36: ubuntu-os-gke-cloud
    • ‫GKE מגרסה 1.36 ואילך: gke-ubuntu-node-images
  • תמונות של Windows Server: ‏gke-windows-node-images

בנוסף לפרויקטים של המקורות שמפורטים למעלה, GKE משתמש גם בפרויקטים הבאים של המקורות לשימוש בלעדי של צוות GKE:

  • ‫ubuntu-os-gke-cloud-private (שמור לשימוש בלעדי של צוות GKE)
  • ‫ubuntu-os-gke-cloud-devel (שמור לשימוש בלעדי של צוות GKE)

יכול להיות שתצטרכו לדעת את שמות הפרויקטים של המקור בזמן הגדרת אשכולות מאובטחים מאוד. הפרויקטים שמופיעים ברשימה עשויים להשתנות.

המאמרים הבאים