יצירת הגדרת תרשים Helm ל-Spanner Omni

במאמר הזה נסביר איך ליצור הגדרת Helm ל-Spanner Omni ב-Kubernetes.

סקירה כללית

אתם מגדירים תרשימי Helm לפריסות של Spanner Omni ב-Kubernetes. כדאי לעיין באפשרויות ההגדרה הזמינות כדי להתאים אישית את הפריסה. תבנית ה-Helm כוללת את המאפיין global.platform, שמגדיר ערכי ברירת מחדל להגדרות מרכזיות כמו StorageClass והערות שירות על סמך הפלטפורמה שנבחרה.

הסבר על האופן שבו תרשים Helm מחיל ערכי ברירת מחדל ספציפיים לפלטפורמה ב-Google Kubernetes Engine‏ (GKE) וב-Amazon Elastic Kubernetes Service‏ (Amazon EKS). הגדרות ברירת המחדל האלה כוללות הגדרות כמו סוגי אחסון, מיקומי נתונים והערות שירות. אפשר להתאים אישית את ההגדרות האלה בהתאם לדרישות הפריסה הספציפיות שלכם לכל פלטפורמה.

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

אם עדיין לא עשיתם זאת, מתקינים את Helm.

הכנת הגדרות של תרשים Helm

כדי ליצור הגדרת תרשים Helm:

  1. משתמשים בפקודה helm show values כדי לעיין באפשרויות ההגדרה שזמינות ליצירת פריסה:

    helm show values oci://us-docker.pkg.dev/spanner-omni/charts/spanner-omni --version 0.2.0
    

    במסמכי התיעוד ליצירת פריסה נעשה שימוש בדגל --set כדי לציין אפשרויות שונות. אפשר גם לציין את האפשרויות האלה בקובץ YAML ולהשתמש בדגל -f בפקודה helm. כדי לפשט את הפריסה, תבנית Helm כוללת את המאפיין global.platform, שקובע את ערכי ברירת המחדל של StorageClass, הערות השירות והגדרות אחרות על סמך הפלטפורמה.

  2. בטבלה הבאה מפורטים ערכי ברירת המחדל הספציפיים לפלטפורמה עבור Google Kubernetes Engine‏ (GKE) ו-Amazon EKS:

מאפיין (property) ברירת מחדל פלטפורמה
GKE ‫Amazon EKS
storageClasses - name: my_sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
- name: hyperdisk-balanced-rwo
provisioner: pd.csi.storage.gke.io
parameters:
  type: hyperdisk-balanced
- name: aws-gp3
provisioner: ebs.csi.aws.com
parameters:
  type: gp3
- name: aws-standard
provisioner: ebs.csi.aws.com
parameters:
  type: standard
locations - name: us
namespace: ""
zones:
- name: "us-a"
shortName: "a"
replicas: 1
rootServers: 1
singleServer: true
- name: "us-b"
shortName: "b"
- name: "us-c"
shortName: "c"
- name: us-east1
zones:
- name: us-east1-b
shortName: a
- name: us-east1-c
shortName: b
- name: us-east1-d
shortName: c
- name: us-east-1
zones:
- name: us-east-1a
shortName: a
- name: us-east-1c
shortName: b
- name: us-east-1d
shortName: c
dataStorageClass <default> premium-rwo aws-gp3
logsStorageClass <default> standard-rwo aws-standard
serviceAnnotations null networking.gke.io/load-balancer-type: "Internal"
networking.gke.io/internal-load-balancer-allow-global-access: "true"
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"

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

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