שיטות מומלצות לשימוש ב-Deployment Manager

בדף הזה מוסברות השיטות המומלצות ליצירת פריסות באמצעות Google Cloud Deployment Manager. הדף הזה מיועד למשתמשים שמכירים את Deployment Manager. לא נסביר כאן איך להשתמש ב-Deployment Manager.

אם אתם משתמשים חדשים ב-Deployment Manager, אנחנו ממליצים לנסות את המדריך למתחילים

ניהול משאבים

❑  
אחרי שיוצרים משאב כחלק מפריסה, אפשר להשתמש ב-Deployment Manager אם צריך לשנות את המשאב. אם משנים משאב בלי להשתמש ב-Deployment Manager, למשל באמצעות Google Cloud המסוף או gcloud, יכול להיות שיוצגו שגיאות אם תנסו לשנות את המשאב בפריסה המקורית.

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

  1. בהגדרות הפריסה, מוחקים את ההגדרה של המשאב.
  2. מעדכנים את הפריסה, ובפקודת gcloud מוסיפים --delete-policy ABANDON. המשאב לא משויך יותר לפריסה, ואז אפשר לשנות את המשאב באמצעות Google Cloud המסוף או gcloud.
❑  
אם יש לכם מכונות Compute Engine בפריסה ואתם רוצים לצרף דיסקים קשיחים למכונות, כדאי להגדיר את הדיסק בנפרד מהמכונה כדי שתוכלו לנהל אותו בקלות. לדוגמה, בפריסה שלמטה, הדיסק example-disk מוגדר בנפרד מהמכונה example-instance. כדי לצרף את הדיסק, בהגדרה יש הפניה לדיסק:
    resources:
    # instance
    - name: example-instance
      type: compute.v1.instance
      properties:
        disks:
          - type: PERSISTENT
            source:$(ref.example-disk.selfLink)
   # disk
   - name: example-disk
     type: compute.v1.disk
     properties:
       zone: us-central1-a
       sizeGb: 10
       type: ...
    
❑  

כדי ליצור ולנהל אשכולות פרטיים של Google Kubernetes Engine‏ (GKE) באמצעות Deployment Manager, צריך להגדיר את האפשרויות הבאות privateClusterConfig ו- ipAllocationPolicy בפריסה.

     privateClusterConfig:
        enablePrivateNodes: true
        enablePrivateEndpoint: true
        #  Configure the IP range for the hosted master network
        masterIpv4CidrBlock: IP_RANGE
      ipAllocationPolicy:
        useIpAliases: true
        createSubnetwork: true
    

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

הכללת פרטי כניסה בפריסה

❑  
‫Deployment Manager מצנזר חלק מהשדות שקשורים לפרטי הכניסה ממאפיינים בהגדרות ה-YAML. הצנזורה הזו מתבצעת על סמך המפתח של הנכס. בדוגמה הבאה מוצגת צנזורה כזו:
    # Config provided to Deployment Manager
    resources:
    - name: example-resource
      type: gcp-types/service-v1:sample-type-with-password
      properties:
        zone: us-central1-a
        username: test-user
        password: hunter2

   # Config as surfaced by Deployment Manager
   resources:
    - name: example-resource
      type: gcp-types/service-v1:sample-type-with-password
      properties:
        zone: us-central1-a
        username: test-user
        password: (redacted)
    
❑  
אם כוללים את פרטי הכניסה בתבנית Jinja או Python לפריסה, פרטי הכניסה מצונזרים מקובצי הפריסה והפריסה המורחבת שנוצרים, אבל הם עדיין גלויים בקובץ הייבוא המקורי. לכן, מומלץ מאוד למקם את כל פרטי הכניסה שרוצים לשמור בסוד בהגדרת ה-YAML ברמה העליונה. אפשר להפנות אליהם משם באמצעות מאפייני תבנית.
❑  
פרטי כניסה שכלולים בצמד מפתח/ערך בקובץ YAML או ברשימת פריטים לא יוסתרו, כמו בדוגמה הבאה. לכן, אנחנו ממליצים מאוד לא לספק פרטי כניסה ל-Deployment Manager כצמדי מפתח/ערך בקובצי YAML או ברשימות של פריטים.
    # Not a valid instance configuration, used solely for demonstration
    resources:
    - name: example-resource
      type: gcp-types/compute-v1:instances
      properties:
        zone: us-central1-a
        disks:
        - autoDelete: true
          boot: