פריסת קונטיינרים במכונות ובקבוצות של מכונות מנוהלות (MIG)

אתם יכולים להגדיר מכונה של Compute Engine או תבנית של הגדרות מכונה כדי לפרוס ולהפעיל קונטיינר של Docker. ‫Compute Engine מספק תמונה עדכנית של מערכת הפעלה שמותאמת לקונטיינרים (COS) עם Docker מותקן, ומפעיל את הקונטיינר כשמתחילים להשתמש במכונה.

לפני שמתחילים

בחירה בפריסת קונטיינרים במכונות ובקבוצות של מכונות מנוהלות (MIG)

פריסת קונטיינרים ב-Compute Engine מאפשרת לפשט את פריסת האפליקציות תוך שליטה בתשתית של המכונה.

  • כשמגדירים ומנהלים את התשתית של Compute Engine, אפשר לנהל מכונות שמריצות קונטיינרים באותו אופן שבו מנהלים כל מכונה אחרת.
  • אתם יכולים להשתמש בתהליכים ובכלים מוכרים כמו Google Cloud CLI או Compute Engine API כדי לנהל את המכונות שלכם באמצעות קונטיינרים.
  • יצירת שירותים ניתנים להרחבה באמצעות קבוצות מנוהלות של מכונות וירטואליות (MIG) שמריצות קונטיינרים, שמציעות תכונות כמו התאמה אוטומטית לעומס (autoscaling), תיקון אוטומטי (autohealing), עדכונים מדורגים, פריסות מרובות אזורים ואיזון עומסים.

אפשרות נוספת היא לפרוס ל-Google Kubernetes Engine כדי:

  • הפעלת מספר גדול של מיקרו-שירותים
  • קיצור זמן ההפעלה של הקונטיינר
  • מנצלים את היתרונות של Kubernetes, כולל תזמור אוטומטי, שדרוגים אוטומטיים, תיקון אוטומטי של צמתים והתאמה אוטומטית לעומס

אם מריצים כל מיקרו-שירות במכונה נפרדת ב-Compute Engine, יכול להיות שהתקורה של מערכת ההפעלה תהיה חלק משמעותי מהעלות. ‫Google Kubernetes Engine מאפשר לפרוס כמה קונטיינרים וקבוצות של קונטיינרים לכל מכונה, וכך להקצות משאבים של מכונת המארח בצורה יעילה יותר למיקרו-שירותים עם טביעת רגל קטנה יותר.

איך פועלת פריסת קונטיינרים ב-Compute Engine

השיטות הנפוצות לפריסת תוכנה במכונה של Compute Engine כוללות:

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

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

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

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

התהליך הבא מתאר איך פורסים קונטיינר ב-Compute Engine:

  1. אתם מאגדים את האפליקציה ואת הספריות הנדרשות בקובץ אימג' של Docker ומפרסמים את קובץ האימג' ב-Artifact Registry או במאגר של צד שלישי כמו Docker Hub.
  2. כשיוצרים מכונה או תבנית של הגדרות מכונה עבור MIG, מציינים שם של קובץ אימג' של Docker ואת docker runההגדרה.

אחרי ששולחים בקשה ליצירת מכונה, המערכת של Compute Engine מבצעת את המשימות הבאות:

  1. ‫Compute Engine יוצרת מכונת VM שמשתמשת בקובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים שסופק על ידי Google. התמונה הזו כוללת זמן ריצה של Docker ותוכנה נוספת שאחראית להפעלת הקונטיינר.
  2. ההגדרות של הקונטיינר מאוחסנות ב-Compute Engine במטא-נתונים של מופע תחת מפתח המטא-נתונים gce-container-declaration.
  3. כשמכונת ה-VM מופעלת, קובץ האימג' של מערכת הפעלה שמותאמת לקונטיינרים משתמש בהגדרת הפקודה docker run שמאוחסנת במטא-נתונים של המכונה, שולף את קובץ האימג' של הקונטיינר מהמאגר ומפעיל את הקונטיינר.
