צירוף אשכול AKS

צירוף אשכול פירושו חיבור שלו אל Google Cloud על ידי רישום שלו ב Google Cloud ניהול Fleet והתקנת תוכנת GKE attached clusters בו. Google Cloud

אפשר לצרף אשכול באמצעות ה-CLI של gcloud או Terraform. כדי ללמוד איך ליצור ולצרף אשכול AKS באמצעות Terraform, אפשר לעיין במאגר GitHub של דוגמאות לאשכולות מצורפים של GKE.

כדי לצרף אשכול AKS באמצעות gcloud, מבצעים את השלבים הבאים.

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

מוודאים שהאשכול עומד בדרישות האשכול.

כשמצרפים את האשכול, צריך לציין את הפרטים הבאים:

האזור הניהולי הוא Google Cloud אזור לניהול האשכול המצורף. אפשר לבחור כל אזור נתמך, אבל מומלץ לבחור את האזור הקרוב ביותר גיאוגרפית לאשכול. לא נשמרים נתוני משתמשים באזור הניהולי.

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

gcloud container attached get-server-config  \
  --location=GOOGLE_CLOUD_REGION

מחליפים את GOOGLE_CLOUD_REGION בשם המיקוםGoogle Cloud שממנו רוצים לנהל את האשכול.

מספור גרסאות הפלטפורמה

במסמכים האלה, הגרסה של אשכולות מצורפים ב-GKE נקראת גרסת הפלטפורמה, כדי להבדיל אותה מגרסת Kubernetes. באשכולות GKE מצורפים משתמשים באותה שיטה למספור גרסאות כמו ב-GKE – לדוגמה, 1.21.5-gke.1. כשמצרפים או מעדכנים את האשכול, צריך לבחור גרסת פלטפורמה שגרסת המשנה שלה זהה לגרסת Kubernetes של האשכול או נמוכה ממנה ברמה אחת. לדוגמה, אתם יכולים לצרף אשכול שמריץ Kubernetes בגרסה ‎1.22.* ‎ עם פלטפורמת אשכולות מצורפים של GKE בגרסה ‎1.21.* ‎ או ‎1.22.*‎.

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

צירוף אשכול AKS

