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

סדרת הדרכות זו מיועדת לאדמינים ולמפעילים בתחום ה-IT שרוצים לפרוס, להריץ ולנהל סביבות אפליקציות מודרניות שפועלות ב-Google Kubernetes Engine‏ (GKE). בסדרת המדריכים הזו תלמדו איך להגדיר מעקב והתראות, לשנות את גודל עומסי העבודה ולבצע סימולציה של כשל, והכול באמצעות אפליקציית המיקרו-שירותים לדוגמה של Cymbal Bank:

  1. יצירת אשכול ופריסת אפליקציה לדוגמה (המדריך הזה)
  2. מעקב באמצעות השירות המנוהל של Google Cloud ל-Prometheus
  3. התאמה לעומסי עבודה
  4. סימולציה של כשל
  5. ניהול שינויים באופן מרכזי

סקירה כללית ומטרות

ב-Cymbal Bank נעשה שימוש ב-Python וב-Java כדי להפעיל את השירותים השונים, והיא כוללת קצה עורפי של PostgreSQL. לא צריך ניסיון בשפות האלה או בפלטפורמת מסד נתונים כדי להשלים את סדרת ההדרכות, כי Cymbal Bank היא רק אפליקציה לדוגמה שמראה איך GKE יכול לתמוך בצרכים של העסק שלכם.

במדריך הזה תלמדו איך ליצור אשכול GKE יחיד ולפרוס אליו אפליקציה לדוגמה שמבוססת על מיקרו-שירותים בשם Cymbal Bank. תלמדו איך לבצע את המשימות הבאות:

  • יוצרים אשכול GKE שמשתמש ב-Autopilot.

  • פריסת אפליקציה לדוגמה שמבוססת על מיקרו-שירותים בשם Cymbal Bank.

  • אפשר להשתמש במסוף Google Cloud כדי לעיין במשאבי GKE שבהם נעשה שימוש באפליקציית הדוגמה Cymbal Bank.

עלויות

אם תפעילו את GKE ותפרוסו את אפליקציית הדוגמה Cymbal Bank בסדרת מדריכים זו, תחויבו על GKE on Google Cloud לפי אשכול, כפי שמפורט בדף התמחור, עד שתשביתו את GKE או תמחקו את הפרויקט.

אתם אחראים גם לעלויות אחרות Google Cloud שנוצרות בזמן הפעלת אפליקציית הדוגמה Cymbal Bank, כמו חיובים על מכונות וירטואליות ב-Compute Engine ומאזני עומסים.

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

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

הגדרת המעטפת והכלים

בסדרת המדריכים הזו תלמדו איך להשתמש בכלים הבאים כדי לפרוס ולנהל את הסביבה שלכם:

  • ‫CLI של gcloud: יצירה וניהול של אשכולות GKE ו-Fleets, וגם של שירותים אחרים Google Cloud .
  • kubectl: ניהול Kubernetes, מערכת תזמור האשכולות שמשמשת את GKE.

כדי להריץ את הפקודות שבדף הזה, צריך להגדיר את Google Cloud CLI ו-kubectl באחת מסביבות הפיתוח הבאות:

Cloud Shell

כדי להשתמש בטרמינל אונליין שכבר מוגדר בו ה-CLI של gcloud ו-kubectl, צריך להפעיל את Cloud Shell:

בחלק התחתון של הדף הזה מתחיל סשן של Cloud Shell ומופיעה הנחיה של שורת הפקודה. הסשן יופעל תוך כמה שניות.

מעטפת מקומית

כדי להשתמש בסביבת פיתוח מקומית:

הגדרת הפרויקט

כדי להגדיר פרויקט, צריך לבצע את השלבים הבאים, כולל הפעלת החיוב ושירותי GKE. Google Cloud זהו הפרויקט שבו תפעילו את GKE.

