במדריך הזה מוסבר איך להעביר את ההתקנה הקיימת של Knative serving ב-Google Cloud לשימוש בצי עם Cloud Service Mesh.
הגרסה הקודמת של Knative serving, שנקראת גם GKE add-on, כוללת גרסה מובנית ומצומצמת של Istio 1.4, שכבר לא נתמכת החל מ-Anthos 1.8.
שדרוג ההתקנה של Knative serving לשימוש ב-fleets וב-Cloud Service Mesh מאפשר לשפר את שדרוג המוצר ואת עצמאות הניהול, וגם לשפר את האינטגרציה בין התכונות של GKE Enterprise. מידע נוסף על החידושים והשינויים
יש שתי דרכים להעביר את ההתקנה:
התהליך המומלץ הוא להעביר את עומסי העבודה מהאשכול שבו מותקנת הגרסה הקודמת של Knative serving (GKE add-on) לאשכול חדש שבו התקנתם וקבעתם התקנה חדשה של Knative serving. התהליך הזה פשוט יחסית ואידיאלי, אבל אם עומסי העבודה שלכם משרתים תנועה, המעבר לאשכול חדש שנוצר יגרום להשבתה. כדי לבצע את מסלול ההעברה הזה, באשכול החדש:
- התקנת Knative serving כרכיב בצי
פורסים את השירותים בהתקנה החדשה.
לדוגמה, אפשר להשתמש בהוראות לפריסת גרסה של שירות קיים כדי להוריד בנפרד קובץ תצורה YAML לכל אחד מהשירותים, ואז לפרוס כל קובץ תצורה YAML לאשכול החדש בהתקנת fleet של Knative serving:
בגרסה הישנה של ההתקנה, אפשר להריץ את הפקודה הבאה כדי להוריד קובץ תצורה בפורמט YAML, כמו
service.yaml:gcloud run services describe SERVICE --format export > service.yamlמחליפים את SERVICE בשם של שירות Knative serving.
בהתקנה של רכיב חדש של Fleet, אפשר להריץ את הפקודה הבאה כדי לפרוס את אותו
service.yaml:gcloud run deploy service.yaml --cluster CLUSTER_NAME --cluster-location CLUSTER_LOCATION --project PROJECT_IDמחליפים את:
CLUSTER_NAME בשם של האשכול בהתקנה החדשה של רכיב Fleet של Knative serving.
CLUSTER_LOCATION עם האזור של האשכול בהתקנה של רכיב הצי החדש של Knative serving.
PROJECT_ID במזהה Google Cloud הפרויקט שבו נמצאת ההתקנה החדשה של רכיב הצי ב-Knative serving.
אפשרות חלופית: משתמשים שלא יכולים ליצור אשכול חדש וצריכים להעביר את ההתקנה הפעילה שלהם של Knative serving יכולים לפעול לפי השלבים במדריך הזה כדי:
- מסירים את תוסף GKE הקודם ואת משאבי Istio.
- התקנה של משאבים חדשים לצי הרכב.
- מעבירים ל-Cloud Service Mesh ואז מעבירים את התנועה.
- מוחקים את כל המשאבים המיושנים והלא בשימוש.
במדריך הבא מוסבר על תהליך חלופי לשדרוג ההתקנה הקיימת והפעילה של Knative serving, כולל כל עומסי העבודה, כדי לעמוד בדרישות של GKE Enterprise 1.8 ואילך.
לפני שמתחילים
תהליך השדרוג הזה צריך להתבצע רק באשכולות Google Kubernetes Engine שבהם הותקן בעבר Knative serving כתוסף GKE.
בודקים אם התוסף GKE מותקן.
כדי לבדוק אם ההתקנה של Knative serving היא תוסף GKE, מריצים את הפקודה הבאה:
gcloud container clusters describe \ CLUSTER_NAME \ --region CLUSTER_LOCATION \ --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'
מחליפים את:
- CLUSTER_NAME בשם של האשכול.
- CLUSTER_LOCATION עם המיקום שבו האשכול נמצא.
- PROJECT_ID במזהה הפרויקט. Google Cloud
תוצאות:
- GKE add-on לא מותקן:
- אם התוסף אף פעם לא הותקן, לא מוחזר דבר למסוף.
-
disabled=trueמוחזר אם התוסף הוסר בעבר.
- התוסף GKE מותקן: אם התוסף מותקן באשכול, פרטי ההגדרה של התוסף מוחזרים.
דוגמה:
loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
- דוגמה:
-
בדוגמה הבאה אפשר לראות ש-Knative serving הותקן באשכול
my-addon-clusterבאמצעות GKE add-on, שמוגדר לטפל בתעבורה חיצונית:gcloud container clusters describe my-addon-cluster \ --region us-central1-c --project my-gcp-project \ --format='get(addonsConfig.cloudRunConfig)'
תשובה:
loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
צריכות להיות לכם הרשאות מתאימות ב Google Cloud פרויקט כדי לעמוד בדרישות של האשכול, הצי ו-Cloud Service Mesh:
אם יש לכם את התפקיד בעלים בפרויקט Google Cloud , יש לכם יותר מההרשאות הנדרשות ליצירת אשכולות, להתקנה ואז להגדרה של Knative serving.
שימו לב שהדרישות להרשאות ב-Cloud Service Mesh עומדות גם בכל הדרישות להרשאות להתקנה ולהגדרה של Knative serving.
שימוש בתפקידים אחרים ובדרישות המינימום:
בהתאם לארגון שלכם, אתם יכולים לעמוד בדרישות ההרשאה גם באמצעות שילוב של התפקידים המוגדרים מראש הבאים:
Google Cloud הרשאות בפרויקט: תפקיד עריכה בסיסי
הרשאות ב-Fleet: GKE Hub Admin או תפקיד שכולל את ההרשאות הבאות:
gkehub.features.creategkehub.features.update
הרשאות באשכול: תפקיד אדמין ב-Kubernetes Engine:
- Kubernetes Engine Admin
- Kubernetes Engine Cluster Admin
יש תמיכה רק בפלטפורמות ספציפיות.
כדי להשתמש ב-Cloud Service Mesh, צריך להשתמש באשכול בסוג מכונה עם לפחות 4 ליבות וירטואליות (vCPU), כמו
e2-standard-4. פרטים על הדרישות זמינים במדריך ההתקנה של Cloud Service Mesh. אם אתם צריכים לשנות את סוג המכונה של האשכול הקיים, תוכלו לעיין במאמר בנושא העברת עומסי עבודה לסוגי מכונות שונים.מומלץ להשתמש ב-Cloud Shell כסביבה להפעלת הפקודות וסקריפט ההעברה במהלך התהליך הזה. שימו לב שסקריפט ההתקנה של Cloud Service Mesh תומך רק ב-Linux או ב-Cloud Shell.
אם ההתקנה הקיימת של Knative serving משתמשת בתוסף Istio ב-GKE, צריך לבצע מיגרציה אל מישור הבקרה המנוהל של Cloud Service Mesh. בשלב הזה, אין תמיכה בהעברה מ-Istio בתוסף GKE אל מישור הבקרה בתוך האשכול של Cloud Service Mesh.
שדרוג של Knative serving והעברת עומסי עבודה (workloads)
כדי לעזור לכם לשדרג את ההתקנה הקיימת של Knative serving ולהעביר את עומסי העבודה, אתם מריצים סקריפט שמבצע אוטומטית את רוב השלבים ומבקש מכם להזין נתונים לאורך התהליך.