אתם יכולים להגדיר מכונה של Compute Engine או תבנית של הגדרות מכונה כדי לפרוס ולהפעיל קונטיינר של Docker. Compute Engine מספק תמונה עדכנית של מערכת הפעלה שמותאמת לקונטיינרים (COS) עם Docker מותקן, ומפעיל את הקונטיינר כשהמכונה מופעלת.
לפני שמתחילים
- אם אתם לא מכירים את המושג 'קונטיינרים', כדאי לקרוא את המאמר מהם קונטיינרים ומה היתרונות שלהם.
- אם אתם לא מכירים את Docker, כדאי לקרוא את המסמכים של Docker.
- מידע נוסף על מערכת הפעלה שמותאמת לקונטיינרים
- מידע נוסף על קבוצות מופעי מכונה מנוהלים (MIG)
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
בחירה לפרוס קונטיינרים במכונות ובקבוצות MIG
פריסת קונטיינרים ב-Compute Engine מאפשרת לפשט את פריסת האפליקציות תוך שליטה בתשתית המכונות.
- אפשר לנהל מכונות שמריצות קונטיינרים באותו אופן שבו מנהלים כל מכונה אחרת כשמגדירים ומנהלים את התשתית של Compute Engine.
- אתם יכולים להשתמש בתהליכים ובכלים מוכרים, כמו Google Cloud CLI או Compute Engine API, כדי לנהל את המכונות באמצעות קונטיינרים.
- יצירת שירותים שניתנים להרחבה באמצעות קבוצות מופעי מכונה מנוהלים (MIG) שמריצות קונטיינרים, ומציעות תכונות כמו התאמה אוטומטית לעומס (automatic scaling), תיקון תוכנה אוטומטי (autohealing), עדכון בהדרגה (rolling), פריסות בכמה אזורים ואיזון עומסים.
לחלופין, אתם יכולים לפרוס ב-Google Kubernetes Engine כדי:
- הפעלת מספר גדול של מיקרו-שירותים
- זמן הפעלה מהיר יותר של מאגר התגים
- כדאי לנצל את היתרונות של תזמור אוטומטי ב-Kubernetes, כולל שדרוגים אוטומטיים, תיקון אוטומטי של צמתים והתאמה אוטומטית לעומס
אם מריצים כל מיקרו-שירות במכונה נפרדת ב-Compute Engine, התקורה של מערכת ההפעלה יכולה להיות חלק משמעותי מהעלות. ב-Google Kubernetes Engine אפשר לפרוס כמה קונטיינרים וקבוצות של קונטיינרים לכל מכונה. כך אפשר להקצות משאבים של מכונת המארח בצורה יעילה יותר למיקרו-שירותים עם טביעת רגל קטנה יותר.
איך פורסים קונטיינרים ב-Compute Engine
השיטות הנפוצות לפריסת תוכנה במכונה של Compute Engine כוללות:
- פריסת תוכנה בזמן הפעלת המכונה באמצעות סקריפט לטעינה בזמן ההפעלה או cloud-init.
- יצירת קובץ אימג' של דיסק אתחול בהתאמה אישית עם תוכנה שכבר מותקנת.
שתי השיטות ברשימה הקודמת משלבות את המשימות של הגדרת האפליקציה והגדרת סביבת מערכת ההפעלה. המפתח צריך לעקוב בקפידה אחרי תלות בזמן ריצה ולפתור אותן. לדוגמה, אם שתי אפליקציות שפועלות במכונה וירטואלית משתמשות בגרסאות שונות של אותה ספריה, צריך להתקין את שתי הגרסאות ולהפנות אליהן באמצעות משתני מערכת.
אפשר גם לפרוס תוכנה במאגר על מופע או על MIG. קונטיינר מכיל גם תוכנת אפליקציה וגם את הספריות הנדרשות, והוא מבודד מאפליקציות וספריות של מערכת ההפעלה. אפשר להעביר מאגר תגים בין סביבות פריסה בלי להתמודד עם גרסאות ספריות סותרות במאגר התגים ובמערכת ההפעלה שלו.
כך פורסים קונטיינר ב-Compute Engine:
- אתם מאגדים את האפליקציה והספריות הנדרשות לקובץ אימג' של Docker ומפרסמים את קובץ האימג' ב-Artifact Registry או במאגר של צד שלישי, כמו Docker Hub.
- כשיוצרים מכונה או תבנית של הגדרות מכונה עבור קבוצת MIG, מציינים שם של קובץ אימג' של Docker ואת ההגדרה
docker run.
אחרי ששולחים בקשה ליצירת מכונה, Compute Engine מבצע את המשימות הבאות:
- Compute Engine יוצרת מכונת VM שמשתמשת בקובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים שסופק על ידי Google. התמונה הזו כוללת סביבת זמן ריצה של Docker ותוכנה נוספת שאחראית להפעלת הקונטיינר.
- ההגדרות של הקונטיינר מאוחסנות ב-Compute Engine במטא-נתונים של מופע, תחת מפתח המטא-נתונים
gce-container-declaration. - כשמכונת ה-VM מופעלת, קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים משתמש בהגדרת הפקודה
docker runשמאוחסנת במטא-נתונים של המופע, שולף את קובץ האימג' של הקונטיינר מהמאגר ומפעיל את הקונטיינר.
מגבלות
- אפשר לפרוס רק מאגר תגים אחד לכל מופע. כדאי לשקול שימוש ב-Google Kubernetes Engine אם אתם צריכים לפרוס כמה קונטיינרים לכל מכונה.
אפשר לפרוס קונטיינרים רק ממאגר ציבורי או ממאגר פרטי ב-Artifact Registry או ב-Container Registry שיש לכם גישה אליו. אין תמיכה במאגרים פרטיים אחרים.
במסמכי התיעוד של בקרת הגישה ל-Artifact Registry או ל-Container Registry מוסבר על ההרשאות של מאגר פרטי.
אי אפשר למפות את היציאות של המכונה ליציאות של הקונטיינר (האפשרות
-pשל Docker). כדי להפעיל גישה למאגרי התגים, אפשר לעיין במאמר בנושא פרסום יציאות של מאגרי תגים.אפשר להשתמש בשיטת הפריסה הזו רק עם קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים.
אפשר להשתמש בתכונה הזו רק דרך מסוף Google Cloud או Google Cloud CLI, ולא דרך ה-API.
הכנת קונטיינר לפריסה
כדי לאפשר גישה לקובץ האימג' של הקונטיינר ב-Compute Engine, בוחרים באחת מהגישות הבאות:
- מעלים את קובץ האימג' של Docker ל-Artifact Registry.
- אפשר להשתמש בכל קובץ אימג' של קונטיינר שזמין לכולם מ-Docker Hub או ממאגרי רישום אחרים.
פריסת קונטיינר במכונה חדשה
אפשר לפרוס קונטיינר במכונה וירטואלית חדשה באמצעות מסוףGoogle Cloud או Google Cloud CLI.
המסוף
בדוגמה הבאה, קונטיינר נפרס מקובץ אימג' של Docker ב-Nginx ש-Google מספקת, https://gcr.io/cloud-marketplace/google/nginx1:latest, למכונה וירטואלית. כדי להשתמש בקובץ אימג' אחר של Docker, מחליפים את קובץ האימג' של Nginx Docker בקובץ הרצוי לפי השלבים הבאים.
אם מתבקשים, בוחרים פרויקט ולוחצים על המשך. הדף Create an instance מופיע ובו החלונית Machine configuration.
בחלונית Machine configuration, עוברים אל Name ומציינים שם למכונה. מידע נוסף זמין במאמר בנושא מוסכמות למתן שמות למשאבים.
בתפריט הניווט, לוחצים על מערכת הפעלה ואחסון. מופיעה החלונית Operating system and storage.
עוברים לקטע Container (מאגר תגים) ולוחצים על Deploy container (פריסת מאגר תגים). בחלונית Configure container שמופיעה, מבצעים את הפעולות הבאות:
- מציינים את קובץ האימג' של הקונטיינר שבו רוצים להשתמש. כמה דוגמאות:
- כדי לבחור קובץ אימג' של קונטיינר NGINX 1.12 מ-Cloud Launcher, מציינים
gcr.io/cloud-marketplace/google/nginx1:1.12. - כדי לפרוס קובץ אימג' של קונטיינר Apache מ-Docker Hub, צריך תמיד לציין את השם המלא של קובץ האימג' של Docker, כמו
docker.io/httpd:2.4.
- כדי לבחור קובץ אימג' של קונטיינר NGINX 1.12 מ-Cloud Launcher, מציינים
- זה שינוי אופציונלי. מציינים את שאר הפרמטרים של ההגדרות שרוצים. מידע נוסף על אפשרויות ההגדרה של מאגר התגים זמין במאמר הגדרת אפשרויות להפעלת מאגר התגים.
- כדי לסיים את הגדרת הקונטיינר ולחזור לחלונית מערכת הפעלה ואחסון, לוחצים על בחירה.
- מציינים את קובץ האימג' של הקונטיינר שבו רוצים להשתמש. כמה דוגמאות:
אופציונלי: מציינים אפשרויות הגדרה אחרות. למידע נוסף, ראו אפשרויות הגדרה במהלך יצירת מכונה.
כדי לסיים את יצירת המכונה, לוחצים על Create.
אחרי שיוצרים את המכונה, Compute Engine מפעיל את המכונה ומשיק את הקונטיינר.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
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.12gcloud 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 ואפשרויות הגדרה כדי להריץ את הקונטיינר במכונה באמצעות מסוף Google Cloud או Google Cloud CLI.
כשמעדכנים קונטיינר פעיל, מערכת Compute Engine מבצעת שני שלבים:
- עדכון ההצהרה על המאגר במופע. שירות Compute Engine מאחסן את הצהרת הקונטיינר המעודכנת במטא-נתונים של המופע תחת מפתח המטא-נתונים
gce-container-declaration. - עוצר ומפעיל מחדש את המכונה כדי להפעיל את ההגדרה המעודכנת, אם המכונה פועלת. אם המכונה מושבתת, המערכת מעדכנת את הצהרת מאגר התגים ושומרת על מצב ההשבתה של המכונה. המכונה מורידה את קובץ האימג' החדש ומפעילה את הקונטיינר בזמן ההפעלה.
המסוף
נכנסים לדף VM instances.
לוחצים על שם המכונה שרוצים לעדכן.
בדף הפרטים של המכונה, לוחצים על Edit.
מציינים את קובץ האימג' החדש של הקונטיינר ומעדכנים את האפשרויות להרצת הקונטיינר לפי הצורך.
כדי לשמור את השינויים, לוחצים על שמירה והפעלה מחדש. מערכת 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) חדשה באמצעות מסוףGoogle Cloud או Google Cloud CLI, פועלים לפי השלבים הבאים:
יוצרים תבנית של הגדרות מכונה שמבוססת על קובץ אימג' של Docker.
יוצרים MIG מתבנית של הגדרות מכונה חדשה.
המסוף
בדוגמה הבאה נוצרת תבנית של הגדרות מכונה שפורסת קונטיינר מקובץ אימג' של Docker מסוג Nginx (gcr.io/cloud-marketplace/google/nginx1:15) ש-Google מספקת ל-MIG.
כדי להשתמש בתמונות Docker אחרות, מחליפים את gcr.io/cloud-marketplace/google/nginx1:15 בדוגמה הבאה בתמונה שרוצים להשתמש בה.
עוברים לדף Instance templates.
כדי ליצור תבנית של הגדרות מכונה, לוחצים על יצירת תבנית של הגדרות מכונה.
בקטע קונטיינר, בוחרים באפשרות פריסת קובץ אימג' של קונטיינר.
בקטע Container image (קובץ אימג' של קונטיינר), מציינים את שם קובץ האימג' של Docker ומגדירים אפשרויות להפעלת הקונטיינר. לדוגמה, אפשר לציין את הערך
gcr.io/cloud-marketplace/google/nginx1:15לקובץ אימג' של קונטיינר.לוחצים על יצירה.
לאחר מכן, יוצרים קבוצת 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 בקבוצת מופעים מנוהלת, אפשר להשתמש בכלי לעדכון קבוצות של מופעים מנוהלים בשלושה שלבים:
- מכינים קובץ אימג' חדש של Docker לפריסה.
- יוצרים תבנית של הגדרות מכונה על סמך קובץ אימג' של Docker החדש באותו אופן שבו יוצרים תבנית מבוססת-קונטיינר.
- כדי לעדכן קבוצת מופעי מכונה מנוהלים (MIG) לתבנית חדשה של הגדרות מכונה, משתמשים בכלי לעדכון קבוצות מופעי מכונה מנוהלים.
עדכון קבוצת מופעי מכונה מנוהלים לגרסה חדשה של קובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים
Google מעדכנת את קובצי האימג' של מערכת ההפעלה שמותאמת לקונטיינרים באופן קבוע, ויכול להיות שתרצו להחיל את העדכונים האלה על קבוצות ה-MIG בקונטיינרים בלי לשנות את קובץ האימג' של Docker. כדי לעדכן קבוצת MIG לגרסה חדשה של קובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים, אפשר להשתמש במסוף Google Cloud או ב-Google Cloud CLI בשני שלבים:
- יוצרים תבנית של הגדרות מכונה שמבוססת על הגרסה הנוכחית של קובץ האימג' של Docker, באותו אופן שבו יוצרים תבנית מבוססת-קונטיינר לקבוצת MIG חדשה. כברירת מחדל, נעשה שימוש בגרסה הנתמכת האחרונה של קובץ אימג' של מערכת הפעלה שמותאמת לקונטיינרים.
- כדי לעדכן קבוצת מופעי מכונה מנוהלים (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.
צפייה ביומנים
אפשר לראות שלושה סוגים של יומנים שקשורים למאגרי תגים:
יומני הפעילות של סוכן ההפעלה, שנקראים גם יומני konlet. הסוכן להפעלת קונטיינרים מנתח את ההגדרות של הקונטיינר ומריץ משימות כדי להפעיל את הקונטיינר במכונה ב-Compute Engine.
יומני אירועים של Docker מדווחים על אירועים של קונטיינרים, כולל אירועי התחלה ועצירה של קונטיינרים.
היומנים מהקונטיינר כוללים את
STDOUTמאפליקציות שפועלות בקונטיינר.
צפייה ביומני הפעילות של סוכן של הפעלת קונטיינר
יומנים של סוכן הפעלת הקונטיינר זמינים במסוף הטורי, דרך שירות המערכת journald שכלול בקובץ האימג' של מערכת ההפעלה, ודרך Cloud Logging.
צפייה ביומנים של סוכן ההפעלה של הקונטיינר בקונסולה הטורית
המסוף
נכנסים לדף VM instances.
בוחרים את המכונה שרוצים לראות את היומנים של סוכן ההפעלה של הקונטיינר שלה.
בקטע 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
- מתחברים למכונה עם קונטיינר באמצעות SSH.
מריצים את הפקודה
sudo journalctlכדי לראות את יומני ההפעלה של המכונה ושל הקונטיינר. כדי לסנן את יומני הפעילות של סוכן ההפעלה של הקונטיינר (konlet), משתמשים בפקודה הבאה:sudo journalctl -u konlet*
צפייה ביומני סוכן של הפעלת קונטיינר ב-Logging
המסוף
נכנסים לדף VM instances.
בוחרים את המכונה שרוצים לראות את היומנים של סוכן ההפעלה של הקונטיינר שלה.
בקטע Logs, לוחצים על Cloud Logging כדי לראות את היומנים של Cloud Logging.
מזינים מסנן חיפוש כדי לאחזר יומני הפעלה של סוכן מאגר.
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
- מתחברים למכונה עם קונטיינר באמצעות SSH.
מריצים את הפקודה
sudo journalctlעם המסנן הבא כדי לראות את יומני האירועים של Docker.sudo journalctl -u docker-events-collector
הצגת יומני אירועים של Docker ב-Logging
המסוף
נכנסים לדף VM instances.
בוחרים את המופע שרוצים לראות את היומנים של סוכן ההפעלה שלו.
בקטע Logs, לוחצים על Cloud Logging כדי לראות את היומנים של Cloud Logging.
מזינים את מסנן החיפוש הבא כדי לאחזר את יומני האירועים של 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
כדי להציג את יומני האירועים של Docker, משתמשים בפקודה gcloud logging read עם מסנן מתאים.
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
צפייה ביומנים של מאגר תגים
המסוף
נכנסים לדף VM instances.
בוחרים את המופע שרוצים לראות את היומנים של סוכן ההפעלה שלו.
בקטע Logs, לוחצים על Cloud Logging כדי לראות את היומנים של Cloud Logging.
הדף Cloud Logging נטען עם מסנן חיפוש שמוגדר כברירת מחדל. מעתיקים את הערך של
resource.labels.instance_id. תשתמשו בו בהמשך.מעדכנים את מסנן החיפוש כדי לאחזר את יומני הקונטיינר.
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 כדי להציג את יומני הקונטיינר.
מאתרים את המזהה של המופע שרוצים לקבל את היומנים שלו:
gcloud compute instances describe INSTANCE_NAME \ --zone ZONE \ --format="value(id)"
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה שרוצים לקבל את היומנים שלה -
ZONE: האזור שבו נמצאת המכונה
-
כדי להציג את יומני הקונטיינר של המכונה, משתמשים בפקודה ובמסנן הבאים.
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
הגדרת כללים לחומת אש
מכונות בקונטיינרים מפעילות קונטיינרים שהרשת שלהם מוגדרת למצב מארח. קונטיינר משתף את מקבץ הרשת (network stack) של המארח, וכל הממשקים מהמארח זמינים לקונטיינר.
כברירת מחדל, Google Cloud כללי חומת האש חוסמים את כל החיבורים הנכנסים למופע ומאפשרים את כל החיבורים היוצאים ממופע.
יוצרים כללים של חומת אש כדי לאפשר חיבורים נכנסים למכונה, וכך גם למאגר.
הגדרת אפשרויות להפעלת קונטיינר
אפשר להגדיר את האפשרויות הבאות כדי להריץ את הקונטיינר:
- מציינים מדיניות להפעלה מחדש של מאגר.
- שינוי ברירת המחדל של הקונטיינר
ENTRYPOINT(הפקודה שמופעלת כשהקונטיינר מתחיל לפעול). - מעבירים ארגומנטים לפקודה
ENTRYPOINTשל הקונטיינר. - הפעלת קונטיינר במצב הרשאה.
- טעינת ספריית מארח או
tmpfsכנפח נתונים בתוך הקונטיינר. - מגדירים משתני סביבה.
- הקצאת מאגר ל-
STDINבזמן הריצה של הקונטיינר. - הקצאת פסאודו-TTY.
מידע נוסף על הגדרת אפשרויות להרצת מאגר התגים
המאמרים הבאים
- מידע על הגדרת אפשרויות להרצת מאגר התגים
- מידע נוסף על קבוצות מופעי מכונה מנוהלים
- מידע נוסף על מערכת הפעלה שמותאמת לקונטיינרים