שימוש בקובץ אימג' של קונטיינר ובפקודה docker run.
שלבים ליצירת מכונה או קבוצת מופעי מכונה מנוהלים שמריצים קונטיינר

מגבלות

  • אפשר לפרוס רק מאגר תגים אחד לכל מופע. כדאי לשקול שימוש ב-Google Kubernetes Engine אם אתם צריכים לפרוס כמה קונטיינרים לכל מכונה.
  • אפשר לפרוס קונטיינרים רק ממאגר ציבורי או ממאגר פרטי של Artifact Registry או Container Registry שיש לכם גישה אליו. אין תמיכה במאגרי קוד פרטיים אחרים.

    מידע על הרשאות של רישום פרטי זמין במסמכי התיעוד בנושא בקרת גישה ל-Artifact Registry או ל-Container Registry.

  • אי אפשר למפות את הפורטים של מופע לפורטים של הקונטיינר (האפשרות -p של Docker). כדי להפעיל גישה למאגרי התגים, אפשר לעיין במאמר בנושא פרסום יציאות של מאגרי תגים.

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

  • אפשר להשתמש בתכונה הזו רק דרך מסוף Cloud de Confiance או Google Cloud CLI, ולא דרך ה-API.

הכנת קונטיינר לפריסה

כדי להפוך את קובץ האימג' של הקונטיינר לנגיש ל-Compute Engine, אפשר לבחור באחת מהגישות הבאות:

  • מעלים את קובץ האימג' של Docker אל Artifact Registry.
  • אפשר להשתמש בכל קובץ אימג' של מאגר שזמין לציבור מ-Docker Hub או ממאגרי אימג' אחרים.

פריסת קונטיינר במכונה חדשה

אפשר לפרוס קונטיינר במכונה וירטואלית חדשה באמצעות מסוףCloud de Confiance או Google Cloud CLI.

המסוף

בדוגמה הבאה מוצג פריסה של קונטיינר מקובץ אימג' של Docker שסופק על ידי Google‏, https://gcr.io/cloud-marketplace/google/nginx1:latest, למופע של מכונה וירטואלית. כדי להשתמש בקובץ אימג' אחר של Docker, מחליפים את קובץ האימג' של Nginx Docker בקובץ הרצוי לפי השלבים הבאים.

כניסה לדף Create an instance

אם מוצגת בקשה לעשות זאת, בוחרים פרויקט ולוחצים על המשך. הדף Create an instance מופיע ובו החלונית Machine configuration.

  1. בחלונית Machine configuration, עוברים אל Name ומזינים שם למכונה. מידע נוסף זמין במאמר מוסכמות למתן שמות למשאבים.

  2. בתפריט הניווט, לוחצים על מערכת הפעלה ואחסון. מופיעה החלונית Operating system and storage.

  3. עוברים לקטע Container (מאגר תגים) ולוחצים על Deploy container (פריסת מאגר תגים). בחלונית Configure container שמופיעה, מבצעים את הפעולות הבאות:

    1. מציינים את קובץ אימג' של קונטיינר שבו רוצים להשתמש. כמה דוגמאות:
      • כדי לבחור קובץ אימג' של קונטיינר NGINX 1.12 מ-Cloud Launcher, מציינים gcr.io/cloud-marketplace/google/nginx1:1.12.
      • כדי לפרוס קובץ אימג' של קונטיינר Apache מ-Docker Hub, צריך תמיד לציין את השם המלא של קובץ האימג' של Docker, כמו docker.io/httpd:2.4.
    2. זה שינוי אופציונלי. מציינים את שאר פרמטרים ההגדרה הרצויים. מידע נוסף על אפשרויות ההגדרה של מאגרי תגים זמין במאמר הגדרת אפשרויות להפעלת מאגר התגים.
    3. כדי לסיים את הגדרת הקונטיינר ולחזור לחלונית מערכת הפעלה ואחסון, לוחצים על בחירה.
  4. אופציונלי: מציינים אפשרויות הגדרה אחרות. מידע נוסף מופיע במאמר אפשרויות הגדרה במהלך יצירת מכונה.

  5. כדי לסיים את יצירת המכונה, לוחצים על Create.

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

