תחילת העבודה עם 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

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

  • .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: מפרט של תא למסד הנתונים
  • src
    • (backend|frontend)/app.js: קוד Node.js עם הלוגיקה של שרת האינטרנט
    • (backend|frontend)/Dockerfile: משמש לבניית קובץ האימג' של הקונטיינר עבור התוכנית שלנו
  • skaffold.yaml: קובץ תצורה שמשמש את Cloud Code לבנייה, לפריסה ולניפוי באגים של אפליקציות Kubernetes

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

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

הגדרת ההקשר ב-Kubernetes

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

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

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

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

הגדרות 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 Container (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.

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

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

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

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

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

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

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

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

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

אחסון סודות

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

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

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

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

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

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

תמיכה

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