התבניות של Google Kubernetes Engine (GKE) ברמה שמתאימה לארגונים בסביבת הייצור ב-Application Design Center מאפשרות לפרוס אשכול עם אבטחה גבוהה ואפליקציית אינטרנט ללא שמירת מצב (stateless). אתם יכולים להשתמש בתבנית Enterprise-grade production GKE cluster כדי להקצות אשכול GKE פרטי ומאובטח ברמה שמתאימה לארגונים שמוגדר לתקינות, לרישות מתקדם ולתוכנית התאוששות מאסון (DR). אחר כך אפשר לשלב אותו עם התבנית Enterprise-grade production GKE workload (גרסת טרום-השקה (Preview)) כדי לפרוס תרשים Helm שמוגדר לזמינות גבוהה, לאמינות ולהמשכיות השירות.
לדוגמה, אפשר לפרוס את התבניות של האשכולות ועומסי העבודה כדי לתת מענה לצרכים העסקיים הבאים:
| דוגמה | הצורך העסקי | הטמעה |
|---|---|---|
| פלטפורמת מסחר גלובלית | מוסד פיננסי צריך פלטפורמת מסחר עם זמן אחזור קצר, שפרוסה ברחבי העולם, עם זמן פעולה תקינה מקסימלי, אבטחה מחמירה ותאימות שניתנת לביקורת, כדי לטפל בעסקאות בתדירות גבוהה. | אשכולות שפרוסים במספר אזורים ברחבי העולם עם רשתות מתקדמות, כדי להבטיח זמן טעינה קצר במיוחד ועמידות. מיישמים מדיניות רשת ב-Kubernetes, הגדרות של אשכולות פרטיים ואמצעי אבטחה מתקדמים כדי להגן על הנתונים ולעמוד בתקנות. |
| פלטפורמת SaaS עם כמה דיירים | ספק תוכנה כשירות (SaaS) צריך לארח פלטפורמה מאובטחת, חסכונית וניתנת להתאמה לאלפי לקוחות ארגוניים. הפלטפורמה דורשת בידוד קפדני של דיירים, הקצאת משאבים דינמית ופיתוח רציף של תכונות חדשות ללא זמן השבתה. | כדי להבטיח שיתוף משאבים הוגן ואבטחה בין הדיירים, כדאי להשתמש באשכולות עם כמה דיירים, עם בידוד חזק של מרחב השמות, סגמנטציה של הרשת וניהול מכסות. |
| הסקת מסקנות בזמן אמת לפעולות קריטיות | ארגון צריך לפרוס מודלים של AI/ML להסקת מסקנות בזמן אמת באפליקציות קריטיות לזיהוי הונאות, שדורשות זמן אחזור קצר במיוחד, תפוקה גבוהה ויכולת להתאים במהירות גרסאות חדשות של מודלים עם יכולת ביקורת מלאה. | להגדיר אשכולות עם מאגרי צמתים ייעודיים להסקת AI. לוודא שיש קישוריות לרשת עם זמן אחזור קצר, ולהפעיל ניתוב יעיל של תנועה לנקודות קצה (endpoints) של הסקה. |
ארכיטקטורה
בתמונה הבאה מוצגים הרכיבים והחיבורים בתבנית:
ההגדרות של הרכיבים בתבנית הזו:
אשכול GKE Standard: אשכול שבו פועל עומס העבודה.
בטבלה הבאה מתוארת הגדרת האשכול בתבנית הזו:
הגדרות אישיות מטרה location: us-central1מבטיחה אחסון ועיבוד נתונים באופן מקומי ותאימות בתוך גבול גיאוגרפי. הגדרה של כמה אזורים בתוך האזור מספקת זמינות גבוהה. network: projects/PROJECT_ID/global/networks/enterprise-vpcמציין VPC קיים שבדרך כלל מיועד לסגמנטציה של רשת ולקישוריות. subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnetמציינת רשת משנה לאשכול ב-VPC, שבדרך כלל מתוכננת עם הקצאת IP ובידוד רשת מתאימים. master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}]מגבילה את הגישה לנקודת הקצה של מישור הבקרה לבלוקים ספציפיים ומהימנים של IP CIDR. כך אפשר למנוע גישה לא מורשית לממשקי API לניהול אשכולות. private_cluster_config.enable_private_endpoint: trueמוודא שאפשר לגשת למישור הבקרה רק באמצעות כתובות IP פנימיות ב-VPC או ברשתות מורשות. כך משפרים את האבטחה על ידי הסרת החשיפה הציבורית. private_cluster_config.enable_private_nodes: trueמוודא שלכל צומתי העובדים יש רק כתובות IP פרטיות, מבודד אותם מהאינטרנט הציבורי ומצמצם את שטח המתקפה. release_channel: STABLEעדכונים צפויים שנבדקו ביסודיות שומרים על היציבות בסביבת הייצור. network_policy.enabled: trueהפעלת מדיניות רשת ב-Kubernetes, שמאפשרת שליטה בתקשורת בין Pods לאבטחה משופרת ולמיקרו-סגמנטציה. binary_authorization: trueאכיפת מדיניות הפריסה, כדי לוודא שרק קובצי אימג' מהימנים וחתומים של קונטיינרים יכולים לפעול באשכול. database_encryption: {"state": "ENCRYPTED_WITH_CMEK", "key_name": "projects/PROJECT_ID/locations/us-central1/keyRings/gke-keyring/cryptoKeys/gke-etcd-key"}מפתחות הצפנה בניהול הלקוח (CMEK) מצפינים את מסד הנתונים, מספקים אבטחת מידע ועומדים בדרישות התאימות. workload_identity_config: {"enabled": true}מאפשר לחשבונות שירות של Kubernetes לפעול כחשבונות שירות של Google Cloud , וכך מאפשר גישה מאובטחת ומפורטת למשאבים באמצעות IAM. המאפיינים logging_configו-monitoring_configמוגדרים לערך{"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}}שילוב עם Cloud Logging ו-Cloud Monitoring, כדי להבטיח ניראות (observability), ביקורת והתראות מקיפות לעומסי עבודה בסביבת הייצור. maintenance_policy: {"daily_maintenance_window": {"start_time": "03:00"}, "recurring_window": {"start_time": "00:00", "end_time": "04:00", "recurrence": "FREQ=WEEKLY;BYDAY=SAT,SUN"}}חלונות זמן לתחזוקה קובעים מתי GKE מבצע שדרוגים אוטומטיים, כדי לצמצם את ההפרעות לאפליקציות קריטיות. enable_shielded_nodes: trueצומתי GKE מוגנים מספקים תכונות אבטחה כמו אתחול מאובטח ומעקב אחר תקינות, כדי להגן מפני רוטקיטים ותוכנות זדוניות ברמת האתחול. gateway_api_config: {"channel": "CHANNEL_STANDARD"}ניהול תנועה מתקדם לניתוב מורכב, איזון עומסים וניהול ממשקי API באפליקציות ארגוניות. security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"}ניהול מתקדם של מצב האבטחה, כולל סריקת נקודות חולשה ואכיפת מדיניות. מאגר צמתים של GKE: קבוצה של צומתי עובדים שמריצים את הקונטיינרים של האפליקציה.
בטבלה הבאה מתוארות ההגדרות של מאגר הצמתים בתבנית הזו:
הגדרות אישיות מטרה location: us-central1.מציין את האזור שבו נוצר מאגר הצמתים הזה. בדומה למיקום של האשכול, כך אפשר לוודא שהמשאבים של מאגר הצמתים נמצאים באזור גיאוגרפי אחד. autoscaling: {"max_node_count":3, "min_node_count":1}.הגדרת המידרוג האוטומטי של האשכול למאגר הצמתים הזה. ככה תמיד יהיה לפחות צומת אחד במאגר הצמתים, וההגדרה של המגבלה העליונה לשלושה צמתים תעזור לשלוט בעלויות ובצריכת המשאבים. node_config: {"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}}.הגדרות הקבוצות של הצמתים במאגר הזה. סוג המכונה הוא איזון בין מעבד (CPU) לזיכרון שמתאים לעומסי עבודה למטרות כלליות. מגדיר את הגישה שניתנה לחשבון השירות. הפעלת אתחול מאובטח במכונות הווירטואליות המוגנות, כדי להגן מפני תוכנות זדוניות ברמת האתחול.
הגדרת תרשים Helm
בטבלה הבאה מפורטות הגדרות תרשים ה-Helm, שהותאמו אישית לפריסה ולשינוי קנה המידה של אפליקציית אינטרנט בסיסית ב-GKE.
| הגדרות אישיות | מטרה |
|---|---|
replicaCount: 3 |
יוצר שלוש רפליקות ראשוניות כדי ליצור רמה ראשונית של יתירות וזמינות גבוהה בסיסית לאפליקציה. |
image.repository: gcr.io/google-samples/hello-app |
משתמש בקובץ אימג' של Docker של שרת אינטרנט בסיסי כ-placeholder. |
resources.requests: {"cpu": "100m", "memory": "128Mi"} |
מציינת את הכמות המינימלית של מעבד (CPU) וזיכרון ששמורים לכל pod, כדי להבטיח זמינות של משאבים ותזמון יעיל. |
resources.limits: {"cpu": "250m", "memory": "256Mi"} |
מציינת את הכמות המקסימלית של מעבד וזיכרון ששמורים לכל pod, כדי למנוע מצב שבו pod אחד משתלט על המשאבים. |
networkPolicy.enabled: true |
הפעלת מדיניות רשת ב-Kubernetes לאפליקציה, שמאפשרת להגדיר כללים לתקשורת בין קבוצות Pod ונקודות קצה אחרות ברשת, ולאכוף סגמנטציה של רשת ובידוד. |
service: {"type": "ClusterIP", "port": 80} |
הגדרת השירות לגישה פנימית בתוך האשכול ביציאת ה-HTTP הרגילה. |
pdb: {"enabled": true, "minAvailable": 1} |
מפעיל תקציב לשיבוש Pod כדי לוודא שלפחות רפליקה אחת תישאר זמינה במהלך שיבושים יזומים, וכך לשמור על זמינות גבוהה. |
יצירת אפליקציית אינטרנט
משתמשים בתבניות אשכול GKE ועומס עבודה ברמת הארגון כדי לפרוס את אפליקציית האינטרנט.
פריסת תשתית האינטרנט
מגדירים ופורסים את התבנית אשכול GKE ברמה שמתאימה לארגונים בסביבת ייצור כדי ליצור את התשתית הבסיסית שבה פועל עומס העבודה של האפליקציה.
משכפלים ופורסים את התבנית אשכול GKE בסביבת ייצור ברמה שמתאימה לארגונים כאפליקציה.
אשכול GKE נוצר בפרויקט הפריסה שבחרתם.
מגדירים את הרכיבים. למידע נוסף, קראו את המאמרים הבאים:
לוחצים על Deploy. האפליקציה נפרסת אחרי כמה דקות.
בחלונית Application details, לוחצים על הכרטיסייה Outputs.
מזהים את ה-cluster_id של האפליקציה. תשתמשו במידע הזה כשתפרסו את תרשים ה-Helm.
פריסת עומס העבודה באינטרנט
משתמשים בתבנית Enterprise-grade production GKE workload כדי לפרוס את עומס העבודה של האפליקציה באשכול שיצרתם. תפרסו תרשים Helm שכולל את הגדרת עומס העבודה באינטרנט.
בדף Google catalog, בתבנית Enterprise-grade production GKE workload, לוחצים על Create new application.
בשדה Name, מזינים שם ייחודי לאפליקציה.
באזור GKE Deployment Target:
ב-Project list, בוחרים את הפרויקט שבו פרסתם את אשכול ה-GKE מהאפליקציה Enterprise-grade production GKE cluster.
ברשימה Region, בוחרים את האזור שבו פרסתם את אשכול GKE.
ברשימה Clusters, בוחרים את אשכול GKE שנפרס.
ברשימה Namespace, מזינים את מרחב השמות של עומס העבודה. אם לא שיניתם את השם, הזינו
default.לוחצים על Create application.
האפליקציה נוצרת ומוצגים קובצי התצורה.
בחלונית Helm chart:
בודקים את פרטי ההגדרות האישיות.
אופציונלי: התאמה אישית של ההגדרות בהתאם לצרכים הייחודיים שלכם.
כדי לפרוס את תרשים ה-Helm באשכול, לוחצים על Deploy.
הוראות מפורטות זמינות במאמר פריסת אפליקציות.
אחרי כמה דקות, תרשים ה-Helm נפרס באשכול GKE.
המאמרים הבאים
- במאמר מדריך למתחילים: התאמה אישית ופריסה של תבנית Google מוסבר איך לשכפל ולהתאים אישית תבניות.
- להגדיר תצורות משלכם באמצעות עיצוב תבניות של אפליקציות.
- לזהות שיטות מומלצות כלליות לארכיטקטורה באמצעות Google Cloud Architecture Framework.