פריסת אפליקציה ב-Canary ליעד

במדריך למתחילים הזה נסביר איך להשתמש ב-Cloud Deploy כדי לפרוס תמונה של אפליקציה לדוגמה בפריסה של גרסה ראשונית (canary) ל-Google Kubernetes Engine או ל-Cloud Run. (אפשר גם להריץ פריסה של גרסה ראשונית (canary) באשכולות שמצורפים ל-GKE, אבל רק GKE ו-Cloud Run מוצגים במדריך למתחילים הזה.)

פריסה של גרסה ראשונית (canary) מחלקת את התעבורה בין גרסה שכבר נפרסה של האפליקציה לבין הגרסה החדשה. ב-Cloud Run, התעבורה מחולקת לפי האחוזים שאתם מגדירים בצינור העברת הנתונים. ‫GKE פורס את הגרסה החדשה לחלק מה-Pods. במדריך הזה, הפריסה מתבצעת קודם ל-50% מהמשתמשים ואז ל-100%.

במדריך למתחילים הזה יש רק יעד אחד (prod). לכן אנחנו יוצרים רק אשכול GKE אחד או שירות Cloud Run אחד להרצת האפליקציה.

במדריך למתחילים הזה תבצעו את הפעולות הבאות:

  1. יוצרים אשכול GKE אחד או מגדירים שירות Cloud Run אחד.

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

  2. יוצרים הגדרה של Skaffold ומניפסט של Kubernetes כדי לציין את קובץ האימג' של הקונטיינר (שנוצר מראש) שרוצים לפרוס.

  3. מגדירים את צינור עיבוד הנתונים לפריסה ואת יעד הפריסה ב-Cloud Deploy.

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

    בגרסה הראשונה הזו דילגנו על שלב הקנרי.

  5. אפשר לראות את צינור העברת התוכן ואת הגרסה במסוף Google Cloud .

  6. יוצרים גרסה שנייה, הפעם מריצים את שלב הקנרי כדי לפרוס את האפליקציה ל-50%.

  7. מקדמים את הגרסה כדי לפרוס אותה ב-100%.

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. התקינו את ה-CLI של Google Cloud.

  6. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  7. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  10. Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. התקינו את ה-CLI של Google Cloud.

  12. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  13. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  14. אם ה-CLI כבר מותקן, צריך לוודא שאתם מריצים את הגרסה העדכנית:

    gcloud components update
    

  15. מוודאים שלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine יש הרשאות מספיקות.

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

    1. קודם מוסיפים את התפקיד clouddeploy.jobRunner:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --role="roles/clouddeploy.jobRunner"
      

    2. מוסיפים את תפקיד המפתח לזמן הריצה הספציפי.
      • ב-GKE וב-GKE עם Gateway API:

        gcloud projects add-iam-policy-binding PROJECT_ID \
            --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
            --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
            --role="roles/container.developer"
        

      • ל-Cloud Run:

        gcloud projects add-iam-policy-binding PROJECT_ID \
            --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
            --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
            --role="roles/run.developer"
        

    3. מוסיפים את התפקיד iam.serviceAccountUser, שכולל את ההרשאה actAs לפריסה בסביבת זמן הריצה:

      gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --role="roles/iam.serviceAccountUser" \
          --project=PROJECT_ID
      

יצירת סביבת זמן ריצה

GKE

יוצרים אשכול GKE Autopilot אחד:

 gcloud container clusters create-auto canary-quickstart-cluster \
                  --project=PROJECT_ID \
                  --region=us-central1

GKE + Gateway API

  1. יצירת אשכול GKE אחד עם הגדרות מומלצות לתמיכה בשימוש ב-Istio:

    gcloud container clusters create canary-quickstart-cluster \
           --machine-type=n1-standard-1 \
           --num-nodes 4 \
           --region=us-central1 \
           --project=PROJECT_ID
    
  2. מקבלים את פרטי הכניסה לאשכול:

    gcloud container clusters get-credentials canary-quickstart-cluster \
           --project=PROJECT_ID \
           --region=us-central1
    
  3. אם ה-CRD של Kubernetes Gateway API לא נמצאים כבר באשכול, צריך להתקין אותם.

    kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v0.6.2/standard-install.yaml
    
  4. מפעילים את ההטמעה של בקר שער ב-Istio על ידי התקנת Istio.

    curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.17.2 sh - \
    && ./istio-1.17.2/bin/istioctl install --set profile=minimal -y
    

Cloud Run

אם אתם משתמשים ב-Cloud Run, אתם יכולים לדלג על הפקודה הזו. לא צריך לעשות כאן שום דבר.

הכנת התצורה של Skaffold ומניפסט האפליקציה