כדי לצרף את אשכול ה-AKS אל Google Cloud ניהול Fleet, מריצים את הפקודות הבאות:

  1. מוודאים שבקובץ kubeconfig יש רשומה של האשכול שרוצים לצרף:

    az aks get-credentials -n AKS_CLUSTER_NAME \
      -g RESOURCE_GROUP
    
  2. מריצים את הפקודה הזו כדי לחלץ את ההקשר של kubeconfig באשכול ולאחסן אותו במשתנה הסביבה KUBECONFIG_CONTEXT:

    KUBECONFIG_CONTEXT=$(kubectl config current-context)
    
  3. הפקודה לרישום האשכול משתנה מעט בהתאם להגדרת האשכול עם מנפיק OIDC פרטי שמוגדר כברירת מחדל או עם מנפיק ציבורי ניסיוני. בוחרים את הכרטיסייה שמתאימה לאשכול:

    מנפיק OIDC פרטי (ברירת מחדל)

    משתמשים בפקודה gcloud container attached clusters register כדי לרשום את האשכול:

    gcloud container attached clusters register CLUSTER_NAME \
      --location=GOOGLE_CLOUD_REGION \
      --fleet-project=PROJECT_NUMBER \
      --platform-version=PLATFORM_VERSION \
      --distribution=aks \
      --context=KUBECONFIG_CONTEXT \
      --has-private-issuer \
      --kubeconfig=KUBECONFIG_PATH
    

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

    • CLUSTER_NAME: השם של האשכול. השם הזה יכול להיות זהה לAKS_CLUSTER_NAME שבו השתמשתם בשלב 1. הערך של CLUSTER_NAME צריך להיות תואם לתקן RFC 1123 Label Names.
    • GOOGLE_CLOUD_REGION: האזור Google Cloud שממנו מנהלים את האשכול
    • PROJECT_NUMBER: פרויקט המארח של ה-Fleet שבו רוצים לרשום את האשכול
    • PLATFORM_VERSION: גרסת הפלטפורמה שבה ייעשה שימוש באשכול
    • KUBECONFIG_CONTEXT: ההקשר בקובץ kubeconfig לגישה לאשכול AKS
    • KUBECONFIG_PATH: הנתיב לקובץ kubeconfig

    מנפיק OIDC ציבורי

    1. מאחזרים את כתובת ה-URL של מנפיק OIDC של האשכול באמצעות הפקודה הבאה:

        az aks show -n CLUSTER_NAME \
          -g RESOURCE_GROUP \
          --query "oidcIssuerProfile.issuerUrl" -otsv
      

      מחליפים את RESOURCE_GROUP בקבוצת משאבי ה-AKS שאליה שייך האשכול.

      הפלט של הפקודה הזו יהיה כתובת ה-URL של מנפיק OIDC. שמירת הערך הזה לשימוש מאוחר יותר.

    2. מריצים את הפקודה הזו כדי לחלץ את ההקשר של kubeconfig באשכול ולאחסן אותו במשתנה הסביבה KUBECONFIG_CONTEXT:

      KUBECONFIG_CONTEXT=$(kubectl config current-context)
      
    3. משתמשים בפקודה gcloud container attached clusters register כדי לרשום את האשכול:

      gcloud container attached clusters register CLUSTER_NAME \
        --location=GOOGLE_CLOUD_REGION \
        --fleet-project=PROJECT_NUMBER \
        --platform-version=PLATFORM_VERSION \
        --distribution=aks \
        --issuer-url=ISSUER_URL \
        --context=KUBECONFIG_CONTEXT \
        --kubeconfig=KUBECONFIG_PATH
      

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

      • CLUSTER_NAME: השם של האשכול. השם הזה יכול להיות זהה לAKS_CLUSTER_NAME שבו השתמשתם בשלב 1. התווית CLUSTER_NAME צריכה להיות תואמת לתקן RFC 1123 לשמות תוויות.
      • GOOGLE_CLOUD_REGION: האזור Google Cloud לניהול האשכול
      • PROJECT_NUMBER: פרויקט המארח של ה-Fleet שבו האשכול יירשם
      • PLATFORM_VERSION: הגרסה של GKE Attached Clusters שבה יש להשתמש באשכול
      • ISSUER_URL: כתובת ה-URL של המנפיק שאוחזרה קודם
      • KUBECONFIG_CONTEXT: ההקשר בקובץ kubeconfig לגישה לאשכול, כפי שחולץ קודם
      • KUBECONFIG_PATH: הנתיב לקובץ kubeconfig

אישור של Cloud Logging / Cloud Monitoring

כדי שאשכולות GKE מצורפים יוכלו ליצור ולהעלות יומנים ומדדים של המערכת אלGoogle Cloud, צריך לתת להם הרשאה.

כדי לתת לזהות של עומס העבודה ב-Kubernetes‏ gke-system/gke-telemetry-agentהרשאה לכתוב יומנים ב- Google Cloud Logging ומדדים ב- Google Cloud Monitoring, מריצים את הפקודה הבאה:

gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
  --member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
  --role=roles/gkemulticloud.telemetryWriter

מחליפים את GOOGLE_PROJECT_ID במזהה הפרויקט של האשכול. Google Cloud

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

הוספת הקישור הזה של IAM תיכשל אלא אם נוצר לפחות אשכול אחד בפרויקט Google Cloud . הסיבה לכך היא שמאגר הזהויות של עומסי העבודה שאליו הוא מתייחס (GOOGLE_PROJECT_ID.svc.id.goog) לא מוקצה עד ליצירת האשכול.