gcloud

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. מריצים את הפקודה gcloud compute instances create-with-container:

    gcloud compute instances create-with-container INSTANCE_NAME \
        --container-image=CONTAINER_IMAGE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • INSTANCE_NAME: name של המכונה החדשה.
    • CONTAINER_IMAGE: שם קובץ האימג' בקונטיינר.

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

    gcr.io/cloud-marketplace/google/nginx1:1.12

    gcloud compute instances create-with-container nginx-vm \
        --container-image=gcr.io/cloud-marketplace/google/nginx1:1.12
    

    כדי לפרוס קובץ אימג' של קונטיינר Apache מ-Docker Hub, צריך תמיד לציין את השם המלא של קובץ האימג' של Docker:

    docker.io/httpd:2.4.

עדכון קונטיינר במכונה

אפשר לעדכן קובץ אימג' של Docker ואפשרויות הגדרה כדי להריץ את הקונטיינר במכונה באמצעות מסוף Cloud de Confiance או Google Cloud CLI.

כשמעדכנים קונטיינר שפועל, מערכת Compute Engine מבצעת שני שלבים:

  • עדכון ההצהרה על המאגר במופע. ‫Compute Engine מאחסן את הצהרת הקונטיינר המעודכנת במטא-נתונים של המופע מתחת למפתח המטא-נתונים gce-container-declaration.
  • עוצר ומפעיל מחדש את המופע כדי להפעיל את ההגדרה המעודכנת, אם המופע פועל. אם המכונה מושבתת, המערכת מעדכנת את הצהרת הקונטיינר ושומרת על המכונה מושבתת. המופע מוריד את התמונה החדשה ומפעיל את הקונטיינר בהפעלה.

המסוף

  1. נכנסים לדף VM instances.

    כניסה לדף VM instances

  2. לוחצים על שם המכונה שרוצים לעדכן.

  3. בדף הפרטים של המופע, לוחצים על עריכה.

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

  5. כדי לשמור את השינויים, לוחצים על שמירה והפעלה מחדש. מערכת Compute Engine שומרת את השינויים ומפעילה מחדש את המכונה באופן אוטומטי כדי לבצע את העדכון. אחרי שהמכונה מופעלת מחדש, היא מורידה את קובץ האימג' החדש ומפעילה את הקונטיינר עם ההגדרה המעודכנת.

gcloud

מעדכנים את הצהרת מאגר התגים באמצעות הפקודה gcloud compute instances update-container. לדוגמה:

gcloud compute instances update-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:latest

הפקודה הזו מגדירה את קובץ האימג' של הקונטיינר ל-gcr.io/cloud-marketplace/google/nginx1:latest ומפעילה מחדש את המכונה כדי להחיל את השינויים. אפשר גם לעדכן את כל המאפיינים שמתוארים במאמר הגדרת אפשרויות להרצת הקונטיינר באמצעות הוספה של דגלים מתאימים.

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

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

כדי לפרוס קונטיינר לקבוצת מופעי מכונה מנוהלים (MIG) חדשה באמצעות מסוףCloud de Confiance או Google Cloud CLI, פועלים לפי השלבים הבאים:

  1. יוצרים תבנית של הגדרות מכונה שמבוססת על קובץ אימג' של Docker.

  2. יוצרים MIG מתבנית של הגדרות מכונה חדשה.

המסוף

