תמונות של צמתים של 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".

בעיות מוכרות ופתרון בעיות

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

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