במדריך הזה נסביר איך להריץ אפליקציה בסביבה גמישה של App Engine ב-GKE. כדי להפעיל את האפליקציה ב-GKE, צריך ליצור בשבילה קובץ Docker, ליצור קונטיינר באמצעות Cloud Build ואז להפעיל את הקונטיינר הזה ב-GKE. אין צורך לשנות את הקוד.
לפני שמתחילים
לפני שממשיכים לשלבים המפורטים בהמשך, צריך לבצע את הפעולות הבאות:
מוודאים שהפריסה של האפליקציה מתבצעת בהצלחה בסביבה הגמישה של App Engine.
בשלבים הבאים תשתמשו באותו פרויקט שבו השתמשתם לאפליקציית App Engine. תמיד אפשר ליצור פרויקט חדש ולהשתמש בו.
Enable the GKE, Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.מורידים ומתקינים את Google Cloud CLI ואז מפעילים את כלי gcloud: מורידים את Google Cloud SDK.
אפשר גם להשתמש ב-Cloud Shell, שמגיע עם ה-CLI של gcloud,
gitותכונות מותקנות מראש אחרות, כמו תמיכה בשפות, כלים ועורכים.מתקינים את כלי שורת הפקודה
kubectl:gcloud components install kubectl
יצירת Dockerfile לאפליקציית App Engine
יוצרים קובץ Dockerfile לאפליקציה כמו שמתואר במאמר בנושא יצירת קובץ Dockerfile.
יצירת קונטיינר מקובץ Dockerfile
כדי ליצור מאגר תגים:
מוודאים שאתם נמצאים בספריית האפליקציה של App Engine שמכילה את קובץ Dockerfile.
משנים את פרויקט ברירת המחדל שבו משתמש הכלי
gcloudכך שיצביע על הפרויקט שבו אתם משתמשים כדי להריץ את האפליקציה ב-GKE:gcloud config set project [YOUR-PROJECT-ID]מחליפים את
[YOUR-PROJECT-ID]במזהה הפרויקט של GKE.מריצים את הפקודה הבאה כדי לבנות את הקונטיינר:
gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .מחליפים את
[YOUR-PROJECT-ID]במזהה הפרויקט של GKE, ואת[YOUR-CONTAINER-NAME]בשם של מאגר התגים שבו רוצים להשתמש בשביל מאגר התגים של האפליקציה.מחכים שהקונטיינר ייבנה. התהליך הזה עשוי להימשך זמן מה. בסיום מוצגת הודעה כמו זו:
Created [https://cloudbuild.googleapis.com/v1/projects/YOUR-PROJECT-ID/builds/xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx]. Logs are permanently available at [https://console.developers.google.com/logs/viewer?resource=build&project=YOUR-PROJECT-ID&filters=text:xxxx-xxx-xxx-xxxxxxxxxxxx]]. ID CREATE_TIME DURATION SOURCE IMAGES STATUS xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx 2017-03-04T00:42:10+00:00 1M32S gs://YOUR-PROJECT-ID_cloudbuild/source/xxxxxxx.08.tgz gcr.io/YOUR-PROJECT-ID/YOUR-CONTAINER-NAME SUCCESS<חשוב לשים לב לשם הקונטיינר – תצטרכו לציין אותו כשמפעילים פתרונות חכמים ב-GKE.
הפעלת האפליקציה ב-GKE
כדי להריץ את הקונטיינר שמכיל את האפליקציה:
יוצרים את האשכול (הפעולה עשויה להימשך כמה דקות):
gcloud container clusters create [YOUR-CLUSTER-NAME]מחליפים את
[YOUR-CLUSTER-NAME]בשם שרוצים לתת לאשכול.משורת הפקודה, מגדירים את אזור החישוב:
gcloud config set compute/zone us-central1-bמוודאים שכלי GKE
kubectlמורשה:gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]פועלים לפי ההנחיות כדי לאשר את הכלי.
מריצים את הקונטיינר שמכיל את האפליקציה:
kubectl create deployment [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME]מחליפים את
[YOUR-DEPLOYMENT-NAME]בשם שרוצים להשתמש בו לפריסה, מחליפים את[YOUR-PROJECT-ID]במזהה פרויקט GKE, ומחליפים את[YOUR-CONTAINER-NAME]בשם של מאגר התגים שיצרתם לאפליקציה.חשיפת מאגר התגים לגישה ציבורית:
kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080מחליפים את
[YOUR-DEPLOYMENT-NAME]בשם שבו השתמשתם בשלבים הקודמים. יכול להיות שתצטרכו להמתין כמה דקות עד שכתובת ה-IP החיצונית תופיע.כדי לראות את כתובת ה-IP החיצונית של האפליקציה:
kubectl get service [YOUR-DEPLOYMENT-NAME]מחליפים את
[YOUR-DEPLOYMENT-NAME]בשם שבו השתמשתם בשלבים הקודמים. אם השדהEXTERNAL IPריק, מחכים קצת ואז מפעילים מחדש את הפקודה.צופים באפליקציה שפועלת ב-GKE:
http://EXTERNAL-IP:8080מחליפים את
EXTERNAL-IPבכתובת ה-IP החיצונית שקיבלתם בשלב הקודם.
הצלחתם לפרוס ולהפעיל את אפליקציית App Engine ב-GKE.
המאמרים הבאים
מומלץ לקרוא מידע נוסף על Kubernetes ועל הפקודה kubectl.
Google Kubernetes Engine משתמש ב-Kubernetes לניהול, לפריסה ולשינוי גודל של קונטיינרים. מידע נוסף על Kubernetes זמין באתר Kubernetes החיצוני.
במדריך הזה נעשה שימוש ב-kubectl, ממשק שורת הפקודה לניהול אשכולות Kubernetes. מידע נוסף על kubectl זמין במאמר בנושא kubectl.