בדוגמה המלאה הזו מוסבר איך ליצור פריסה עם מכונה וירטואלית שמשתמשת בתמונה שעברה אופטימיזציה לקונטיינר. למידע נוסף על שימוש בקונטיינרים עם Compute Engine, אפשר לעיין במאמר בנושא תמונות של Compute Engine שעברו אופטימיזציה לקונטיינרים.
במדריך הזה נסביר איך:
- יוצרים מניפסט פשוט של מאגר תגים.
- יצירת תצורה ותבנית שמשתמשות בקובץ אימג' של קונטיינר.
- פורסים את המשאבים ומוודאים שהפריסה בוצעה בהצלחה.
יצירת מניפסט של קונטיינר
כדי להשתמש בקונטיינרים, צריך להגדיר מניפסט של קונטיינר. קובץ המניפסט מתאר מאפיינים כמו קובץ אימג' של קונטיינר, הקונטיינרים להפעלה, הפקודות להרצה בעת האתחול והיציאות להפעלה.
יוצרים קובץ בשם container_manifest.yaml עם התוכן הבא:
קובץ המניפסט הזה יוצר קונטיינר בשם simple-echo שמשתמש בקובץ האימג' של הקונטיינר Hello Application ומפעיל שרת echo שמקשיב ביציאה 8080.
יצירה של תבנית והגדרה
לאחר מכן, יוצרים תבנית שמפעילה מכונה וירטואלית עם תמונה שעברה אופטימיזציה לקונטיינר. יוצרים קובץ בשם container_vm.[jinja|py] עם התוכן הבא:
Jinja
Python
יוצרים את קובץ הסכימה המתאים, שמגדיר את המבנה של התבנית:
Jinja
Python
שימו לב שיש כמה פרמטרים שמוגדרים בתבנית הזו, כולל:
- משתני הסביבה
deployment,nameו-project. Deployment Manager מאכלס את המשתנים האלה באופן אוטומטי בלי שתצטרכו לבצע פעולות נוספות. - המאפיינים
zone,containerImageו-containerManifest, שיוגדרו בהגדרות.
יוצרים קובץ תצורה בשם container_vm.yaml שדומה לקובץ הבא:
Jinja
Python
חשוב להקפיד להחליף את ZONE_TO_RUN באזור הרצוי של המכונה הווירטואלית. שימו לב שהקובץ מגדיר גם את קובץ האימג' של הקונטיינר שבו יש להשתמש ואת מניפסט הקונטיינר שיצרתם קודם.
פריסת מופע של מכונה וירטואלית
לבסוף, פורסים את המכונה הווירטואלית באמצעות Google Cloud CLI:
gcloud deployment-manager deployments create my-container-deployment \
--config container_vm.yaml
אחרי שיוצרים את הפריסה, אפשר לראות את הפרטים שלה. לדוגמה:
$ gcloud deployment-manager deployments describe my-container-deployment
creationTimestamp: '2015-04-02T12:24:31.645-07:00'
fingerprint: ''
id: '8602410885927938432'
manifest: https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/my-container-deployment/manifests/manifest-1428002671645
name: my-container-deployment
state: DEPLOYED
resources:
NAME TYPE ID UPDATE_STATE ERRORS
my-container-deployment-my-container-vm compute.v1.instance 3775082612632070557 COMPLETED -
בדיקה שהמופע פועל
כדי לבדוק שהפעלתם את מופע הקונטיינר, נכנסים לכתובת ה-IP החיצונית של המכונה הווירטואלית בדפדפן. אמור להופיע הפלט hello world:
מוסיפים כלל של חומת אש ב-Compute Engine כדי לאפשר לכם לשלוח שאילתות לגבי תעבורת נתונים במכונה הווירטואלית דרך יציאה 8080:
gcloud compute firewall-rules create allow-8080 --allow tcp:8080קבלת כתובת ה-IP החיצונית של המופע:
$ gcloud compute instances describe my-container-deployment-my-container-vm ... name: my-container-vm-my-container-deployment networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 104.197.8.138 type: ONE_TO_ONE_NAT name: nic0 network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default networkIP: 10.240.97.220 scheduling: automaticRestart: true onHostMaintenance: MIGRATE selfLink: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-container-deployment-my-container-vm status: RUNNING tags: fingerprint: 42WmSpB8rSM= zone: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a ...במקרה הזה, כתובת ה-IP החיצונית היא
104.197.8.138.בחלון דפדפן, מזינים את כתובת ה-IP החיצונית ואת היציאה 8080 בסרגל הדפדפן. לדוגמה,
104.197.8.138:8080.אם הפעולה בוצעה בהצלחה, תוצג הודעה
hello world.
(אופציונלי) מחיקת הפריסה
אם אתם רוצים לחסוך בעלויות ואין לכם יותר צורך בפריסה, אתם יכולים למחוק אותה.
gcloud deployment-manager deployments delete my-container-deployment
המאמרים הבאים
מידע נוסף על Deployment Manager זמין במדריכים למשתמש או דרך ה-API.
כדאי לנסות מדריכים אחרים: