תחילת העבודה עם Cloud Code ל-VS Code ל-Kubernetes

באמצעות Cloud Code אפשר ליצור אפליקציית Kubernetes על סמך דוגמה או מפרויקט קיים.

יצירת אפליקציה מתבנית

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

  1. מפעילים את לוח הפקודות (מקישים על Ctrl/Cmd+Shift+P או לוחצים על View (תצוגה) > Command Palette (לוח הפקודות)) ואז מריצים את הפקודה Cloud Code: New Application (Cloud Code: אפליקציה חדשה).
  2. בוחרים באפשרות Kubernetes application (אפליקציית Kubernetes) בתור סוג הדוגמה.
  3. בוחרים דוגמה על סמך השפה שרוצים להשתמש בה מבין האפשרויות הזמינות: NodeJS, ‏ Go, ‏ Python, ‏ Java.
  4. בוחרים את המיקום המועדף של האפליקציה במחשב המקומי ולוחצים על יצירת אפליקציה חדשה כדי לשמור.

    ‫Cloud Code משכפל את הדוגמה שבחרתם ופותח את הפרויקט החדש שלכם לשימוש.

דוגמה למבנה של אפליקציה

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

לדוגמה, המבנה של אפליקציית פנקס האורחים ב-Node.js נראה כך:

.
|---- .vscode
|      ---- launch.json
|---- kubernetes-manifests
|     |---- guestbook-backend.deployment.yaml
|     |---- guestbook-backend.service.yaml
|     |---- guestbook-frontend.deployment.yaml
|     |---- guestbook-frontend.service.yaml
|     |---- mongo.deployment.yaml
|     ---- mongo.service.yaml
|---- src
|     |---- backend
|     |     |---- Dockerfile
|     |     |---- index.js
|     |     |---- app.js
|     |     ---- package.json
|     |---- frontend
|           |---- Dockerfile
|           |---- index.js
|     |     |---- app.js
|           ---- package.json
---- skaffold.yaml

אם בוחנים מקרוב את אפליקציית הדוגמה הזו של ספר האורחים ב-Kubernetes Node.js, אפשר לראות כמה קבצים חשובים והשימושים שלהם:

  • .vscode
    • extensions.json: הצגת הנחיה לבקשת הורדה של תוספים קשורים כשפותחים את הפרויקט הזה
    • launch.json: הגדרת ההפעלה (מהסוג cloudcode.kubernetes) להרצה או לניפוי באגים באפליקציית Kubernetes
    • tasks.json: פרטי התצורה של משימות ב-Visual Studio Code
  • kubernetes-manifests
    • guestbook-backend.deployment.yaml: מפרט של Pod לצמתים של ה-Backend
    • guestbook-frontend.deployment.yaml: מפרט ה-Pod לצמתים של חזית האתר
    • mongo.deployment.yaml: מפרט ה-Pod של מסד הנתונים
  • src
    • (backend|frontend)/app.js: קוד Node.js עם הלוגיקה של שרת האינטרנט
    • (backend|frontend)/Dockerfile: משמש לבניית קובץ האימג' של הקונטיינר עבור התוכנית שלנו
  • skaffold.yaml: קובץ הגדרות של Skaffold, שמשמש את Cloud Code ליצירה, לפריסה ולניפוי באגים של אפליקציות Kubernetes

שימוש באפליקציה משלכם

הוראות לשימוש בפרויקט קיים מופיעות במאמר בנושא שימוש ב-Cloud Code עם אפליקציית Kubernetes קיימת.

הגדרת ההקשר של Kubernetes

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

הגדרות אישיות

כשמשתמשים בהגדרת ההפעלה Cloud Code: Develop on Kubernetes, אפשר להתאים אישית את הפריסה על ידי הגדרת ההגדרות הזמינות.

כדי להוסיף או לערוך הגדרות, עוברים אל Run (הרצה) > Open Configurations (פתיחת הגדרות) ואז עורכים או מוסיפים הגדרות.

הגדרות build

‫Cloud Code תומך בסוגי הארטיפקטים Docker,‏ Jib ו-Buildpacks. במדריך להגדרת העדפות לבניית קובץ אימג' של קונטיינר מוסבר איך להגדיר את הכלי המועדף לבנייה ואת ההגדרות הרלוונטיות שלו.