יכול להיות שתצטרכו שאדמין בארגון שלכם ייתן לכם גישה ליצירה או לשימוש בפרויקט ולהפעלת ממשקי API. Google Cloud

  1. במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine:

    מעבר לדף Google Kubernetes Engine

  2. יוצרים או בוחרים פרויקט. זהו הפרויקט שבו מפעילים את GKE.

  3. אם מופיעה בקשה, לוחצים על הפעלה של GKE API.

  4. מחכים עד שממשק ה-API והשירותים הקשורים מופעלים. התהליך הזה יכול להימשך כמה דקות.

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

מתן תפקידים ב-IAM

אם אתם בעלי הפרויקט (למשל אם יצרתם את הפרויקט בעצמכם), כבר יש לכם את כל ההרשאות שנדרשות כדי להשלים את המדריכים האלה. אם אתם לא הבעלים, ודאו שלחשבון שלכם Google Cloud יש את תפקידי ה-IAM הנדרשים בפרויקט שבחרתם כדי לבצע את ההדרכות האלה. שוב, יכול להיות שתצטרכוGoogle Cloud אדמין בארגון שיעזור לכם להקצות את התפקידים הנדרשים.

בפקודות הבאות, מחליפים את PROJECT_ID במזהה שנוצר אוטומטית של הפרויקט שיצרתם או בחרתם בקטע הקודם. מזהה הפרויקט שונה בדרך כלל משם הפרויקט. לדוגמה, שם הפרויקט יכול להיות scalable-apps, אבל מזהה הפרויקט יכול להיות scalable-apps-567123.

Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountAdmin, roles/iam.serviceAccountUser, roles/iam.securityAdmin, roles/serviceusage.serviceUsageAdmin, roles/container.admin, roles/logging.logWriter, roles/gkehub.admin, roles/viewer, roles/monitoring.viewer

gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

Replace the following:

  • PROJECT_ID: Your project ID.
  • USER_IDENTIFIER: The identifier for your user account. For example, myemail@example.com.
  • ROLE: The IAM role that you grant to your user account.

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

משכפלים את מאגר Git שכולל את כל קובצי המניפסט לדוגמה של Cymbal Bank:

  git clone https://github.com/GoogleCloudPlatform/bank-of-anthos
  cd bank-of-anthos/

יצירת אשכול

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

‫GKE הוא שירות מנוהל של Kubernetes שבעזרתו אפשר לפרוס ולהפעיל אפליקציות בקונטיינרים. סביבת GKE מורכבת מצמתים, שהם מכונות וירטואליות (VM) של Compute Engine, שמקובצות יחד ויוצרות אשכול.

  • יוצרים אשכול GKE שבו משתמשים בשאר המדריכים בסדרה הזו:

    gcloud container clusters create-auto scalable-apps \
      --project=PROJECT_ID \
      --location=CONTROL_PLANE_LOCATION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID עם המזהה שנוצר אוטומטית של הפרויקט שיצרתם בקטע הקודם. מזהה הפרויקט שונה בדרך כלל משם הפרויקט. לדוגמה, שם הפרויקט יכול להיות scalable-apps, אבל מזהה הפרויקט יכול להיות scalable-apps-567123.
    • CONTROL_PLANE_LOCATION: האזור של Compute Engine במישור הבקרה של האשכול. מציינים אזור, למשל us-central1.

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

בסדרת הדרכות הזו, כשיוצרים אשכולות משתמשים באשכולות במצב טייס אוטומטי ובכמה טווחי כתובות IP שמוגדרים כברירת מחדל. כשפורסים אפליקציות משלכם בסביבת ייצור, צריך לתכנן את כתובות ה-IP בקפידה רבה יותר. במצב Autopilot,‏ Google מנהלת את הגדרות האשכול, כולל שינוי גודל אוטומטי, אבטחה והגדרות אחרות שהוגדרו מראש. אשכולות במצב Autopilot מותאמים להרצת רוב עומסי העבודה של הייצור, ומקצים משאבי מחשוב על סמך מניפסטים של Kubernetes.

פריסת Cymbal Bank