בדוגמה הבאה נוצרת תבנית של מכונה וירטואלית שפורסת קונטיינר מקובץ אימג' של Nginx (gcr.io/cloud-marketplace/google/nginx1:15) Docker שסופק על ידי Google, אל MIG. כדי להשתמש בתמונות Docker אחרות, מחליפים את gcr.io/cloud-marketplace/google/nginx1:15 בדוגמה הבאה בתמונה שרוצים להשתמש בה.

  1. עוברים לדף Instance templates.

    כניסה לדף Instance templates

  2. כדי ליצור תבנית של הגדרות מכונה, לוחצים על יצירת תבנית של הגדרות מכונה.

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

  4. בקטע Container image (קובץ אימג' של קונטיינר), מציינים את שם קובץ האימג' של Docker ומגדירים אפשרויות להפעלת הקונטיינר. לדוגמה, אפשר לציין את הערך gcr.io/cloud-marketplace/google/nginx1:15 עבור קובץ אימג' של קונטיינר.

  5. לוחצים על יצירה.

לאחר מכן, יוצרים קבוצת MIG שמשתמשת בתבנית החדשה של הגדרות המכונה.

gcloud

יוצרים תבנית של הגדרות מכונה להרצת קובצי אימג' של Docker באמצעות הפקודה gcloud compute instance-templates create-with-container:

gcloud compute instance-templates create-with-container TEMPLATE_NAME \
  --container-image DOCKER_IMAGE

אפשר גם להגדיר אפשרויות להרצת הקונטיינר.

לדוגמה, הפקודה הבאה יוצרת תבנית חדשה של מכונה בשם nginx-template, שכוללת מידע על תמונת Docker. מכונה שנוצרה מהתבנית הזו מפעילה את תמונת Docker‏ gcr.io/cloud-marketplace/google/nginx1:15 כשהמכונה מופעלת.

gcloud compute instance-templates create-with-container nginx-template \
    --container-image gcr.io/cloud-marketplace/google/nginx1:15

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

עכשיו כשיש לכם תבנית של הגדרות מכונה, אתם יכולים ליצור קבוצת MIG שמשתמשת בתבנית של הגדרות מכונה. לדוגמה, כדי ליצור קבוצת מופעים מנוהלת (MIG) באמצעות ה-CLI של gcloud והתבנית nginx-template שיצרתם זה עתה, מריצים את הפקודה הבאה:

gcloud compute instance-groups managed create example-group \
    --base-instance-name nginx-vm \
    --size 3 \
    --template nginx-template

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

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

עדכון של קבוצת MIG לגרסה חדשה של קובץ אימג' של קונטיינר

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

  1. מכינים קובץ אימג' חדש של Docker לפריסה.
  2. יוצרים תבנית של הגדרות מכונה על סמך קובץ אימג' של Docker החדש, באותו אופן שבו יוצרים תבנית מבוססת-קונטיינר.
  3. כדי לעדכן קבוצת מופעי מכונה מנוהלים (MIG) לתבנית חדשה של הגדרות מכונה, משתמשים בכלי לעדכון קבוצות של מופעי מכונה מנוהלים.

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

‫Google מעדכנת את התמונות של מערכת הפעלה שמותאמת לקונטיינרים באופן קבוע, ואולי תרצו להחיל את העדכונים האלה על קבוצות ה-MIG שלכם שמבוססות על קונטיינרים בלי לשנות את קובץ אימג' של Docker. אפשר לעדכן קבוצת מופעים מנוהלת לגרסה חדשה של תמונה של מערכת הפעלה שמותאמת לקונטיינרים באמצעות מסוף Cloud de Confiance או Google Cloud CLI בשני שלבים:

  1. יוצרים תבנית של הגדרות מכונה על סמך הגרסה הנוכחית של קובץ אימג' של Docker, באותו אופן שבו יוצרים תבנית מבוססת-קונטיינר עבור MIG חדש. כברירת מחדל, נעשה שימוש בגרסה הנתמכת העדכנית ביותר של קובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים.
  2. כדי לעדכן קבוצת מופעי מכונה מנוהלים (MIG) באמצעות תבנית חדשה של הגדרות מכונה, משתמשים בכלי לעדכון קבוצות של מופעי מכונה מנוהלים.

התחברות למאגר באמצעות SSH

אפשר להתחבר לקונטיינר במכונה באמצעות SSH. משתמשים ב-CLI של gcloud כדי להריץ את הפקודה gcloud compute ssh עם הדגל --container:

gcloud compute ssh INSTANCE_NAME --container CONTAINER_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • INSTANCE_NAME: השם של המכונה
  • CONTAINER_NAME: השם של הקונטיינר

מידע נוסף על הפקודה gcloud compute ssh והארגומנטים שלה

מעקב אחרי קונטיינרים ב-Compute Engine

כדי לעקוב אחרי המכונות שבהן מופעל קובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים, אפשר להשתמש בסוכן Node Problem Detector, שמתקשר עם Cloud Monitoring ומדווח על מדדים שקשורים לבריאות. הסוכן מוטמע בקובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים החל מ-Milestone 77.

כדי להפעיל את הסוכן, במאגרי תמונות עם Milestone 88 ואילך, עורכים את הקטע של המטא-נתונים המותאמים אישית ומגדירים את google-monitoring-enabled ל-true.

במאמר הפעלת ניטור תקינות מוסברות דרכים נוספות להפעלת הכלי Node Problem Detector.

סוכן Node Problem Detector תומך במדדים שמופיעים ברשימת המדדים ומתחילים ב-guest/.

כדי לקיים אינטראקציה עם המדדים שנאספו על ידי הסוכן, עוברים אל Metrics Explorer.

צפייה ביומנים

אפשר לראות שלושה סוגים של יומנים שקשורים למאגרי תגים:

  1. יומני הפעלה של סוכנים, שנקראים גם יומני konlet. סוכן ההפעלה מנתח את ההגדרות של הקונטיינר ומריץ משימות כדי להפעיל את הקונטיינר במכונה ב-Compute Engine.

  2. יומני אירועים של Docker מדווחים על אירועים של קונטיינרים, כולל אירועי התחלה והפסקה של קונטיינרים.

  3. היומנים מהמאגר כוללים את STDOUT מאפליקציות שפועלות במאגר.

צפייה ביומנים של סוכן ההפעלה

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

צפייה ביומנים של סוכן ההפעלה במסוף הטורי

המסוף

  1. נכנסים לדף VM instances.

    כניסה לדף VM instances

  2. בוחרים את המופע שרוצים לראות את היומנים של סוכן ההפעלה שלו.

  3. בקטע Logs, לוחצים על Serial port 1 (console)‎ כדי לראות את יומני המסוף הטורי.

gcloud

משתמשים בפקודה get-serial-port-output כדי להציג את היומנים ביציאה הטורית של המכונה.

gcloud compute instances get-serial-port-output INSTANCE_NAME

מחליפים את INSTANCE_NAME בשם המכונה.

לדוגמה, משתמשים בפקודה הבאה כדי לראות את הפלט של היציאה הטורית של מופע בשם nginx-vm:

gcloud compute instances get-serial-port-output nginx-vm

צפייה ביומני נציג ההפעלה ב-journald

  1. מתחברים למכונה עם קונטיינר באמצעות SSH.
  2. מריצים את הפקודה sudo journalctl כדי לראות את יומני ההפעלה של המכונה ושל הקונטיינר. משתמשים בפקודה הבאה כדי לסנן את היומנים של סוכן הפעלת הקונטיינר (konlet).

    sudo journalctl -u konlet*
    

צפייה ביומני סוכני ההפעלה ב-Logging

המסוף

  1. נכנסים לדף VM instances.

    כניסה לדף VM instances

  2. בוחרים את המופע שרוצים לראות את היומנים של סוכן ההפעלה שלו.

  3. בקטע יומנים, לוחצים על Cloud Logging כדי להציג את היומנים של Cloud Logging.

  4. מזינים מסנן חיפוש כדי לאחזר יומני נציגים של הפעלה.

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/cos_system"
    jsonPayload.SYSLOG_IDENTIFIER="konlet-startup"
    jsonPayload._HOSTNAME="INSTANCE_NAME"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט שמכיל את המופע
    • INSTANCE_NAME: השם של המכונה שרוצים לקבל את היומנים שלה

gcloud

כדי להציג יומנים של סוכן הפעלת מאגרים, משתמשים בפקודה gcloud logging read עם מסנן מתאים.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/PROJECT_ID/logs/cos_system AND \
    jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \
    jsonPayload._HOSTNAME=INSTANCE_NAME"

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שמכיל את המופע
  • INSTANCE_NAME: השם של המכונה שרוצים לקבל את היומנים שלה

לדוגמה, אפשר להשתמש בפקודה הבאה כדי להציג את 10 היומנים האחרונים של סוכן ההפעלה ב-Logging עבור מופע בשם nginx-vm שפועל ב-COS 70 וקיים ב-my-project.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/my-project/logs/cos_system AND \
    jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \
    jsonPayload._HOSTNAME=nginx-vm" \
    --limit 10

הצגת יומני אירועים של Docker

אפשר לראות את יומני האירועים של Docker ב-journald וב-Cloud Logging.

צפייה ביומני אירועים של Docker ב-journald

  1. מתחברים למכונה עם קונטיינר באמצעות SSH.
  2. מריצים את הפקודה sudo journalctl עם המסנן הבא כדי לראות את יומני האירועים של Docker.

    sudo journalctl -u docker-events-collector
    

הצגת יומני אירועים של Docker ב-Logging

המסוף

  1. נכנסים לדף VM instances.

    כניסה לדף VM instances

  2. בוחרים את המופע שרוצים לראות את היומנים של סוכן ההפעלה שלו.

  3. בקטע יומנים, לוחצים על Cloud Logging כדי להציג את היומנים של Cloud Logging.

  4. מזינים את מסנן החיפוש הבא כדי לאחזר את יומני האירועים של Docker.

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/cos_system"
    jsonPayload._HOSTNAME="INSTANCE_NAME"
    jsonPayload.SYSLOG_IDENTIFIER="docker"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט שמכיל את המופע
    • INSTANCE_NAME: השם של המכונה שרוצים לקבל את היומנים שלה

gcloud

משתמשים בפקודה gcloud logging read עם מסנן מתאים כדי להציג את יומני האירועים של Docker.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/PROJECT_ID/logs/cos_system AND \
    jsonPayload._HOSTNAME=INSTANCE_NAME AND \
    jsonPayload.SYSLOG_IDENTIFIER=docker"

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שמכיל את המופע
  • INSTANCE_NAME: השם של המכונה שרוצים לקבל את היומנים שלה

לדוגמה, אפשר להשתמש בפקודה הבאה כדי להציג את 10 יומני האירועים האחרונים של Docker ב-Logging עבור מופע בשם nginx-vm שמופעל ב-COS 70 וקיים ב-my-project.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/my-project/logs/cos_system AND \
    jsonPayload._HOSTNAME=nginx-vm AND \
    jsonPayload.SYSLOG_IDENTIFIER=docker" \
    --limit 10

צפייה ביומני קונטיינרים

המסוף

  1. נכנסים לדף VM instances.

    כניסה לדף VM instances

  2. בוחרים את המופע שרוצים לראות את היומנים של סוכן ההפעלה שלו.

  3. בקטע יומנים, לוחצים על Cloud Logging כדי להציג את היומנים של Cloud Logging.

    מתעד את יציאה טורית 1.

  4. הדף Cloud Logging נטען עם מסנן חיפוש שמוגדר כברירת מחדל. מעתיקים את הערך של resource.labels.instance_id. תשתמשו בו בהמשך.

  5. מעדכנים את מסנן החיפוש כדי לאחזר יומני מאגר.

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/cos_containers"
    resource.labels.instance_id="INSTANCE_ID"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט שמכיל את המכונה
    • INSTANCE_ID: המזהה של המופע שרוצים לקבל את היומנים שלו

gcloud

משתמשים בפקודה gcloud logging read כדי להציג את יומני הקונטיינר.

  1. קובעים את המזהה של המופע שרוצים לקבל עבורו יומנים:

    gcloud compute instances describe INSTANCE_NAME \
       --zone ZONE \
       --format="value(id)"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • INSTANCE_NAME: השם של המכונה שרוצים לקבל את היומנים שלה
    • ZONE: האזור שבו נמצאת המכונה
  2. משתמשים בפקודה ובמסנן הבאים כדי לראות את יומני ה-container של המופע.

    gcloud logging read "resource.type=gce_instance AND \
        logName=projects/PROJECT_ID/logs/cos_containers AND \
        resource.labels.instance_id=INSTANCE_ID"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט שמכיל את המכונה.
    • INSTANCE_ID: מזהה המכונה.

    לדוגמה, כדי לראות את 10 היומנים האחרונים של קונטיינר ב-Cloud Logging עבור מופע שמריץ COS 70, שקיים ב-my-project ושמזהה המופע שלו הוא 555123456789012345, משתמשים בפקודה הבאה:

    gcloud logging read "resource.type=gce_instance AND \
        logName=projects/my-project/logs/cos_containers AND \
        resource.labels.instance_id=555123456789012345" \
        --limit 10
    

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

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

אפשר להחליף את ברירת המחדל הזו בתמונה אחרת מהפרויקט cos-cloud. מידע על משפחות התמונות הזמינות והמאפיינים שלהן מופיע במאמר בנושא בחירת הגרסה הנכונה של מערכת הפעלה שמותאמת לקונטיינרים.

לדוגמה, אחרי שאתם יודעים באיזו תמונה אתם רוצים להשתמש, ב-CLI של gcloud, אתם יכולים לספק את הדגל --image כדי לשנות את ברירת המחדל של התמונה שמותאמת לקונטיינרים, או לספק את הדגל --image-family כדי לבחור את התמונה העדכנית ביותר מהמשפחה שצוינה בזמן יצירת המופע.

בדוגמה הבאה נוצרת מכונה מבוססת-קונטיינר שמשתמשת בתמונה העדכנית ביותר ממשפחת התמונות cos-dev:

gcloud compute instances create-with-container nginx-vm \
    --image-family cos-dev \
    --image-project cos-cloud \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.15

הגדרת כללים לחומת אש

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

כברירת מחדל, Cloud de Confiance by S3NS כללי חומת האש חוסמים את כל החיבורים הנכנסים למופע ומאפשרים את כל החיבורים היוצאים ממופע.

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

הגדרת אפשרויות להפעלת קונטיינר

אפשר להגדיר את האפשרויות הבאות כדי להריץ את הקונטיינר:

  • מציינים מדיניות להפעלה מחדש של מאגר.
  • החלפת הקונטיינר ENTRYPOINT (פקודת ברירת המחדל שתופעל בהפעלת הקונטיינר).
  • מעבירים ארגומנטים לפקודה של קונטיינר ENTRYPOINT.
  • הפעלת קונטיינר במצב הרשאה.
  • טוענים ספרייה במארח או tmpfs כנפח נתונים בתוך הקונטיינר.
  • מגדירים משתני סביבה.
  • הקצאת מאגר ל-STDIN בזמן הריצה של הקונטיינר.
  • הקצאת פסאודו-TTY.

מידע נוסף על הגדרת אפשרויות להפעלת מאגר התגים

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