‫Cloud Deploy משתמש ב-Skaffold כדי לספק את הפרטים לגבי מה לפרוס ואיך לפרוס אותו בצורה נכונה אל היעד.

במדריך למתחילים הזה יוצרים קובץ skaffold.yaml שמזהה את המניפסט של Kubernetes או את הגדרת השירות של Cloud Run שצריך לפרוס.

  1. פותחים חלון טרמינל.

  2. יוצרים ספרייה חדשה ועוברים אליה.

    GKE

    mkdir deploy-canary-quickstart-gke
    cd deploy-canary-quickstart-gke
    

    GKE + Gateway API

    mkdir deploy-canary-quickstart-gke-gatewayapi
    cd deploy-canary-quickstart-gke-gatewayapi
    

    Cloud Run

    mkdir deploy-canary-quickstart-run
    cd deploy-canary-quickstart-run
    
  3. יוצרים קובץ בשם skaffold.yaml עם התוכן הבא:

    GKE

    apiVersion: skaffold/v4beta7
    kind: Config
    manifests:
      rawYaml:
      - kubernetes.yaml
    deploy:
      kubectl: {}
    

    GKE + Gateway API

    apiVersion: skaffold/v4beta7
    kind: Config
    manifests:
      rawYaml:
      - kubernetes.yaml
    deploy:
      kubectl: {}
    

    Cloud Run

    apiVersion: skaffold/v4beta7
    kind: Config
    manifests:
      rawYaml:
      - run.yaml
    deploy:
      cloudrun: {}
    

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

    מידע נוסף על הקובץ הזה מופיע בskaffold.yamlמאמרי העזרה.

  4. יוצרים את מניפסט האפליקציה.

    GKE

    יוצרים קובץ בשם kubernetes.yaml בספרייה deploy-canary-quickstart-gke עם התוכן הבא:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
      labels:
        app: my-app
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
          - name: nginx
            image: my-app-image
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
      namespace: default
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
    

    הקובץ הזה הוא מניפסט של Kubernetes, שמוחל על האשכול כדי לפרוס את האפליקציה. קובץ המניפסט הזה כולל את משאבי השירות והפריסה שנדרשים לפריסת קנרית, וגם את משאב ה-HTTPRoute ומשאב ה-Gateway שנדרשים לשימוש ב-Gateway API.

    קובץ האימג' של קונטיינר שרוצים לפרוס מוגדר כאן כפלייסהולדר, my-app-image, שמוחלף באימג' הספציפי כשיוצרים את הגרסה.

    GKE + Gateway API

    יוצרים קובץ בשם kubernetes.yaml בספרייה deploy-canary-quickstart-gke-gatewayapi עם התוכן הבא:

    kind: Gateway
    apiVersion: gateway.networking.k8s.io/v1beta1
    metadata:
      name: my-gateway
      annotations:
        networking.istio.io/service-type: "ClusterIP"
    spec:
      gatewayClassName: istio
      listeners:
      - name: default
        hostname: "*.example.com"
        port: 80
        protocol: HTTP
        allowedRoutes:
          namespaces:
            from: All
    ---
    kind: HTTPRoute
    apiVersion: gateway.networking.k8s.io/v1beta1
    metadata:
      name: my-httproute
    spec:
      parentRefs:
      - kind: Gateway
        name: my-gateway
      hostnames:
      - "test.example.com"
      rules:
      - backendRefs:
        - name: my-service
          port: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app: my-app
      ports:
      - name: tcp-port
        protocol: TCP
        port: 80
        targetPort: 8080
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
      labels:
        app: my-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
          - name: nginx
            image: my-app-image
    

    הקובץ הזה הוא מניפסט של Kubernetes, שמוחל על האשכול כדי לפרוס את האפליקציה. קובץ המניפסט הזה כולל את משאבי השירות והפריסה שנדרשים לפריסת קנרית, וגם את משאב ה-HTTPRoute ומשאב ה-Gateway שנדרשים לשימוש ב-Gateway API.

    קובץ האימג' של קונטיינר שרוצים לפרוס מוגדר כאן כפלייסהולדר, my-app-image, שמוחלף באימג' הספציפי כשיוצרים את הגרסה.

    Cloud Run

    יוצרים קובץ בשם run.yaml בספרייה deploy-canary-quickstart-run עם התוכן הבא:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: my-canary-run-service
    spec:
      template:
        spec:
          containers:
          - image: my-app-image
    

    הקובץ הזה הוא הגדרה בסיסית של שירות Cloud Run, שמוחלת בזמן הפריסה כדי ליצור את השירות ב-Cloud Run. קובץ האימג' של הקונטיינר לפריסה מוגדר כאן כ-placeholder, ‏ my-app-image, שמוחלף באימג' הספציפי כשיוצרים את הגרסה.

יצירת פייפליין של משלוחים ויעדים

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

GKE

