התקנה באמצעות תוסף GKE

בדף הזה מוסבר איך להתקין את Config Connector באשכול Google Kubernetes Engine ‏ (GKE) באמצעות התוסף GKE.

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

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

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

  • מפעילים את ממשק ה-API של Google Kubernetes Engine.
  • הפעלת Google Kubernetes Engine API
  • כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

התקנת התוסף Config Connector

כדי להשתמש בתוסף Config Connector, צריך ליצור אשכול GKE חדש או להפעיל אותו באשכול קיים. אחרי שמתקינים את התוסף Config Connector, מגדירים את ההתקנה של Config Connector באמצעות חשבונות השירות של Google ומרחבי השמות.

דרישות

יש דרישות מסוימות לתוסף Config Connector:

הגדרת אשכול GKE

אפשר להשתמש בתוסף Config Connector באשכול חדש או באשכול קיים.

יצירת אשכול חדש עם התוסף Config Connector מופעל

אפשר ליצור אשכול GKE באמצעות ה-CLI של gcloud או מסוףGoogle Cloud .

gcloud

כדי ליצור אשכול באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:

gcloud container clusters create CLUSTER_NAME \
    --release-channel CHANNEL \
    --addons ConfigConnector \
    --workload-pool=PROJECT_ID.svc.id.goog \
    --logging=SYSTEM \
    --monitoring=SYSTEM

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

  • CLUSTER_NAME בשם של אשכול GKE.
  • ‫CHANNEL עם ערוץ הפצה של GKE,‏ rapid ו-regular נתמכים.
  • PROJECT_ID במזהה הפרויקט ב- Google Cloud .

מסוף Google Cloud

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

  1. נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .

    מעבר אל יצירת אשכול Kubernetes

  2. בקטע Cluster basics (הגדרות בסיסיות של האשכול), מציינים Name (שם) ומיקום לאשכול.

  3. בחלונית הניווט, לוחצים על הגדרות מתקדמות.

  4. בשורה Workload Identity, לוחצים על Edit configuration, מסמנים את התיבה Enable Workload Identity ואז לוחצים על Save.

  5. בשורה Config Connector, מסמנים את התיבה Quick enable (הפעלה מהירה).

  6. אופציונלי: מגדירים את שאר האשכול לפי הצורך.

  7. לוחצים על יצירה.

אחרי שיוצרים את האשכול, עוברים אל יצירת זהות.

הפעלת התוסף Config Connector באשכול קיים

אפשר להפעיל את התוסף Config Connector באשכול GKE קיים באמצעות gcloud או מסוף Google Cloud .

דרישות מוקדמות

כדי להפעיל את התוסף Config Connector באשכול קיים, צריך לוודא שמתקיימים התנאים הבאים:

  • צריך אשכול שעומד בדרישות של התוסף Config Connector.
  • מגדירים איחוד זהויות של עומסי עבודה ל-GKE באשכול שבו רוצים להתקין את Config Connector.

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

gcloud container node-pools update NODE_POOL \
    --workload-metadata=GKE_METADATA \
    --cluster CLUSTER_NAME

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

  • ‫NODE_POOL בשם של מאגר הצמתים
  • ‫CLUSTER_NAME בשם של האשכול
הפעלת התוסף Config Connector

אפשר להפעיל את התוסף Config Connector באשכול GKE קיים באמצעות Google Cloud CLI או Google Cloud המסוף.

gcloud

כדי להפעיל את התוסף Config Connector באשכול GKE קיים, משתמשים ב-Google Cloud CLI:

gcloud container clusters update CLUSTER_NAME \
    --update-addons ConfigConnector=ENABLED

מחליפים את CLUSTER_NAME בשם של אשכול GKE.

מסוף Google Cloud

  1. עוברים לתפריט Google Kubernetes Engine במסוף Google Cloud .

    מעבר לתפריט Google Kubernetes Engine

  2. בוחרים את האשכול שרוצים להתקין בו את Config Connector. יופיע הדף Cluster Details.

  3. בקטע Features (תכונות), מאתרים את השורה Config Connector ולוחצים על Edit (עריכה).

  4. מסמנים את התיבה Enable Config Connector (הפעלת Config Connector) ולוחצים על Save Changes (שמירת השינויים) כדי לעדכן את האשכול.

