פריסת אפליקציית Kubernetes באמצעות Cloud Code ל-VS Code

בדף הזה תמצאו הסבר איך להתחיל להשתמש ב-Cloud Code במהירות.

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

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  10. מתקינים את Git. כדי להעתיק דוגמאות למכונה שלכם, צריך להתקין את Git.
  11. מתקינים את Docker. כדי ליצור את הקוד לדוגמה, צריך להשתמש ב-Docker. מוודאים שחשבון המשתמש המקומי יכול ליצור קונטיינרים.
  12. אם עוד לא עשיתם זאת, מתקינים את הפלאגין Cloud Code.

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להשלמת המדריך הזה להתחלה מהירה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של Kubernetes Engine (roles/container.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

יצירת אפליקציה

  1. פותחים את לוח הפקודות (מקישים על Ctrl/Cmd+Shift+P או לוחצים על View (תצוגה) > Command Palette (לוח הפקודות)) ואז מריצים את הפקודה Cloud Code: New Application (Cloud Code: אפליקציה חדשה).

  2. בוחרים באפשרות Kubernetes Application.

  3. בוחרים אפליקציית Hello World בשפה המועדפת.

    לדוגמה, בחירה באפשרות Node.js: Hello World יוצרת אפליקציית Hello World ב-Node.js.

  4. שומרים את האפליקציה החדשה.

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

יצירת אשכול GKE

כדי ליצור אשכול רגיל של Google Kubernetes Engine‏ (GKE):

  1. לוחצים על Cloud Code ומרחיבים את הקטע Kubernetes.

  2. לוחצים על add (הוספה) Add a cluster to the KubeConfig (הוספת אשכול ל-KubeConfig) ואז לוחצים על Google Kubernetes Engine (מנוע Google Kubernetes) בתפריט Quick pick (בחירה מהירה).

  3. כשמופיעה בקשה להפעיל את Container API, לוחצים על Yes (כן).

  4. לוחצים על + יצירת אשכול GKE חדש.

  5. בוחרים באפשרות רגילה בתור סוג האשכול.

  6. לוחצים על Open כדי לאפשר ל-Cloud Code לפתוח את מסוף Google Cloud .

  7. במסוף Google Cloud , מוודאים שהפרויקט שנבחר הוא הפרויקט שיצרתם או שבחרתם קודם.

  8. מגדירים את שם האשכול ל-my-first-cluster.

  9. בוחרים באפשרות Zonal כסוג המיקום ומגדירים את האזור ל-us-central1-a.

  10. לוחצים על יצירה. יצירת האשכול נמשכת כמה דקות.

  11. אחרי שיוצרים את האשכול, לוחצים שוב על Add a cluster to the KubeConfig ובוחרים מהרשימה את האשכול שיצרתם.

  12. האשכול החדש נוסף להגדרה ומוגדר להיות ההקשר הפעיל.

הרצה של האפליקציה והצגה שלה

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

כדי להריץ את האפליקציה, פועלים לפי השלבים הבאים:

  1. בסרגל הסטטוס של Cloud Code, לוחצים על שם הפרויקט הפעיל.

    שם הפרויקט הפעיל בשורת הסטטוס

  2. בתפריט 'בחירה מהירה' שמופיע, בוחרים באפשרות הפעלה ב-Kubernetes. כשמופיעה בקשה נוספת, בוחרים באפשרות הפעלה ב-Kubernetes.

  3. מאשרים אם להשתמש בהקשר הנוכחי של האשכול או לעבור להקשר אחר.

  4. אם מתבקשים, בוחרים מאגר תמונות שאליו רוצים להעלות את התמונות. אם אתם יוצרים מאגר תמונות חדש באמצעות gcr.io/PROJECT_ID, ודאו שמאגר התמונות נמצא באותו פרויקט כמו האשכול.

  5. אחרי שהאפליקציה פועלת ב-Kubernetes, לוחצים על הערך סטטוס של המשימה הפעלה ב-Kubernetes בקטע סביבות פיתוח. ייפתח חלון עם כרטיסיית פלט שכוללת את כתובת ה-URL של האפליקציה. כדי לפתוח את כתובת ה-URL הזו, מקישים על Control (או על Command ב-macOS) ולוחצים על הכתובת.

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

טיפים לפתרון בעיות

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

  1. ב-VS Code, לוחצים על Cloud Code ומרחיבים את הקטע Kubernetes.

  2. לוחצים לחיצה ימנית על שם האשכול ואז לוחצים על הגדרה כאשכול פעיל.

ניפוי באגים באפליקציה

כדי לנפות באגים באפליקציה:

  1. בסרגל הסטטוס של Cloud Code, לוחצים על שם הפרויקט הפעיל.

    שם הפרויקט הפעיל בשורת הסטטוס

  2. בתפריט 'בחירה מהירה' שמופיע, בוחרים באפשרות Debug on Kubernetes (ניפוי באגים ב-Kubernetes).

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

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

    ‫Cloud Code משתמש בהגדרות cloudcode.kubernetes בקובץ .vscode/launch.json כדי להריץ את האפליקציה ולצרף אליה סשן של ניפוי באגים.

    ‫Cloud Code יוצר את הקונטיינרים, מעביר אותם למאגר, מחיל את ההגדרות של Kubernetes על האשכול ומחזיר את כתובת ה-IP שבה אפשר להשתמש כדי לעיין באפליקציה הפעילה.

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

  6. כדי להוסיף נקודת עצירה לשורה מספר 9, פותחים את src/app.js ואז לוחצים בשוליים של העורך.

    עיגולים אדומים מלאים מסמלים נקודות עצירה פעילות, ועיגולים אפורים ריקים מסמלים נקודות עצירה מושבתות. כדי לשלוט טוב יותר בנקודות מעבר, אפשר להשתמש בקטע Breakpoints (נקודות מעבר) בתצוגת Debug (ניפוי באגים) ב-VS Code.

    הקטע Breakpoints (נקודות עצירה) בחלונית הימנית של Debug View (תצוגת ניפוי הבאגים) שמאפשר להוסיף, להסיר ולהשבית נקודות עצירה

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

    בדוגמה הבאה, בקטע משתנים, מתחת למשתנים מקומיים, הערך של res._contentLength; עבור Hello, world! הוא 13.

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

  7. עורכים את המחרוזת שנשלחת בשורה 8 ל-Hello, goodbye! ומפעילים מחדש את הפעולה Debug on Kubernetes.

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

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

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

אם משימה מסוימת מצליחה, מופיע סימן וי check_circle לצד השלב.

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

פותחים טרמינל במאגר התגים.

כדי לפתוח טרמינל במאגר התגים, פועלים לפי ההוראות הבאות:

  1. לוחצים על Cloud Code ומרחיבים את הקטע Kubernetes.

  2. מרחיבים את הקטעים הבאים:

    • הקטע של האשכול המועדף
    • בקטע Namespaces (מרחבי שמות) ואז בקטע של מרחב השמות המועדף.
    • בקטע Pods ואז בקטע של הפוד המועדף
    • הקטע Containers (מאגרים)

      פודים של Cloud Code

  3. לוחצים לחיצה ימנית על המאגר שרוצים לפתוח בו טרמינל ואז לוחצים על Get Terminal (פתיחת טרמינל).

    ייפתח טרמינל. עכשיו יש לכם גישה למעטפת בתוך הקונטיינר הפועל.

הסרת המשאבים

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

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

כדי למחוק את האשכול:

  1. לוחצים על Cloud Code ומרחיבים את הסייר Kubernetes.
  2. מעבירים את מצביע העכבר מעל שם האשכול ולוחצים על open_in_new ואז על Open in Google Cloud console (פתיחה במסוף).
  3. לוחצים על מחיקה ואז על מחיקה.

כדי למחוק את הפרויקט (ואת המשאבים שמשויכים אליו, כולל אשכולות):

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

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