התקנה של AlloyDB Omni ב-Kubernetes

בחירת גרסה של מאמר העזרה:

בדף הזה תוכלו לקרוא סקירה כללית על AlloyDB Omni Kubernetes operator, עם הוראות לשימוש בו כדי לפרוס את AlloyDB Omni באשכול Kubernetes. בדף הזה אנחנו מניחים שיש לכם היכרות בסיסית עם הפעולה של Kubernetes.

הוראות להתקנת AlloyDB Omni בסביבת Linux רגילה מופיעות במאמר התקנת AlloyDB Omni.

סקירה כללית

כדי לפרוס את AlloyDB Omni באשכול Kubernetes, צריך להתקין את AlloyDB Omni Operator, תוסף ל-Kubernetes API שסופק על ידי Google.

כדי להגדיר ולשלוט באשכול מסדי נתונים של AlloyDB Omni שמבוסס על Kubernetes, משייכים קובצי מניפסט הצהרתיים לכלי kubectl, בדיוק כמו בכל פריסה אחרת שמבוססת על Kubernetes. אתם לא משתמשים ב-AlloyDB Omni CLI, שמיועד לפריסות במכונות Linux בודדות ולא באשכולות Kubernetes.

תמונת הבסיס

החל מגרסה 1.5.0, תמונות Kubernetes של AlloyDB Omni operator מבוססות על Universal Base Image‏ (UBI) 9 של Red Hat. המעבר הזה משפר את האבטחה, העקביות והתאימות של הפריסות שלכם.

תאימות ל-AlloyDB Omni operator 1.1.0 (ומגרסאות מאוחרות יותר)

גרסה 1.1.0 של AlloyDB Omni Operator לא תואמת לגרסאות 15.5.3 ו-15.5.4 של AlloyDB Omni. אם אתם משתמשים באחת מהגרסאות האלה של AlloyDB Omni, יכול להיות שתקבלו שגיאה דומה לזו שמופיעה בהמשך:

Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3

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

לפני שמתקינים את AlloyDB Omni באשכול Kubernetes עם AlloyDB Omni operator, צריך לוודא שאתם עומדים בדרישות הבאות.

בחירת אפשרות להורדה או להתקנה

כשמנהלים עומסי עבודה באשכול Kubernetes כללי, אפשר להשתמש ב-Helm או ב-OLM. ‫Helm הוא מנהל חבילות אוניברסלי שמשתמש בתרשימי Helm כדי להתקין כל עומס עבודה, כולל אופרטורים, בכל הווריאציות של Kubernetes. ‫OLM – הבחירה המועדפת והסטנדרטית בפלטפורמות OpenShift – מנהל את מחזורי החיים של האופרטורים באמצעות חבילות OLM ייעודיות.

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

מדיה מיקומי הורדה ומדריכי התקנה פריסה ב
מפעיל AlloyDB Omni עם תרשים Helm התקנה של AlloyDB Omni ב-Kubernetes סביבת קונטיינרים של Kubernetes משלכם – למשל, בארגון, בענן ציבורי, ב-GKE, ב-Amazon EKS וב-Azure AKS.

כדאי לדעת: אם כלי ה-CD (פיתוח רציף) שלכם משולבים עם Helm, כדאי להשתמש באפשרות הזו.
מפעיל AlloyDB Omni עם חבילת OLM OperatorHub.io סביבת קונטיינר Kubernetes משלכם – למשל, מקומית, בענן ציבורי, ב-Google Kubernetes Engine, ב-Amazon EKS וב-Azure AKS.

כדי להשתמש בחבילת OLM, צריך להתקין את OLM באשכול Kubernetes לפני שמתקינים את האופרטור. מידע נוסף זמין בכתובת olm.operatorframework.io.

כדאי לדעת: אם כלי ה-CD (Continuous Delivery, אספקה רציפה) שלכם כבר משתמשים ב-OLM, בוחרים באפשרות הזו.
OpenShift Operator עם חבילת OLM מסוף האינטרנט של Openshift Container Platform סביבת OpenShift