יוצרים קובץ בשם clouddeploy.yaml בספרייה deploy-canary-quickstart-gke עם התוכן הבא:

apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
  name: my-canary-demo-app-1
description: main application pipeline
serialPipeline:
  stages:
  - targetId: prod
    profiles: []
    strategy:
      canary:
        runtimeConfig:
          kubernetes:
            serviceNetworking:
              service: "my-service"
              deployment: "my-deployment"
        canaryDeployment:
          percentages: [50]
          verify: false
---
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
  name: prod
description: prod GKE cluster
gke:
 cluster: projects/PROJECT_ID/locations/us-central1/clusters/canary-quickstart-cluster

GKE + Gateway API

יוצרים קובץ בשם clouddeploy.yaml בספרייה deploy-canary-quickstart-gke-gatewayapi עם התוכן הבא:

apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
  name: my-canary-demo-app-1
description: main application pipeline
serialPipeline:
  stages:
  - targetId: prod
    profiles: []
    strategy:
      canary:
        runtimeConfig:
          kubernetes:
            gatewayServiceMesh:
              httpRoute: "my-httproute"
              service: "my-service"
              deployment: "my-deployment"
        canaryDeployment:
          percentages: [50]
          verify: false
---
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
  name: prod
description: prod GKE cluster
gke:
 cluster: projects/PROJECT_ID/locations/us-central1/clusters/canary-quickstart-cluster

Cloud Run

יוצרים קובץ בשם clouddeploy.yaml בספרייה deploy-canary-quickstart-run עם התוכן הבא:

apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
  name: my-canary-demo-app-1
description: main application pipeline
serialPipeline:
  stages:
  - targetId: prod
    profiles: []
    strategy:
      canary:
        runtimeConfig:
          cloudRun:
            automaticTrafficControl: true
        canaryDeployment:
          percentages: [50]
          verify: false
---
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
  name: prod
description: prod Run Service
run:
  location: projects/PROJECT_ID/locations/us-central1
  1. רושמים את צינור עיבוד הנתונים ואת היעדים בשירות Cloud Deploy:

    gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
    

    עכשיו יש לכם פייפליין, עם יעד אחד שהוגדר לאסטרטגיית פריסה של גרסה ראשונית (canary).

  2. מאשרים את הצנרת ואת היעדים:

    במסוף Google Cloud , נכנסים לדף Delivery pipelines של Cloud Deploy כדי לראות רשימה של צינורות העברת הנתונים שזמינים לכם.

    פתיחת הדף Delivery pipelines

    צינור העברת הנתונים שיצרתם מוצג, והיעד שהגדרתם מופיע בעמודה יעדים.

    הדמיה של צינור העברת נתונים במסוף Google Cloud

יצירת גרסה

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

כדי ליצור משאב release שמייצג את קובץ האימג' של הקונטיינר לפריסה, מריצים את הפקודה הבאה מהספרייה deploy-canary-quickstart-gke, deploy-canary-quickstart-gke-gatewayapi או deploy-canary-quickstart-run:

GKE

 gcloud deploy releases create test-release-001 \
   --project=PROJECT_ID \
   --region=us-central1 \
   --delivery-pipeline=my-canary-demo-app-1 \
   --images=my-app-image=gcr.io/google-containers/nginx@sha256:f49a843c290594dcf4d193535d1f4ba8af7d56cea2cf79d1e9554f077f1e7aaa

GKE + Gateway API

 gcloud deploy releases create test-release-001 \
   --project=PROJECT_ID \
   --region=us-central1 \
   --delivery-pipeline=my-canary-demo-app-1 \
   --images=my-app-image=gcr.io/google-containers/nginx@sha256:f49a843c290594dcf4d193535d1f4ba8af7d56cea2cf79d1e9554f077f1e7aaa

Cloud Run

 gcloud deploy releases create test-release-001 \
   --project=PROJECT_ID \
   --region=us-central1 \
   --delivery-pipeline=my-canary-demo-app-1 \
   --images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a

שימו לב לדגל --images=, שמשמש להחלפת ה-placeholder ‏ (my-app-image) במניפסט או בהגדרת השירות בתמונה הספציפית שעומדת בדרישות SHA. ‫Google ממליצה ליצור תבניות של קובצי המניפסט בדרך הזו, ולהשתמש בשמות תמונות שעומדים בדרישות של SHA כשיוצרים גרסת הפצה.

כשיוצרים גרסת הפצה, Cloud Deploy יוצר באופן אוטומטי גם משאב של פריסה הדרגתית, כדי לפרוס באופן מיידי ליעד אחד, prod.

אנחנו מדלגים לשלב היציב