יצירת זהות

‫Config Connector יוצר ומנהל Google Cloud משאבים באמצעות אימות עם חשבון שירות של ניהול זהויות והרשאות גישה (IAM) ושימוש באיחוד זהויות של עומסי עבודה ל-GKE כדי לקשר חשבונות שירות של IAM עם חשבונות שירות של Kubernetes.

כדי ליצור את הזהות, מבצעים את השלבים הבאים:

  1. יוצרים חשבון שירות ב-IAM. אם רוצים להשתמש בחשבון שירות קיים, אפשר להשתמש בו ולדלג על השלב הזה:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    

    מחליפים את הערך SERVICE_ACCOUNT_NAME בשם שרוצים לתת לחשבון השירות.

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

  2. נותנים לחשבון השירות ב-IAM הרשאות מורחבות בפרויקט:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \
      --role="roles/editor"
    

    מחליפים את PROJECT_ID במזהה הפרויקט.

  3. יוצרים קשר בין מדיניות IAM לבין חשבון השירות של IAM וחשבון השירות המוגדר מראש של Kubernetes שדרכו מופעל Config Connector:

    gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --member="serviceAccount:PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \
      --role="roles/iam.workloadIdentityUser"
    

הגדרת Config Connector

כדי להשלים את ההתקנה, יוצרים קובץ תצורה עבור ConfigConnector CustomResource ואז מפעילים אותו באמצעות הפקודה kubectl apply. ה-Operator של Config Connector מתקין CRD של משאביםGoogle Cloud ורכיבים של Config Connector באשכול.

כדי להגדיר את האופרטור במצב אשכול, מבצעים את השלבים הבאים:

  1. מעתיקים את קובץ ה-YAML הבא לקובץ בשם configconnector.yaml:
    # configconnector.yaml
    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnector
    metadata:
      # the name is restricted to ensure that there is only one
      # ConfigConnector resource installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    spec:
      mode: cluster
      googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
      # Setting `stateIntoSpec` to `Absent` is recommended. It means setting `cnrm.cloud.google.com/state-into-spec`
      # annotation to `absent` for all Config Connector resources created in the cluster in the future.
      # It prevents Config Connector from populating unspecified fields into the spec.
      stateIntoSpec: Absent
    מחליפים את מה שכתוב בשדות הבאים:
    • ‫SERVICE_ACCOUNT_NAME בשם של חשבון השירות.
    • PROJECT_ID במזהה הפרויקט.
  2. מחילים את ההגדרה על האשכול באמצעות הפקודה kubectl apply:
      kubectl apply -f configconnector.yaml

ציון המקום שבו רוצים ליצור את המשאבים

‫Config Connector יכול לארגן משאבים לפי פרויקט, תיקייה או ארגון, בדיוק כמו ב- Google Cloud.

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

אם אין לכם מרחב שמות למטרה הזו, יוצרים אותו באמצעות kubectl.
kubectl create namespace NAMESPACE

מחליפים את NAMESPACE בשם מרחב השמות. לדוגמה config-connector.

בוחרים כרטיסייה כדי להגדיר איפה רוצים ש-Config Connector ייצור משאבים.

פרויקט

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

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID

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

  • ‫NAMESPACE מחליפים בשם מרחב השמות.
  • PROJECT_ID במזהה הפרויקט ב- Google Cloud .

תיקייה

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

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID

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

  • ‫NAMESPACE מחליפים בשם מרחב השמות.
  • FOLDER_ID במזהה התיקייה Google Cloud .

ארגון

כדי ליצור משאבים בארגון מסוים, מריצים את הפקודה הבאה:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID

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

  • ‫NAMESPACE מחליפים בשם מרחב השמות.
  • ORGANIZATION_ID Google Cloud במזהה הארגון.

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