‫OpenShift, גרסה של Kubernetes, משתמשת ב-OLM כשיטה סטנדרטית ומובנית לאריזה ולפריסה של אופרטורים.

אימות הגישה

ודאו שיש לכם גישה ל:

עמידה בדרישות החומרה והתוכנה

לכל צומת באשכול Kubernetes צריכים להיות:

  • לפחות שני מעבדי x86 או AMD64.
  • זיכרון RAM בנפח 8GB לפחות.
  • גרסת ליבת Linux‏ 4.18 ואילך.
  • הופעלה קבוצת בקרה (cgroup) v2.

התקנת האופרטור של AlloyDB Omni

אפשר להתקין את האופרטור AlloyDB Omni באמצעות שיטות שונות, כולל Helm ו-Operator Lifecycle Manager‏ (OLM).

Helm

כדי להתקין את האופרטור AlloyDB Omni, מבצעים את השלבים הבאים:

  1. מגדירים את משתני הסביבה הבאים:
    export HELM_PATH=$(curl https://storage.googleapis.com/alloydb-omni-operator/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. מורידים את האופרטור של AlloyDB Omni:
    curl -X GET -o "./alloydbomni-operator-${OPERATOR_VERSION}.tgz" "https://storage.googleapis.com/storage/v1/b/alloydb-omni-operator/o/$(echo ${HELM_PATH} | sed 's/\//%2F/g')?alt=media"
    
  3. מתקינים את האופרטור של AlloyDB Omni:
    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    אם ההתקנה בוצעה בהצלחה, הפלט הבא יוצג:

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
  4. כדי לנקות, מוחקים את קובץ ההתקנה של AlloyDB Omni operator שהורד. שם הקובץ הוא alloydbomni-operator-VERSION_NUMBER.tgz, והוא נמצא בספריית העבודה הנוכחית.

OLM

כדי להתקין את האופרטור של AlloyDB Omni באמצעות Operator Lifecycle Manager, מבצעים את השלבים הבאים:

  1. נכנסים לכתובת https://operatorhub.io/operator/alloydb-omni-operator.

  2. לוחצים על הלחצן התקנה כדי להציג את ההוראות.

  3. משלימים את כל שלבי ההתקנה.

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

    kubectl create ns NAMESPACE
    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: fleet-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: fleet-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - fleet-webhook-service.alloydb-omni-system.svc
      - fleet-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: fleet-selfsigned-issuer
      secretName: fleet-webhook-server-cert
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: local-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: local-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - local-webhook-service.alloydb-omni-system.svc
      - local-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: local-selfsigned-issuer
      secretName: local-webhook-server-cert
    EOF

    מחליפים את NAMESPACE במרחב השמות שבו נמצא האופרטור, לדוגמה, alloydb-omni-system.

OLM

כדי להתקין את האופרטור AlloyDB Omni בסביבת Red Hat OpenShift באמצעות OLM, נכנסים למסוף האינטרנט של Red Hat OpenShift.

  1. בוחרים באפשרות Operators (אופרטורים) > OperatorHub (מרכז האופרטורים).

  2. מחפשים את האופרטור AlloyDB Omni באמצעות שדה החיפוש.

    מרכז AlloyDB Omni Operator
    איור 1: האופרטור של AlloyDB Omni ב-OperatorHub
  3. בחלונית ההפעלה של AlloyDB Omni, לוחצים על Install (התקנה).

    חלונית AlloyDB Omni Operator
    איור 2: חלונית ההפעלה של AlloyDB Omni
  4. השלב הזה הוא אופציונלי אם משתמשים בגורמים מנפיקים של אישורים בהתאמה אישית. אחרת, צריך להתקין את הנפקנים של אישורי ברירת המחדל על ידי הרצת הפקודות הבאות:

    kubectl create ns NAMESPACE
    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: fleet-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: fleet-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - fleet-webhook-service.alloydb-omni-system.svc
      - fleet-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: fleet-selfsigned-issuer
      secretName: fleet-webhook-server-cert
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: local-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: local-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - local-webhook-service.alloydb-omni-system.svc
      - local-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: local-selfsigned-issuer
      secretName: local-webhook-server-cert
    EOF

    מחליפים את NAMESPACE במרחב השמות שבו נמצא האופרטור, לדוגמה, alloydb-omni-system.

הגדרת אחסון שמקושר ל-GDC

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

מידע נוסף על הגדרת Symcloud Storage כסוג האחסון שמוגדר כברירת מחדל מופיע במאמר הגדרת Symcloud Storage כסוג האחסון שמוגדר כברירת מחדל.

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

יצירת אשכול של מסד נתונים

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

כדי ליצור אשכול מסדי נתונים של AlloyDB Omni, פועלים לפי השלבים הבאים:

  1. יוצרים מרחב שמות ייעודי לאשכול מסדי הנתונים. כך משפרים את הבידוד והאבטחה.

    kubectl create namespace DB_CLUSTER_NAMESPACE
    

    מחליפים את DB_CLUSTER_NAMESPACE במרחב השמות שבו רוצים ליצור את אשכול מסדי הנתונים – לדוגמה, my-db-cluster-namespace.

  2. יוצרים קובץ מניפסט בשם db-cluster.yaml עם התוכן הבא. קובץ המניפסט הזה מגדיר גם את הסוד של סיסמת מסד הנתונים וגם את משאב DBCluster עצמו.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DB_CLUSTER_NAME
      namespace: DB_CLUSTER_NAMESPACE
    type: Opaque
    data:
      DB_CLUSTER_NAME: "ENCODED_PASSWORD"
    ---
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
      namespace: DB_CLUSTER_NAMESPACE
    spec:
      databaseVersion: "17.5.0"
      # Optional: Specify the base OS type for the database image.
      # Valid values are "Debian" and "UBI9".
      # If not specified, the operator defaults to "Debian" for databaseVersion < 16.9.0
      # and "UBI9" for databaseVersion 16.9.0 or later.
      # databaseImageOSType: "OS_TYPE"
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DB_CLUSTER_NAME
        resources:
          cpu: CPU_COUNT
          memory: MEMORY_SIZE
          disks:
          - name: DataDisk
            size: DISK_SIZE
    

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

    • DB_CLUSTER_NAME: השם של אשכול מסד הנתונים הזה, לדוגמה my-db-cluster.

    • OS_TYPE: אופציונלי. סוג מערכת ההפעלה הבסיסית של תמונת מסד הנתונים. הערכים החוקיים הם Debian ו-UBI9. אם לא מציינים את האפשרות הזו, האופרטור מגדיר אותה באופן אוטומטי ל-Debian אם databaseVersion קטן מ-16.9.0, ול-UBI9 אם databaseVersion הוא 16.9.0 או מאוחר יותר.

    • ENCODED_PASSWORD: הסיסמה להתחברות למסד הנתונים עבור תפקיד המשתמש שמוגדר כברירת מחדל postgres, בקידוד כמחרוזת base64. לדוגמה, Q2hhbmdlTWUxMjM= עבור ChangeMe123.

    • CPU_COUNT: מספר המעבדים הזמינים לכל מופע של מסד נתונים באשכול מסדי הנתונים הזה.

    • MEMORY_SIZE: כמות הזיכרון לכל מופע של מסד נתונים באשכול מסדי הנתונים הזה. מומלץ להגדיר את הערך הזה ל-8 גיגה-בייט לכל מעבד. לדוגמה, אם הגדרתם את cpu ל-2 קודם במניפסט הזה, מומלץ להגדיר את memory ל-16Gi.

    • DISK_SIZE: גודל הדיסק לכל מופע של מסד נתונים, לדוגמה 10Gi.

  3. מחילים את המניפסט על אשכול Kubernetes:

    kubectl apply -f db-cluster.yaml
    

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

מידע נוסף על מניפסטים של Kubernetes ועל אופן היישום שלהם זמין במאמר בנושא ניהול משאבים.

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