אפליקציות Django שפועלות ב-GKE משנות את קנה המידה שלהן באופן דינמי בהתאם לתנועה.
במדריך הזה אנחנו יוצאים מנקודת הנחה שאתם מכירים את פיתוח האתרים של Django. אם אתם חדשים בפיתוח Django, מומלץ לעבור על כתיבת אפליקציית Django הראשונה לפני שתמשיכו.
במדריך הזה נדגים את Django באופן ספציפי, אבל אפשר להשתמש בתהליך הפריסה הזה עם מסגרות אחרות שמבוססות על Django, כמו Wagtail ו-Django CMS.
במדריך הזה משתמשים ב-Django 5, שמחייב לפחות Python 3.10.צריך גם להתקין את Docker.
מטרות
במדריך הזה תלמדו:
- יצירה וחיבור של מסד נתונים ב-Cloud SQL.
- יצירה ושימוש בערכי סודות של Kubernetes.
- פריסת אפליקציית Django ב-Google Kubernetes Engine.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud SQL, GKE and Compute Engine 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.-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud SQL, GKE and Compute Engine 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.-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init
הכנת הסביבה
שכפול של אפליקציה לדוגמה
הקוד של אפליקציית Django לדוגמה נמצא במאגר GoogleCloudPlatform/python-docs-samples ב-GitHub.
אפשר להוריד את הדוגמה כקובץ ZIP ולחלץ אותה, או לשכפל את המאגר למכונה המקומית:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.gitעוברים לספרייה שמכילה את הקוד לדוגמה:
Linux/macOS
cd python-docs-samples/kubernetes_engine/django_tutorialWindows
cd python-docs-samples\kubernetes_engine\django_tutorial
אישור הגדרת Python
המדריך הזה מסתמך על Python להרצת האפליקציה לדוגמה במחשב שלכם. כדי להשתמש בקוד לדוגמה צריך גם להתקין יחסי תלות
פרטים נוספים זמינים במדריך לסביבת פיתוח בשפת Python.
מוודאים שגרסת Python היא 3.10 לפחות.
python -Vהגרסה שמופיעה צריכה להיות
Python 3.10.0ומעלה.יוצרים סביבה וירטואלית של Python ומתקינים את יחסי התלות:
Linux/macOS
python -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txtWindows
python -m venv venv venv\scripts\activate pip install --upgrade pip pip install -r requirements.txt
הורדת Cloud SQL Auth Proxy כדי להתחבר ל-Cloud SQL מהמחשב המקומי
כשפורסים את האפליקציה, היא משתמשת בשרת ה-proxy ל-Cloud SQL Auth שמוטמע בסביבת Google Kubernetes Engine כדי לתקשר עם מופע Cloud SQL. עם זאת, כדי לבדוק את האפליקציה באופן מקומי, צריך להתקין ולהשתמש בעותק מקומי של ה-proxy בסביבת הפיתוח. פרטים נוספים זמינים במדריך לשרת proxy ל-Cloud SQL Auth.
שרת proxy ל-Cloud SQL Auth משתמש ב-Cloud SQL API כדי ליצור אינטראקציה עם מופע SQL. כדי לעשות את זה, צריך לאמת את האפליקציה באמצעות ה-CLI של gcloud.
אימות וקבלת פרטי כניסה ל-API:
gcloud auth application-default loginמורידים ומתקינים את שרת ה-proxy ל-Cloud SQL Auth במחשב המקומי.
לפני שמתחילים, צריך לקבוע את הארכיטקטורה של המכונה.
אם מריצים את הפקודה ב-Linux או ב-Mac, אפשר למצוא את המידע הזה באמצעות הפקודה הבאה:
uname -a
Linux 64 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.linux.amd64
- הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Linux 32 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.linux.386
- אם הפקודה
curlלא נמצאה, מריצים את הפקודהsudo apt install curlוחוזרים על פקודת ההורדה. - הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
macOS 64 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.darwin.amd64
- הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Mac M1
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.darwin.arm64
- הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Windows 64 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.x64.exe ובוחרים באפשרות שמירת קישור בשם כדי להוריד את שרת ה-proxy ל-Cloud SQL Auth. משנים את שם הקובץ ל-cloud-sql-proxy.exe.Windows 32 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.x86.exe ובוחרים באפשרות שמירת קישור בשם כדי להוריד את שרת ה-proxy ל-Cloud SQL Auth. משנים את שם הקובץ ל-cloud-sql-proxy.exe.קובץ אימג' של Docker לשרת proxy ל-Cloud SQL Auth
לשרת ה-proxy ל-Cloud SQL Auth יש תמונות קונטיינר שונות, כמו
distroless,alpineו-buster. קובץ האימג' של קונטיינר ברירת המחדל של שרת proxy ל-Cloud SQL Auth משתמש ב-distroless, שלא מכיל מעטפת. אם אתם צריכים מעטפת או כלים קשורים, אתם יכולים להוריד תמונה שמבוססת עלalpineאו עלbuster. מידע נוסף זמין במאמר תמונות קונטיינר של Cloud SQL Auth Proxy.אפשר למשוך את התמונה העדכנית ביותר למחשב המקומי באמצעות Docker באמצעות הפקודה הבאה:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.22.1
מערכת הפעלה אחרת
במערכות הפעלה אחרות שלא נכללות כאן, אפשר לקמפל את Cloud SQL Auth Proxy מהמקור.אתם יכולים להעביר את ההורדה למיקום נפוץ, כמו מיקום ב
PATHאו בספריית הבית. אם תבחרו לעשות את זה, כשתפעילו את שרת ה-proxy ל-Cloud SQL Auth בהמשך המדריך, תצטרכו לציין את המיקום שבחרתם כשמשתמשים בפקודותcloud-sql-proxy.- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
יצירת שירותי גיבוי
במדריך הזה נעשה שימוש בכמה Google Cloud שירותים כדי לספק את מסד הנתונים, אחסון המדיה ואחסון הסודות שתומכים בפרויקט Django שנפרס. השירותים האלה פרוסים באזור ספציפי. כדי לשפר את היעילות בין השירותים, מומלץ לפרוס את כל השירותים באותו אזור. מידע נוסף על האזור הקרוב ביותר אליכם זמין במאמר מוצרים שזמינים לפי אזור.
הגדרת מכונה של Cloud SQL ל-PostgreSQL
Django תומך רשמית במספר מסדי נתונים רלציוניים, אבל התמיכה הכי טובה היא ב-PostgreSQL. Cloud SQL תומך ב-PostgreSQL, ולכן במדריך הזה נבחר להשתמש בסוג הזה של מסד נתונים.
בקטע הבא מתואר תהליך היצירה של מכונת PostgreSQL, מסד נתונים ומשתמש במסד הנתונים עבור האפליקציה.
יוצרים את מכונת PostgreSQL:
המסוף
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
לוחצים על Create Instance.
לוחצים על Choose PostgreSQL (בחירת PostgreSQL).
ב-SQL Edition, בוחרים באפשרות Enterprise.
בקטע Edition Preset (הגדרות קבועות מראש של מהדורה), בוחרים באפשרות Sandbox (ארגז חול).
בשדה Instance ID (מזהה המופע), מזינים את הערך
INSTANCE_NAME.מזינים סיסמה למשתמש postgres.
משאירים את ערכי ברירת המחדל בשאר השדות.
לוחצים על Create Instance.
לוקח כמה דקות עד שהמכונה מוכנה לשימוש.
gcloud
יוצרים את מכונת PostgreSQL:
gcloud sql instances create INSTANCE_NAME \ --project PROJECT_ID \ --database-version POSTGRES_16 \ --tier db-n1-standard-2 \ --region REGION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה של Cloud SQL -
PROJECT_ID: מזהה הפרויקט Google Cloud -
REGION: Google Cloud האזור
יצירת המכונה והכנתה לשימוש נמשכות כמה דקות.
במכונה שנוצרה, יוצרים מסד נתונים:
המסוף
- בדף של האינסטנס, עוברים לכרטיסייה Databases (מסדי נתונים).
- לוחצים על יצירת מסד נתונים.
- בתיבת הדו-שיח Database Name, מזינים
DATABASE_NAME. - לוחצים על יצירה.
gcloud
יוצרים את מסד הנתונים במופע שנוצר לאחרונה:
gcloud sql databases create DATABASE_NAME \ --instance INSTANCE_NAMEמחליפים את
DATABASE_NAMEבשם של מסד הנתונים בתוך המכונה.
יוצרים משתמש במסד הנתונים:
המסוף
- בדף של המופע, עוברים לכרטיסייה משתמשים.
- לוחצים על הוספת חשבון משתמש.
- בתיבת הדו-שיח בחירת שיטת האימות בקטע 'אימות מובנה':
- מזינים את שם המשתמש
DATABASE_USERNAME. - מזינים את הסיסמה
DATABASE_PASSWORD - לוחצים על הוספה.
gcloud
יוצרים את המשתמש במכונה שנוצרה לאחרונה:
gcloud sql users create DATABASE_USERNAME \ --instance INSTANCE_NAME \ --password DATABASE_PASSWORDמחליפים את
PASSWORDבסיסמה מאובטחת.
יצירה של חשבון שירות
הפרוקסי דורש חשבון שירות עם הרשאות עריכה עבור מכונת Cloud SQL. מידע נוסף על חשבונות שירות זמין במאמר Google Cloud סקירה כללית על אימות.
- נכנסים לדף Service accounts במסוף Google Cloud .
- בוחרים את הפרויקט שמכיל את מופע Cloud SQL.
- לוחצים על יצירת חשבון שירות.
- בשדה Service account name, מזינים שם תיאורי לחשבון השירות.
- משנים את מזהה חשבון השירות לערך ייחודי וקל לזיהוי, ואז לוחצים על יצירה והמשך.
-
לוחצים על השדה Select a role (בחירת תפקיד) ובוחרים באחד מהתפקידים הבאים:
- Cloud SQL > Cloud SQL Client
- Cloud SQL > Cloud SQL Editor
- Cloud SQL > Cloud SQL Admin
- לוחצים על Done כדי לסיים ליצור את חשבון השירות.
- לוחצים על תפריט הפעולות של חשבון השירות החדש ובוחרים באפשרות ניהול מפתחות.
- לוחצים על התפריט הנפתח Add key ואז על Create new key.
-
מוודאים שסוג המפתח הוא JSON ולוחצים על Create.
קובץ המפתח הפרטי יורד למחשב שלכם. אפשר להעביר אותו למיקום אחר. חשוב לשמור על אבטחת קובץ המפתח.
הגדרת מסד הנתונים
משתמשים בפקודות הבאות כדי להגדיר משתני סביבה לגישה למסד הנתונים. משתני הסביבה האלה משמשים לבדיקות מקומיות.
Linux/MacOS
export DATABASE_NAME=DATABASE_NAME
export DATABASE_USER=DATABASE_USERNAME
export DATABASE_PASSWORD=DATABASE_PASSWORD
Windows
set DATABASE_USER=DATABASE_USERNAME
set DATABASE_PASSWORD=DATABASE_PASSWORD
הגדרת GKE
האפליקציה הזו מיוצגת בהגדרה אחת של Kubernetes שנקראת
polls. ב-polls.yamlמחליפים את<your-project-id>במזהה הפרויקט (PROJECT_ID) ב-Google Cloud .מריצים את הפקודה הבאה ורושמים את הערך של
connectionName:gcloud sql instances describe INSTANCE_NAME --format "value(connectionName)"בקובץ
polls.yaml, מחליפים את<your-cloudsql-connection-string>בערךconnectionName.
הפעלת האפליקציה במחשב המקומי
אחרי שמגדירים את שירותי הגיבוי, אפשר להריץ את האפליקציה במחשב. ההגדרה הזו מאפשרת פיתוח מקומי, יצירת משתמש על והחלת העברות של מסד הנתונים.
במסוף נפרד, מפעילים את שרת ה-proxy ל-Cloud SQL Auth:
Linux/macOS
./cloud-sql-proxy PROJECT_ID:REGION:INSTANCE_NAMEWindows
cloud-sql-proxy.exe PROJECT_ID:REGION:INSTANCE_NAMEבשלב הזה נוצר חיבור מהמחשב המקומי למכונת Cloud SQL למטרות בדיקה מקומית. חשוב להשאיר את שרת ה-proxy ל-Cloud SQL Auth פועל כל הזמן שבודקים את האפליקציה באופן מקומי. הפעלת התהליך הזה בטרמינל נפרד מאפשרת לכם להמשיך לעבוד בזמן שהתהליך הזה פועל.
בטרמינל המקורי, מגדירים את מזהה הפרויקט באופן מקומי:
Linux/macOS
export GOOGLE_CLOUD_PROJECT=PROJECT_IDWindows
set GOOGLE_CLOUD_PROJECT=PROJECT_IDמריצים את ההעברות של Django כדי להגדיר את המודלים והנכסים:
python manage.py makemigrations python manage.py makemigrations polls python manage.py migrate python manage.py collectstaticמפעילים את שרת האינטרנט של Django:
python manage.py runserver 8080בדפדפן, עוברים אל http://localhost:8080.
אם אתם ב-Cloud Shell, לוחצים על הלחצן Web Preview (תצוגה מקדימה של אתר) ובוחרים באפשרות Preview on port 8080 (תצוגה מקדימה ביציאה 8080).
בדף מוצג הטקסט: "Hello, world. אתה נמצא במדד הסקרים". שרת האינטרנט של Django שפועל במחשב שלכם מספק את דפי האפליקציה לדוגמה.
מקישים על
Ctrl/Cmd+Cכדי לעצור את שרת האינטרנט המקומי.
שימוש במסוף Admin של Django
כדי להתחבר למסוף Admin של Django, צריך ליצור משתמש על. מכיוון שיש לכם חיבור למסד הנתונים שאפשר לגשת אליו באופן מקומי, אתם יכולים להריץ פקודות ניהול:
יוצרים משתמש על. תוצג בקשה להזין שם משתמש, כתובת אימייל וסיסמה.
python manage.py createsuperuserמפעילים שרת אינטרנט מקומי:
python manage.py runserverבדפדפן, עוברים לכתובת http://localhost:8000/admin.
מתחברים לאתר האדמין באמצעות שם המשתמש והסיסמה שבהם השתמשתם כשביצעתם את הפקודה
createsuperuser.
פריסת האפליקציה ב-GKE
כשהאפליקציה נפרסת ב- Google Cloud, היא משתמשת בשרת Gunicorn. Gunicorn לא מציג תוכן סטטי, ולכן האפליקציה משתמשת ב-Cloud Storage כדי להציג תוכן סטטי.
איסוף והעלאה של משאבים סטטיים
יוצרים קטגוריה של Cloud Storage והופכים אותה לקריאה באופן ציבורי.
gcloud storage buckets create gs://PROJECT_ID_MEDIA_BUCKET gcloud storage buckets add-iam-policy-binding gs://PROJECT_ID_MEDIA_BUCKET --member=allUsers --role=roles/storage.legacyObjectReaderאוספים את כל התוכן הסטטי באופן מקומי לתיקייה אחת:
python manage.py collectstaticמעלים את התוכן הסטטי ל-Cloud Storage:
gcloud storage rsync ./static gs://PROJECT_ID_MEDIA_BUCKET/static --recursiveב-
mysite/settings.py, מגדירים את הערך שלSTATIC_URLלכתובת ה-URL הבאה, ומחליפים את[YOUR_GCS_BUCKET]בשם הקטגוריה:http://storage.googleapis.com/PROJECT_ID_MEDIA_BUCKET/static/
הגדרת GKE
כדי לאתחל את GKE, עוברים לדף Clusters.
כשמשתמשים ב-GKE בפעם הראשונה בפרויקט, צריך לחכות עד להודעה 'Kubernetes Engine is getting ready. יכול להיות שיחלפו כמה דקות עד שההודעה 'הפעולה הזו תימשך דקה או יותר' תיעלם.
-
gcloud container clusters create polls \ --scopes "https://www.googleapis.com/auth/userinfo.email","cloud-platform" \ --num-nodes 4 --zone "us-central1-a"אם מופיעה הודעת שגיאה דומה ל-
Project is not fully initialized with the default service accounts, יכול להיות שתצטרכו לאתחל את Google Kubernetes Engine.הפעלת GKE
אם קיבלתם שגיאה, צריך להיכנס אל Google Cloud המסוף כדי לאתחל את GKE בפרויקט.
ממתינים להודעה 'Kubernetes Engine is getting ready. ההודעה 'הפעולה עשויה להימשך דקה או יותר' תיעלם.
אחרי שיוצרים את האשכול, משתמשים בכלי שורת הפקודה
kubectl, שמשולב עם ה-CLI של gcloud, כדי ליצור אינטראקציה עם אשכול GKE. מכיוון ש-gcloudו-kubectlהם כלים נפרדים, צריך לוודא ש-kubectlמוגדר כך שיפעל עם האוסף הנכון.gcloud container clusters get-credentials polls --zone "us-central1-a"
הגדרת Cloud SQL
כדי לאפשר לאפליקציית GKE להתחבר למופע Cloud SQL, צריך כמה סודות. אחד נדרש לגישה ברמת המופע (חיבור), ושני האחרים נדרשים לגישה למסד הנתונים. מידע נוסף על שתי רמות בקרת הגישה זמין במאמר בנושא בקרת גישה למופעים.
כדי ליצור את הסוד לגישה ברמת המופע, מציינים את המיקום,
PATH_TO_CREDENTIAL_FILE, של מפתח חשבון השירות בפורמט JSON שהורדתם כשייצרתם את חשבון השירות (ראו יצירת חשבון שירות):kubectl create secret generic cloudsql-oauth-credentials \ --from-file=credentials.json=PATH_TO_CREDENTIAL_FILEכדי ליצור את הסודות לגישה למסד הנתונים, משתמשים במסד הנתונים של SQL, בשם המשתמש ובסיסמה שהוגדרו כשיוצרים שירותי גיבוי. איך מגדירים מכונה של Cloud SQL ל-PostgreSQL
kubectl create secret generic cloudsql \ --from-literal=database=DATABASE_NAME \ --from-literal=username=DATABASE_USERNAME \ --from-literal=password=DATABASE_PASSWORD
מאחזרים את תמונת Docker הציבורית של Cloud SQL Proxy.
docker pull b.gcr.io/cloudsql-docker/gce-proxyיוצרים קובץ אימג' של Docker ומחליפים את
<your-project-id>במזהה הפרויקט.docker build -t gcr.io/PROJECT_ID/polls .מגדירים את Docker כך שישתמש ב-
gcloudככלי עזר לפרטי כניסה, כדי שתוכלו להעביר את קובץ האימג' בדחיפה אל Container Registry:gcloud auth configure-dockerמעלים את קובץ אימג' של Docker. מחליפים את
<your-project-id>במזהה הפרויקט.docker push gcr.io/PROJECT_ID/pollsיוצרים את משאב GKE:
kubectl create -f polls.yaml
פריסת האפליקציה ב-GKE
אחרי שהמשאבים נוצרים, יש 3 פודים של polls באשכול.
בודקים את הסטטוס של ה-Pods:
kubectl get pods
מחכים כמה דקות עד שהסטטוסים של ה-Pods יוצגו כ-Running. אם הפודים לא מוכנים או אם אתם רואים הפעלות מחדש, אתם יכולים לקבל את היומנים של פוד מסוים כדי להבין את הבעיה. [YOUR-POD-ID] הוא חלק מהפלט שמוחזר על ידי הפקודה kubectl get pods הקודמת.
kubectl logs [YOUR_POD_ID]
הצגת האפליקציה בהפעלה ב- Google Cloud
אחרי שה-pods מוכנים, אפשר לקבל את כתובת ה-IP החיצונית של מאזן העומסים:
kubectl get services polls
שימו לב לכתובת EXTERNAL-IP ועברו לכתובת http://[EXTERNAL-IP] בדפדפן כדי לראות את דף הנחיתה של הסקרים ב-Django ולגשת למסוף האדמין.
הסבר על הקוד
אפליקציה לדוגמה
אפליקציית הדוגמה של Django נוצרה באמצעות כלי Django רגילים. הפקודות הבאות יוצרות את הפרויקט ואת אפליקציית הסקרים:
django-admin startproject mysite
python manage.py startapp polls
התצוגות, המודלים והגדרות הניתוב הבסיסיים הועתקו מתוך כתיבת האפליקציה הראשונה ב-Django (חלק 1 וחלק 2).
הגדרת מסד נתונים
הקובץ settings.py מכיל את ההגדרות של מסד הנתונים של SQL:
הגדרות של Kubernetes pod
בקובץ polls.yaml מוגדרים שני משאבי Kubernetes. הראשון הוא Service, שמגדיר שם עקבי וכתובת IP פנימית לאפליקציית האינטרנט של Django. השני הוא מאזן עומסים מסוג HTTP עם כתובת IP חיצונית שפונה לציבור.
השירות מספק שם רשת וכתובת IP, ותאי GKE מריצים את קוד האפליקציה מאחורי השירות.
קובץ polls.yaml מציין פריסה שמספקת עדכונים הצהרתיים לפודים של GKE. השירות מפנה תעבורה לפריסה על ידי התאמת הבורר של השירות לתווית של הפריסה. במקרה הזה, הסלקטור polls תואם לתווית polls.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת המשאבים הבודדים
אם לא רוצים למחוק את הפרויקט, צריך למחוק את המשאבים בנפרד.
מוחקים את אשכול Google Kubernetes Engine:
gcloud container clusters delete pollsמוחקים את קובץ האימג' של Docker שדחפתם ל-Container Registry:
gcloud container images delete gcr.io/PROJECT_ID/pollsמחיקת המכונה של Cloud SQL:
gcloud sql instances delete INSTANCE_NAME
המאמרים הבאים
- איך מגדירים את PostgreSQL לייצור
- מידע נוסף על Django ב- Google Cloud