במדריך למתחילים הזה נסביר איך משתמשים בסנכרון תצורות כדי להטמיע גישת GitOps לניהול אשכולות Google Kubernetes Engine. בתהליך עבודה של GitOps, משתמשים במאגר Git כמקור האמת היחיד להגדרות של האשכול.
השימוש ב-Config Sync מספק את היתרונות הבאים:
- אכיפת עקביות: עוזרת לוודא שלכל האשכולות יש את אותה הגדרה, וכך מצמצמת את הסיכון לסטיות בהגדרות.
- שיפור האבטחה: ניהול מרכזי של הגדרות האשכול וביקורת שלהן, כדי להקל על אכיפת מדיניות האבטחה.
- הגדלת המהירות: אוטומציה של השקת שינויים בהגדרות, שמאפשרת לכם לפרוס שינויים מהר יותר ובצורה מהימנה יותר.
במדריך הזה יוצרים אשכול GKE ומגדירים את סנכרון תצורות לסנכרון קובצי תצורה ממאגר לדוגמה. במדריך הזה נסביר איך סנכרון תצורות פועל, וניתן לכם ניסיון בשימוש בסנכרון תצורות כדי לנהל את האשכולות שלכם באופן עקבי ואוטומטי.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
צריך לוודא שיש לכם בפרויקט את התפקיד או התפקידים הבאים: אדמין Kubernetes Engine
בדיקת התפקידים
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הפרויקט.
-
בעמודה Principal (חשבון המשתמש), מוצאים את כל השורות שבהן מופיע השם שלכם או של קבוצה שאתם נכללים בה. כדי לברר באילו קבוצות אתם נכללים, פנו לאדמין.
- בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.
מתן התפקידים
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הפרויקט.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.
- לוחצים על Select a role ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
- לוחצים על Save.
-
יצירת אשכול
בקטע הזה יוצרים אשכול שאפשר להשתמש בו במדריך הזה. למרות שבתרחיש מהעולם האמיתי סביר להניח שתנהלו כמה אשכולות, כדי לפשט את המדריך הזה, תיצרו ותנהלו רק אשכול אחד.
כדי ליצור אשכול:
מפעילים את Google Kubernetes Engine API.
נכנסים לדף Kubernetes Engine במסוף Google Cloud .
לוחצים על add_box יצירה.
בקטע Autopilot, בוחרים באפשרות Configure (הגדרה).
בקטע Cluster basics (הגדרות בסיסיות של האשכול), מזינים
cs-clusterבשדה Name (שם). בכל שאר השדות משאירים את ערכי ברירת המחדל המומלצים.לוחצים על יצירה. תועברו לדף Kubernetes clusters (אשכולות Kubernetes). יעברו כמה דקות עד שהאשכול ייווצר. כשמופיע סימן וי ירוק בעמודה סטטוס לצד האשכול, הוא מוכן.
הגדרת האשכול
עכשיו שיש לכם אשכול, אתם יכולים להגדיר את סנכרון תצורות לסנכרון קובצי תצורה ממאגר Git.
כדי להגדיר את סנכרון תצורות במסוף Google Cloud :
- נכנסים לדף Config במסוף Google Cloud , בקטע Features.
- לוחצים על add Install Config Sync (התקנת Config Sync).
- בוחרים את הגרסה של סנכרון תצורות שבה רוצים להשתמש.
- בקטע Installation options (אפשרויות התקנה), בוחרים באפשרות Install Config Sync on individual clusters (התקנת סנכרון תצורות באשכולות נפרדים).
- בטבלה Available clusters, בוחרים באפשרות
cs-clusterולוחצים על התקנת סנכרון תצורות. אחרי כמה דקות, בכרטיסייה הגדרות, הסטטוס שלcs-clusterאמור להופיע כמופעל. - במרכז הבקרה של סנכרון ההגדרות, לוחצים על פריסת חבילת אשכול.
- בטבלה Select clusters for package deployment (בחירת אשכולות לפריסת חבילות), בוחרים באפשרות
cs-clusterואז לוחצים על Continue (המשך). - משאירים את האפשרות Package hosted on Git (חבילה שמתארחת ב-Git) מסומנת ולוחצים על Continue (המשך).
- בשדה Package name, מזינים
sample-repository. - בשדה Repository URL (כתובת ה-URL של המאגר), מזינים
https://github.com/GoogleCloudPlatform/anthos-config-management-samples. - בשדה נתיב, מזינים
config-sync-quickstart/multirepo/root. - משאירים את ערכי ברירת המחדל בשאר השדות.
לוחצים על Deploy Package (פריסת חבילה).
אחרי כמה דקות, בעמודה סטטוס הסנכרון של
cs-clusterאמור להופיע הסטטוס מסונכרן.
אחרי שסנכרון תצורות מסונכרן למאגר, הוא מבצע התאמה מתמשכת בין מצב האשכולות לבין ההגדרות במאגר.
הצגת פרטי החבילה
כדי לראות את האובייקטים שמנוהלים על ידי סנכרון תצורות, עוברים לכרטיסייה Packages ולוחצים על cs-cluster. בדף פרטי החבילה מוצגת סקירה כללית של כל המשאבים שסונכרנו, כולל סוג המשאב ומרחב השמות שאליו המשאב מסונכרן.
(אופציונלי) עיון במאגר לדוגמה
ההגדרות שחלות על האשכול מוגדרות במאגר /config-sync-quickstart/multirepo/. בדוגמה הזו מוצגת הגדרה של כמה מאגרים שבהם ההגדרות ברמת cluster-admin, שמיוצגות על ידי המאגר root, מופרדות מההגדרות ברמת מרחב השמות, שמיוצגות על ידי המאגר namespaces. בדוגמה הזו, ההגדרות האלה מפולגות לתיקיות שונות. בתרחיש מהעולם האמיתי, אפשר לאחסן הגדרות בשני מאגרי מידע שונים עם הרשאות גישה שונות.
באופן כללי, מאגרי שורש או מאגרים ברמת האשכול מנוהלים בדרך כלל על ידי אדמין מרכזי ומכילים משאבים ברמת האשכול, הגדרות של מרחבי שמות ומדיניות. מאגרים ברמת מרחב השמות מכילים בדרך כלל הגדרות שספציפיות למרחבי שמות נפרדים, ולרוב מנוהלים על ידי צוותי אפליקציות.
חלק מסוגי הקבצים העיקריים שאפשר לאחסן במאגר הבסיסי כוללים את הקבצים הבאים:
- יצירת מרחב שמות: קבצים כמו
namespace-gamestore.yamlיוצרים את מרחבי השמות בעצמם. - משאבים בהיקף האשכול: קבצים שמשפיעים על האשכול כולו, כולל משאבים כמו אובייקטים של
ClusterRoleשמוסיפים תפקידים בהיקף האשכול שמעניקים הרשאות. - חיבור מאגרי שמות: קובץ המפתח בהגדרה של מאגרים מרובים הוא קובץ
reposync-gamestore.yaml. אובייקטRepoSyncהזה אומר ל-Config Sync לסנכרן הגדרות עבור מרחב השמותgamestoreמנתיב אחר. בדוגמה הזו, האובייקטRepoSyncמצביע על הספרייהconfig-sync-quickstart/multirepo/ namespaces/gamestoreבאותו מאגר, אבל בתרחיש מהעולם האמיתי, אפשר להצביע על מאגר Git אחר.
מאגר מרחב השמות מכיל הגדרות ספציפיות לאפליקציות עבור מרחב השמות gamestore. לדוגמה, הקובץ configmap-inventory.yaml מכיל נתוני מלאי של האפליקציה gamestore. הגדרה כזו של GitOps מאפשרת לצוותי פיתוח של אפליקציות ליהנות מאוטונומיה רבה יותר בנוגע לפריסות שלהם ולמשאבים בהיקף של מרחב שמות, בלי צורך לשנות את מאגר הבסיס המרכזי.
הסרת המשאבים
עוברים לתפריט GKE ב Google Cloud מסוף.
לצד
cs-cluster, לוחצים על more_vert פעולות ואז על delete מחיקה.כשמופיעה בקשת אישור, לוחצים שוב על מחיקה.