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

בדף הזה מוסבר על containerd, שמשמש את כל קובצי האימג' של הצמתים כזמן הריצה של הקונטיינרים בצמתים של Google Kubernetes Engine ‏ (GKE).

מידע על containerd

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

זמן הריצה containerd הוא זמן ריצה של קונטיינרים לפי תקן התעשייה, והוא נתמך על ידי Kubernetes ומשמש פרויקטים רבים אחרים. זמן הריצה של containerd מספק את ההפשטה של השכבות שמאפשרת הטמעה של קבוצה עשירה של תכונות כמו gVisor והזרמת תמונות כדי להרחיב את הפונקציונליות של GKE.

סביבת ההרצה containerd נחשבת ליעילה יותר מבחינת משאבים ומאובטחת יותר מסביבת ההרצה של Docker.

שימוש בתמונות containerd באשכולות GKE

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

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

מצב אשכול מערכת ההפעלה של מאגר הצמתים תמונה של צומת
Autopilot Linux cos_containerd
רגילה Linux
  • cos_containerd
  • ubuntu_containerd
רגילה Windows Server

התמונות האלה דורשות GKE מגרסה 1.21.1-gke.2200 ואילך.

שימוש ב-Pods עם הרשאות מיוחדות כדי לגשת ל-Docker

אם המשתמשים שלכם ניגשים ל-Docker Engine בצומת באמצעות Pod עם הרשאות, כדאי לעדכן את עומסי העבודה האלה כך שלא תהיה תלות ישירה ב-Docker. לדוגמה, אפשר להעביר את תהליך החילוץ של הרישום ביומן והמעקב מ-Docker Engine לתוספים של מערכת GKE.

פיתוח קובצי אימג' של קונטיינרים באמצעות containerd

אי אפשר להשתמש ב-containerd כדי ליצור קובצי אימג' של קונטיינרים. קובצי אימג' של Linux עם containerd כוללים את קובץ ה-Docker הבינארי, כך שאפשר להשתמש ב-Docker כדי ליצור קובצי אימג' ולהעביר אותם בדחיפה. עם זאת, לא מומלץ להשתמש בקונטיינרים בודדים ובצמתים מקומיים כדי להריץ פקודות ליצירת תמונות.

מערכת Kubernetes לא מודעת למשאבי המערכת שמשמשים תהליכים מקומיים מחוץ להיקף של Kubernetes, ורמת הבקרה של Kubernetes לא יכולה להתחשב בתהליכים האלה כשמקצים משאבים. הפעולה הזו עלולה לגרום למחסור במשאבים בעומסי העבודה של GKE או לאי יציבות בצומת.

כדאי לבצע את המשימות האלה באמצעות שירותים אחרים מחוץ להיקף של הקונטיינר הספציפי, כמו Cloud Build, או להשתמש בכלי כמו kaniko כדי ליצור תמונות כעומס עבודה של Kubernetes.

אם אף אחת מההצעות האלה לא מתאימה לכם, ואתם מבינים את הסיכונים, אתם יכולים להמשיך להשתמש ב-Docker בצומת המקומי כדי ליצור קובצי אימג'. כדי להשתמש בתמונות באשכול GKE, צריך להעביר אותן למאגר. מערכת Kubernetes עם containerd לא מודעת לקובצי אימג' שנוצרו מקומית באמצעות Docker.

ניפוי באגים בקונטיינרים בצמתים של containerd

כדי לבצע ניפוי באגים או לפתור בעיות בצמתי Linux, אפשר ליצור אינטראקציה עם containerd באמצעות כלי שורת הפקודה הנייד שנוצר עבור זמני ריצה של קונטיינרים ב-Kubernetes: ‏ crictl. ‫crictl תומך בפונקציות נפוצות לצפייה בקונטיינרים ובקובצי אימג', לקריאת יומנים ולהרצת פקודות בקונטיינרים. במדריך למשתמש של crictl אפשר למצוא את כל התכונות הנתמכות ומידע על השימוש בהן.

בצמתים של Windows Server, הדמון containerd פועל כשירות Windows בשם containerd.

היומנים זמינים באופן הבא:

  • ב-Windows:‏ C:\etc\kubernetes\logs\containerd.log
  • ‫Linux: מריצים את journalctl -u containerd

אפשר גם לראות את היומנים של צמתי Windows ו-Linux ב-Logs Explorer בקטע LOG NAME: "container-runtime".

בעיות ידועות ופתרון בעיות

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

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