בגרסה הראשונה הזו, אנחנו מדלגים על שלב הקנרי ופורסים ל-100% (שלב יציב). הסיבה לכך היא שהאפליקציה לא נפרסה בעבר, ולכן אין אפשרות לחשב 50% מה-pods (ב-GKE) או את חלוקת התנועה בשירות (ב-Cloud Run). ה-pods‏ (GKE) או התיקונים (Cloud Run) עדיין לא קיימים.

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

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

הצגת הגרסה במסוף Google Cloud

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

  1. במסוף Google Cloud , נכנסים לדף Delivery pipelines של Cloud Deploy כדי לראות את צינור אספקת התוכן my-canary-demo-app-1.

    פתיחת הדף Delivery pipelines

  2. לוחצים על השם של צינור העברת הנתונים 'my-canary-demo-app-1'.

    הוויזואליזציה של הצינור מראה את סטטוס הפריסה של האפליקציה. בגלל שיש רק שלב אחד בצינור, בתצוגה החזותית מוצג רק צומת אחד.

    הדמיה של צינור העברת נתונים במסוף Google Cloud

    פריט התוכן יופיע בכרטיסייה פריטי תוכן בקטע פרטים על צינור ההפצה.

  3. לוחצים על שם הגרסה, test-release-001.

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

    השקות במסוף Google Cloud

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

התקדמות בשלב ההשקה

אחרי הגרסה הראשונה, דילגנו על שלב ה-canary, וההשקה ממתינה לתחילת השלב 'יציב', שבו האפליקציה נפרסת ב-100%:

  1. בתצוגה החזותית של הצינור, לוחצים על העברה לגרסה יציבה.

  2. כשמופיעה בקשה, לוחצים על המשך כדי לאשר.

אחרי כמה דקות, ההשקה נמצאת בשלב 'יציב', והאפליקציה נפרסת ב-100%.

תהליך השליחה בשלב היציב

ביצוע פריסה של גרסה ראשונית (canary)

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

  1. כדי ליצור release חדש, מריצים את הפקודה הבאה מהספרייה deploy-canary-quickstart-gke, deploy-canary-quickstart-gke-gatewayapi או deploy-canary-quickstart-run:

    GKE

    gcloud deploy releases create test-release-002 \
      --project=PROJECT_ID \
      --region=us-central1 \
      --delivery-pipeline=my-canary-demo-app-1 \
      --images=my-app-image=gcr.io/google-containers/nginx@sha256:f49a843c290594dcf4d193535d1f4ba8af7d56cea2cf79d1e9554f077f1e7aaa
    

    GKE + Gateway API

    gcloud deploy releases create test-release-002 \
      --project=PROJECT_ID \
      --region=us-central1 \
      --delivery-pipeline=my-canary-demo-app-1 \
      --images=my-app-image=gcr.io/google-containers/nginx@sha256:f49a843c290594dcf4d193535d1f4ba8af7d56cea2cf79d1e9554f077f1e7aaa
    

    Cloud Run

    gcloud deploy releases create test-release-002 \
      --project=PROJECT_ID \
      --region=us-central1 \
      --delivery-pipeline=my-canary-demo-app-1 \
      --images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
    

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

    צינור העברת נתונים שמתחיל בשלב הגישוש

    כששלב ההשקה הראשון מסתיים, ההשקה עוברת לשלב הקנרי:

    תצוגה חזותית של צינור העברת נתונים במסוף Google Cloud , עם אפליקציה שנפרסה ב-50%

    המשמעות היא שהאפליקציה נפרסה עכשיו ל-50%. ב-GKE שמבוסס על serviceNetworking, הוא נפרס למחצית מה-pods. תנועה מ-GKE ומ-Cloud Run שמבוססת על Gateway API מוקצה ל-50%.

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

    הפעולה הזו מעבירה את ההשקה לשלב 'יציב', ומפיצה את האפליקציה ל-100%.

    תהליך השליחה בשלב יציב, נפרס ל-100%

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

  1. מחיקת אשכול canary-quickstart-cluster (GKE בלבד):

    gcloud container clusters delete canary-quickstart-cluster --region=us-central1 --project=PROJECT_ID
    
  2. מחיקת שירות my-canary-run-service (ב-Cloud Run בלבד):

    gcloud run services delete my-canary-run-service --region=us-central1 --project=PROJECT_ID
    
  3. מחיקת צינור העברת הנתונים, היעד וכל משאבי ההפצה וההשקה:

    gcloud deploy delete --file=clouddeploy.yaml --force --region=us-central1 --project=PROJECT_ID
    
  4. מוחקים את הקטגוריות של Cloud Storage שנוצרו על ידי Cloud Deploy.

    אחד מסתיים ב-_clouddeploy והשני הוא [region].deploy-artifacts.[project].appspot.com.

    פתיחת הדף Cloud Storage browser

סיימתם את המדריך למתחילים!

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