אימות ההתקנה

‫Config Connector מריץ את כל הרכיבים שלו במרחב שמות בשם cnrm-system. כדי לוודא שה-Pods מוכנים, מריצים את הפקודה הבאה:

kubectl wait -n cnrm-system \
      --for=condition=Ready pod --all

אם Config Connector מותקן בצורה נכונה, הפלט ייראה כך:

pod/cnrm-controller-manager-0 condition met

שדרוג של Config Connector

השדרוגים של תוסף Config Connector באשכול מנוהלים על ידי Google Cloud.

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

מידע על האופן שבו Google Cloud מתבצעים שדרוגים של התוסף Config Connector, או אפשר לדלג אל הוראות להשגת הגרסה העדכנית של Config Connector.

איך Google Cloud מנהלים שדרוגים של התוסף Config Connector

הגרסה של Config Connector שאשכול GKE מקבל תלויה באופן מלא בגרסת המשנה של GKE באשכול. לדוגמה:

גרסה משנית של GKE גרסת Config Connector
1.20 1.69.0
1.21 1.69.0
1.22 1.71.0
‫1.23 1.82.0
1.24 1.89.0

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

מכיוון שהגרסה של Config Connector שמתקבלת באשכול תלויה בגרסה המשנית של GKE של האשכול, יש שני מקרים שבהם התוסף Config Connector של האשכול משודרג אוטומטית על ידי Google Cloud:

  1. האשכול משודרג לגרסה משנית חדשה של GKE שממופה לגרסה חדשה יותר של Config Connector.

  2. האשכול נמצא בגרסה משנית של GKE שהיא חדשה מספיק כדי לא להיות זמינה בערוצי ההפצה Regular או Stable, ו-Google Cloud ממפה מחדש את הגרסה המשנית של GKE לגרסה חדשה של Config Connector.

כש- Google Cloud ממפה מחדש גרסה משנית של GKE ומשדרג אשכולות קיימים לגרסה חדשה של Config Connector, אומרים שהוא "משיק גרסה חדשה של Config Connector" לגרסה המשנית של GKE.

Google Cloud לא משיקים גרסאות חדשות של Config Connector לגרסאות משניות של GKE שהן ישנות מספיק כדי להיות זמינות בגרסאות של ערוצי ההפצה Regular או Stable, מסיבות שקשורות ליציבות, אלא במצבי חירום שבהם זוהתה בעיה נרחבת.

איך מורידים את הגרסה העדכנית של Config Connector

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

כדי לעבור מתוסף Config Connector להתקנה ידנית, פועלים לפי ההוראות למעבר מתוסף Config Connector להתקנה ידנית.

הגרסה של Config Connector שמותקנת דרך התוסף Config Connector לרוב מפגרת עד 12 חודשים או יותר. למרות ש-Config Controller עדכני יותר מהתוסף, יכול להיות שהוא עדיין לא יכלול את הגרסה האחרונה בהשוואה להתקנה ידנית.

הסרת Config Connector

כדי להסיר את Config Connector, מבצעים את השלבים הבאים:

  1. משתמשים בפקודה kubectl delete כדי להסיר את ה-CRD של Config Connector יחד עם רכיבי הבקרה:

    kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=true
    
  2. משביתים את התוסף Config Connector באשכול באמצעות ה-CLI של gcloud או מסוף Google Cloud :

    gcloud

    כדי להשבית את התוסף Config Connector באמצעות gcloud, מריצים את הפקודה הבאה:

    gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
    

    מחליפים את CLUSTER_NAME בשם של האשכול שבו מותקן התוסף Config Connector.

    מסוף Cloud

    כדי להשבית את התוסף Config Connector במסוף Google Cloud :

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

      מעבר לתפריט Google Kubernetes Engine

    2. לוחצים על Edit. מופיע המסך 'עריכת אשכולות'.

    3. לוחצים על תוספים.

    4. בוחרים באפשרות Config Connector ואז באפשרות Disabled (מושבת).

    5. לוחצים על שמירה כדי לעדכן את האשכול.

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