אורזים אפליקציות (שנקראות גם עומסי עבודה) בקונטיינרים. אתם פורסים קבוצות של קונטיינרים כ-Pods בצמתים.

בסדרת המדריכים הזו, תפרסו אפליקציה לדוגמה שמבוססת על מיקרו-שירותים בשם Cymbal Bank באחד או יותר מאשכולות GKE. ב-Cymbal Bank נעשה שימוש ב-Python וב-Java כדי להפעיל את השירותים השונים, והיא כוללת קצה עורפי של PostgreSQL. לא צריך ניסיון בשפות האלה או בפלטפורמת מסד הנתונים כדי להשלים את סדרת המדריכים. Cymbal Bank היא רק דוגמה לאפליקציה שממחישה איך GKE יכול לתמוך בצרכים של העסק שלכם.

כשמשתמשים ב-Cymbal Bank כחלק מסדרת המדריכים הזו, השירותים הבאים נפרסים באשכול GKE:

שירות שפה תיאור
frontend Python החשיפה של שרת HTTP כדי לשרת את האתר. כולל דף כניסה, דף הרשמה ודף בית.
ledger-writer Java מקבלת עסקאות נכנסות ומאמתת אותן לפני שהיא כותבת אותן בספר הראשי.
balance-reader Java מספק מטמון יעיל וקריא של יתרות המשתמשים, כפי שנקרא מ-ledger-db.
transaction-history Java מספק מטמון יעיל וקריא של טרנזקציות קודמות, כפי שנקרא מ-ledger-db.
ledger-db PostgreSQL ספר חשבונות שכולל את כל העסקאות. אפשרות לאכלס מראש את הנתונים בעסקאות עבור משתמשי הדמו.
user-service Python ניהול של חשבונות משתמשים ואימות. חותם על אסימוני JWT שמשמשים לאימות על ידי שירותים אחרים.
contacts Python רשימת החנויות של חשבונות אחרים שמשויכים למשתמש. השדה הזה משמש לתפריט הנפתח בטפסים 'שליחת תשלום' ו'הפקדה'.
accounts-db PostgreSQL מסד נתונים של חשבונות משתמשים ונתונים משויכים. אפשרות לאכלס מראש משתמשי הדגמה.
loadgenerator Python / Locust שולח בקשות באופן רציף לקצה הקדמי, שמדמות משתמשים. מדי פעם יוצר חשבונות חדשים ומדמה עסקאות ביניהם.

