אפליקציות 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, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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.26.0/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.26.0/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.26.0/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.26.0/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.26.0/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.26.0/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. קובץ האימג' של קונטיינר ברירת המחדל של Cloud SQL Auth Proxy משתמש ב-distroless, שלא מכיל מעטפת. אם אתם צריכים מעטפת או כלים קשורים, אתם יכולים להוריד תמונה שמבוססת עלalpineאו עלbuster. מידע נוסף זמין במאמר תמונות קונטיינר של Cloud SQL Auth Proxy.אפשר למשוך את התמונה העדכנית ביותר למחשב המקומי באמצעות Docker באמצעות הפקודה הבאה:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.0
מערכת הפעלה אחרת
במערכות הפעלה אחרות שלא נכללות כאן, אפשר לקמפל את שרת ה-proxy ל-Cloud SQL Auth ממקור.אתם יכולים להעביר את ההורדה למיקום נפוץ, כמו מיקום ב-
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.
בקטע הגדרה קבועה מראש של מהדורה, בוחרים באפשרות 'ארגז חול'.
בשדה 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 לצורכי בדיקה מקומית. חשוב להשאיר את Cloud SQL Auth Proxy פועל לאורך כל הבדיקה של האפליקציה באופן מקומי. הפעלת התהליך הזה בטרמינל נפרד מאפשרת לכם להמשיך לעבוד בזמן שהתהליך הזה פועל.
בטרמינל המקורי, מגדירים את מזהה הפרויקט באופן מקומי:
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, ותוכלו להריץ את הקוד של האפליקציה ב-pods של GKE מאחורי השירות.
קובץ polls.yaml מציין פריסה שמספקת עדכונים הצהרתיים ל-pods של 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