התאמה אישית של הגדרות ההפעלה

כדי להגדיר איך האפליקציה תפעל, אפשר להתאים אישית את הקובץ skaffold.yaml.

אפשר גם להגדיר את ההפעלה על ידי עריכת ההגדרה cloudcode.kubernetes בקובץ .vscode/launch.json.

מידע נוסף על התאמה אישית של הגדרות ההפעלה זמין במאמר בנושא Kubernetes ב-Cloud Code.

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

אחרי שמגדירים אפליקציה, אפשר להפעיל אותה באשכול Kubernetes ולצפות בה בזמן אמת באמצעות skaffold dev. אתם יכולים להריץ את האפליקציה באשכול מקומי (כמו minikube או Docker Desktop), ב-Google Kubernetes Engine או בכל ספק שירותי ענן אחר.

  1. פותחים את לוח הפקודות (מקישים על Ctrl/Cmd+Shift+P) ומריצים את הפקודה Cloud Code: Run on Kubernetes.
  2. מאשרים אם להשתמש בהקשר הנוכחי של Kubernetes כדי להריץ את האפליקציה (או עוברים להקשר מועדף). מידע נוסף על הגדרת הקשר של Kubernetes זמין במאמר הגדרת התצורה.
  3. אם בחרתם באשכול מרוחק כהקשר, כשתתבקשו, בחרו במאגר תמונות להעלאת התמונות. אם Artifact Registry API מופעל בפרויקט שלכם ויש בו לפחות מאגר אחד של Artifact Registry, תוכלו לעיין במאגר קיים של Artifact Registry ולבחור אותו.

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

    Artifact Registry REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME
    Docker Hub docker.io/ACCOUNT
    Make sure that you're properly authenticated if you're using a private Docker Hub repository.
    מאגר קונטיינרים של AWS‏ (ECR) AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/APP
    Azure Container Registry (ACR) ACR_NAME.azurecr.io/APP

    ‫Cloud Code משרשר את מאגר התמונות הזה לשם התמונה שצוין במניפסטים של Kubernetes כדי ליצור את השם הסופי של מאגר התמונות.

    מידע נוסף זמין במדריך לטיפול במאגר תמונות.

    הבחירה הזו מאוחסנת בcloudcode.kubernetesהגדרת ההפעלה (שנמצאת ב-‎ .vscode/launch.json).

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

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

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

כדי להציג יומנים מ-Pod ספציפי, פועלים לפי השלבים הבאים:

  1. בקטע Kubernetes, מרחיבים את Deployments (פריסות).
  2. לוחצים לחיצה ימנית על ה-pod שרוצים לראות את היומנים שלו, ואז לוחצים על View Logs.

    ייפתח כלי לצפייה ביומנים.

ביצוע שינויים, בנייה מחדש וניקוי

אם הגדרתם את מצב הצפייה ל-false בהגדרות ההפעלה ואתם רוצים לבצע שינויים באפליקציה, לבנות אותה מחדש ולפרוס אותה מחדש:

  1. מבצעים את השינויים ושומרים אותם.

  2. בסרגל הכלים לניפוי באגים, לוחצים על השהיה (F6) ואז על הפעלה מחדש (Ctrl/Cmd + Shift + F5) כדי לבנות מחדש את האפליקציה ולפרוס אותה מחדש.

  3. כדי להפסיק את הפעלת האפליקציה, בסרגל הכלים של ניפוי הבאגים, לוחצים על Stop (הפסקה).

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

אחסון סודות

אם הקוד שלכם כולל נתונים רגישים פוטנציאליים כמו מפתחות API, סיסמאות ואישורים, מומלץ לאחסן אותם כסודות. באמצעות Cloud Code, אתם יכולים לאחסן את הסודות האלה בצורה מאובטחת ב-Secret Manager ולאחזר אותם באופן פרוגרמטי כשאתם צריכים אותם.

במדריך Secret Manager מוסבר בפירוט איך ליצור ולנהל סודות באמצעות Cloud Code.

צפייה בפרטי המשאב

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

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

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

תמיכה

כדי לשלוח משוב, לדווח על בעיות ב-GitHub או לשאול שאלה ב-Stack Overflow.