כדי לפרוס את Cymbal Bank באשכול GKE, מבצעים את השלבים הבאים:

  1. ב-Cymbal Bank נעשה שימוש באסימוני JWT (‏JSON Web Tokens) כדי לטפל באימות משתמשים. ב-JWT נעשה שימוש בזוגות של מפתחות אסימטריים כדי לחתום על אסימונים ולאמת אותם. ב-Cymbal Bank,‏ userservice יוצרת אסימונים וחותמת עליהם באמצעות מפתח פרטי של RSA כשמשתמש נכנס לחשבון, והשירותים האחרים משתמשים במפתח הציבורי המתאים כדי לאמת את המשתמש.

    יצירת JWT מסוג RS256 בעוצמה של 4,096 ביט:

    openssl genrsa -out jwtRS256.key 4096
    openssl rsa -in jwtRS256.key -outform PEM -pubout -out jwtRS256.key.pub
    

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

  2. ב-Kubernetes Secret אפשר לאחסן מידע רגיש כמו מפתחות או סיסמאות. עומסי עבודה שפועלים באשכול יכולים לגשת ל-Secret כדי לקבל את הנתונים הרגישים במקום להצפין אותם בהצפנה קשיחה באפליקציה.

    יוצרים סוד של Kubernetes מקובץ המפתח שיצרתם בשלב הקודם כדי ש-Cymbal Bank יוכל להשתמש בו עם בקשות אימות:

    kubectl create secret generic jwt-key --from-file=./jwtRS256.key --from-file=./jwtRS256.key.pub
    
  3. פורסים את Cymbal Bank באשכול. הפקודה הבאה פורסת את כל קובצי המניפסט בספרייה kubernetes-manifests. כל קובץ מניפסט פורס ומגדיר אחד מהשירותים:

    kubectl apply -f kubernetes-manifests/accounts-db.yaml
    kubectl apply -f kubernetes-manifests/balance-reader.yaml
    kubectl apply -f kubernetes-manifests/config.yaml
    kubectl apply -f kubernetes-manifests/contacts.yaml
    kubectl apply -f extras/postgres-hpa/kubernetes-manifests/frontend.yaml
    kubectl apply -f kubernetes-manifests/ledger-db.yaml
    kubectl apply -f kubernetes-manifests/ledger-writer.yaml
    kubectl apply -f extras/postgres-hpa/loadgenerator.yaml
    kubectl apply -f kubernetes-manifests/transaction-history.yaml
    kubectl apply -f kubernetes-manifests/userservice.yaml
    

    יכול להיות שתראו הודעות בפלט kubectl כשמחילים את המניפסטים על האשכול לגבי מגבלות של Autopilot. ‫Autopilot משתמש בבקשות למשאבים שאתם מציינים בהגדרת עומס העבודה כדי להגדיר את הצמתים שמריצים את עומסי העבודה. ב-Autopilot מוגדרים ערכים מינימליים ומקסימליים לבקשות משאבים, על סמך מחלקת המחשוב או תצורת החומרה שבהן נעשה שימוש בעומסי העבודה. אם לא מציינים בקשות עבור חלק מהמאגדים, Autopilot מקצה ערכי ברירת מחדל כדי לאפשר למאגדים האלה לפעול בצורה תקינה.

    בדוגמה הבאה אפשר לראות מניפסט של שירות frontend:

    # Copyright 2025 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     https://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        application: bank-of-anthos
        environment: development
        team: frontend
        tier: web
      name: frontend
    spec:
      ports:
        - name: http
          port: 80
          targetPort: 8080
      selector:
        app: frontend
        application: bank-of-anthos
        environment: development
        team: frontend
        tier: web
      type: LoadBalancer
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        application: bank-of-anthos
        environment: development
        team: frontend
        tier: web
      name: frontend
    spec:
      selector:
        matchLabels:
          app: frontend
          application: bank-of-anthos
          environment: development
          team: frontend
          tier: web
      template:
        metadata:
          annotations:
            proxy.istio.io/config: '{ "holdApplicationUntilProxyStarts": true }'
          labels:
            app: frontend
            application: bank-of-anthos
            environment: development
            team: frontend
            tier: web
        spec:
          containers:
            - env:
                - name: VERSION
                  value: v0.6.8
                - name: PORT
                  value: "8080"
                - name: ENABLE_TRACING
                  value: "true"
                - name: SCHEME
                  value: http
                - name: LOG_LEVEL
                  value: info
                - name: DEFAULT_USERNAME
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_LOGIN_USERNAME
                      name: demo-data-config
                - name: DEFAULT_PASSWORD
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_LOGIN_PASSWORD
                      name: demo-data-config
                - name: REGISTERED_OAUTH_CLIENT_ID
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_OAUTH_CLIENT_ID
                      name: oauth-config
                      optional: true
                - name: ALLOWED_OAUTH_REDIRECT_URI
                  valueFrom:
                    configMapKeyRef:
                      key: DEMO_OAUTH_REDIRECT_URI
                      name: oauth-config
                      optional: true
              envFrom:
                - configMapRef:
                    name: environment-config
                - configMapRef:
                    name: service-api-config
              image: us-central1-docker.pkg.dev/bank-of-anthos-ci/bank-of-anthos/frontend:v0.6.8@sha256:6c4b136dbc40d4b85e22f171c3d8bc5a9dea7fcb15e10577c0dfdf7774856c75
              livenessProbe:
                httpGet:
                  path: /ready
                  port: 8080
                initialDelaySeconds: 60
                periodSeconds: 15
                timeoutSeconds: 30
              name: front
              readinessProbe:
                httpGet:
                  path: /ready
                  port: 8080
                initialDelaySeconds: 10
                periodSeconds: 5
                timeoutSeconds: 10
              resources:
                limits:
                  cpu: 250m
                  memory: 128Mi
                requests:
                  cpu: 100m
                  memory: 64Mi
              securityContext:
                allowPrivilegeEscalation: false
                capabilities:
                  drop:
                    - all
                privileged: false
                readOnlyRootFilesystem: true
              volumeMounts:
                - mountPath: /tmp
                  name: tmp
                - mountPath: /tmp/.ssh
                  name: publickey
                  readOnly: true
          securityContext:
            fsGroup: 1000
            runAsGroup: 1000
            runAsNonRoot: true
            runAsUser: 1000
          serviceAccountName: bank-of-anthos
          terminationGracePeriodSeconds: 5
          volumes:
            - emptyDir: {}
              name: tmp
            - name: publickey
              secret:
                items:
                  - key: jwtRS256.key.pub
                    path: publickey
                secretName: jwt-key

    ‫manifest הזה של frontend בקשות שירות 100m של CPU ו-64Mi, ומגדיר מגבלות של 250m של CPU ו-128Mi לכל Pod.

    כשפורסים עומס עבודה באשכול Autopilot,‏ GKE מאמת את תצורת עומס העבודה מול הערכים המינימליים והמקסימליים המותרים עבור סוג המחשוב או תצורת החומרה שנבחרו (למשל, מעבדים גרפיים). אם מספר הבקשות שלכם נמוך מהמינימום, Autopilot משנה באופן אוטומטי את הגדרות העומס כדי שמספר הבקשות יהיה בטווח המותר. ההודעות האלה מציינות שהמגבלות המתאימות מוקצות באופן אוטומטי.

  4. ממתינים עד שה-Pods יהיו מוכנים. משתמשים בפקודה kubectl כדי לבדוק את הסטטוס של ה-Pods:

    kubectl get pods
    

    הערך בעמודה STATUS השתנה מ-Pending ל-ContainerCreating. יעברו כמה דקות עד שכל ה-Pods יהיו במצב Running, כמו שמוצג בפלט לדוגמה הבא:

    NAME                                  READY   STATUS    RESTARTS   AGE
    accounts-db-6f589464bc-6r7b7          1/1     Running   0          99s
    balancereader-797bf6d7c5-8xvp6        1/1     Running   0          99s
    contacts-769c4fb556-25pg2             1/1     Running   0          98s
    frontend-7c96b54f6b-zkdbz             1/1     Running   0          98s
    ledger-db-5b78474d4f-p6xcb            1/1     Running   0          98s
    ledgerwriter-84bf44b95d-65mqf         1/1     Running   0          97s
    loadgenerator-559667b6ff-4zsvb        1/1     Running   0          97s
    transactionhistory-5569754896-z94cn   1/1     Running   0          97s
    userservice-78dc876bff-pdhtl          1/1     Running   0          96s
    

    כשכל ה-Pods במצב Running, ממשיכים לשלב הבא. שוב, ייקח כמה דקות עד שכל ה-Pods יהיו במצב Running. נורמלי שחלק מה-Pods ידווחו על READY סטטוס של 0/1 עד ש-Cymbal Bank יהיה מוכן להצגת תנועה בצורה נכונה.

  5. שירות frontend חושף שרת HTTP להצגת אתר Cymbal Bank, כולל דף הכניסה, דף ההרשמה ודף הבית. אובייקט Ingress מגדיר כללים לניתוב תנועת HTTP(S) לאפליקציות שפועלות באשכול באמצעות מאזן עומסים מסוג HTTP(S). Google Cloud

    מקבלים את כתובת ה-IP החיצונית של frontend Ingress:

    kubectl get ingress frontend | awk '{print $4}'
    
  6. בחלון של דפדפן אינטרנט, פותחים את כתובת ה-IP שמוצגת בפלט של הפקודה kubectl get ingress כדי לגשת למופע של Cymbal Bank.

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

עיון בפריסה

אחרי שיוצרים אשכול GKE ופורסים עומסי עבודה, יכול להיות שיהיה צורך לשנות הגדרות או לבדוק את הביצועים של האפליקציה. בקטע הזה נסביר איך להשתמש במסוף Google Cloud כדי לבדוק את המשאבים שכלולים באשכול ובאפליקציית הדוגמה Cymbal Bank.

אשכולות

במדריך הזה יצרתם אשכול GKE אחד ופרסתם את עומסי העבודה של Cymbal Bank.

  1. בדף Google Kubernetes Engine במסוף Google Cloud , עוברים לדף Clusters.

    כניסה לדף Clusters

  2. לוחצים על אשכול scalable-apps החדש שפרסתם. בדף הפרטים של האשכול שנפתח, אפשר לראות פרטים בסיסיים על האשכול, וגם את הגדרות הרשת והאבטחה שלו. בקטע תכונות אפשר גם לראות אילו תכונות של GKE מופעלות באוסף הזה.

ניראות (observability)

אפשר לראות מדדים בסיסיים לגבי התקינות והביצועים של האשכול. במדריך הבא בסדרה הזו, נלמד איך להפעיל את השירות המנוהל של Google Cloud ל-Prometheus כדי לקבל ניטור וניראות פרטניים יותר.

  1. בוחרים את האשכול בדף Clusters של Google Kubernetes Engine במסוףGoogle Cloud , ואז עוברים לכרטיסייה Observability.

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

  3. כדי לראות יומנים שמוזרמים מהאשכול, לוחצים על הכרטיסייה יומנים. אפשר לסנן לפי Severity של היומנים, או ליצור מסננים משלכם כדי להציג מרחבי שמות, שירותים או פודים ספציפיים. בדומה לאזהרות ולאירועים של Pod, התצוגה המרוכזת הזו של יומני הרישום מהאשכול יכולה לעזור בניפוי באגים במהירות באמצעות Google Cloud המסוף.

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

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

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

עומסי עבודה

בדף GKE במסוף Google Cloud יש קטע Workloads שבו מוצגת תצוגה מצטברת של עומסי העבודה שפועלים בכל אשכולות GKE.

  1. בדף Google Kubernetes Engine במסוף Google Cloud , עוברים לדף Workloads.

    כניסה לדף Workloads

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

שירותים ו-Ingress

בתצוגה Services & Ingress מוצגים משאבי השירות וה-Ingress של הפרויקט. שירות חושף קבוצה של Pods כשירות רשת עם נקודת קצה, בעוד ש-Ingress מנהל גישה חיצונית לשירותים באשכול.

  1. בדף Google Kubernetes Engine במסוף Google Cloud , עוברים לדף Gateways, Services & Ingress.

    כניסה לדף Gateways, Services & Ingress

  2. כדי למצוא את ה-ingress של Cymbal Bank, לוחצים על הכרטיסייה Ingress ומחפשים את ה-ingress עם השם frontend. שער כניסה מנהל את התעבורה הנכנסת לאפליקציה. אפשר לראות מידע על מאזן העומסים, היציאות ונקודות הקצה החיצוניות.

  3. לוחצים על IP address (כתובת ה-IP) של הכניסה frontend, למשל 198.51.100.143:80. הכתובת הזו פותחת את ממשק האינטרנט של Cymbal Bank.

הסרת המשאבים

ההדרכות של Cymbal Bank מיועדות להשלמה אחת אחרי השנייה. במהלך ההתקדמות בסדרת ההדרכות, תוכלו לרכוש מיומנויות חדשות ולהשתמש במוצרים ובשירותים נוספים של Google Cloud Google.

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

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

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

במדריך הבא מוסבר איך עוקבים אחרי עומסי עבודה ב-GKE באמצעות השירות המנוהל של Google Cloud ל-Prometheus ו-Cloud Monitoring.