בדף הזה מוסבר איך ליצור אשכול ב-Google Kubernetes Engine (GKE) עם מאגרי צמתים שמריצים את Microsoft Windows Server. באשכול הזה אפשר להשתמש בקונטיינרים של Windows Server. בשלב הזה אין תמיכה בקונטיינרים של Microsoft Hyper-V. בדומה לקונטיינרים של Linux, קונטיינרים של Windows Server מספקים בידוד של תהליכים ומרחבי שמות.
צומת של Windows Server דורש יותר משאבים מצומת רגיל של Linux. צומתי Windows Server צריכים את המשאבים הנוספים כדי להריץ את מערכת ההפעלה Windows, וגם בשביל רכיבי Windows Server שלא יכולים לפעול בקונטיינרים. מכיוון שצומתי Windows Server דורשים יותר משאבים, המשאבים שניתנים להקצאה נמוכים יותר מאשר בצומתי Linux.
יצירת אשכול באמצעות מאגרי צמתים של Windows Server
בקטע הזה יוצרים אשכול שמשתמש בקונטיינר של Windows Server.
כדי ליצור את האשכול הזה, צריך לבצע את המשימות הבאות:
- בחירת קובץ האימג' של צומת Windows Server.
- מעדכנים ומגדירים את
gcloud. - יצירת אשכול ומאגרי צמתים.
- מקבלים את פרטי הכניסה ל-
kubectl. - מחכים שהאשכול יתחיל לפעול.
הגדרת חשבונות שירות של IAM ל-GKE
כדי להריץ משימות מערכת כמו רישום ביומן ומעקב, GKE משתמש בחשבונות שירות של IAM שמקושרים לצמתים. לכל הפחות, לחשבונות השירות של הצמתים צריך להיות התפקיד חשבון השירות שמוגדר כברירת מחדל לצומת ב-Kubernetes Engine (roles/container.defaultNodeServiceAccount) בפרויקט. כברירת מחדל, GKE משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, שנוצר באופן אוטומטי בפרויקט, כחשבון השירות של הצומת.
כדי להקצות את התפקיד roles/container.defaultNodeServiceAccount לחשבון השירות שמוגדר כברירת המחדל של Compute Engine:
המסוף
- נכנסים לדף Welcome:
- בשדה Project number, לוחצים על Copy to clipboard.
- נכנסים לדף IAM:
- לוחצים על Grant access.
- בשדה New principals, מציינים את הערך הבא:
מחליפים את הערךPROJECT_NUMBER-compute@developer.gserviceaccount.comPROJECT_NUMBERבמספר הפרויקט שהעתקתם. - בתפריט Select a role, בוחרים את התפקיד Kubernetes Engine Default Node Service Account.
- לוחצים על Save.
gcloud
- מאתרים את מספר הפרויקט ב- Google Cloud :
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"
מחליפים את
PROJECT_IDבמזהה הפרויקט.הפלט אמור להיראות כך:
12345678901
- מקצים את התפקיד
roles/container.defaultNodeServiceAccountלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/container.defaultNodeServiceAccount"
מחליפים את
PROJECT_NUMBERבמספר הפרויקט מהשלב הקודם.
בחירת תמונת הצומת של Windows Server
כדי להריץ ב-GKE, צריך ליצור קובצי אימג' של צומת קונטיינר של Windows Server בגרסה המומלצת של Windows Server 2022 (LTSC), או בגרסה של Windows Server 2019 (LTSC), שהוצאה משימוש על ידי GKE ואי אפשר להשתמש בה למאגרי צמתים שמריצים את GKE בגרסה 1.37 ואילך. לאשכול אחד יכולים להיות כמה מאגרי צמתים של Windows Server שמשתמשים בגרסאות שונות של Windows Server, אבל כל מאגר צמתים יכול להשתמש רק בגרסה אחת של Windows Server.
כשבוחרים את קובץ האימג' של הצומת, כדאי להביא בחשבון את הנקודות הבאות:
- עדכונים: צריך להשתמש ב-LTSC2022, כי GKE הוציא משימוש את LTSC2019. חשוב לדעת את הדברים הבאים לגבי LTSC2019:
- אין עדכונים של קובצי אימג' של צמתים: GKE לא מספק עדכונים של קובצי אימג' של צמתים ל-LTSC2019 בגלל בעיות יציבות בעדכונים של קובץ האימג' הבסיסי, מאז שמיקרוסופט סיימה את התמיכה הרגילה בקובץ האימג'. תמונות הצמתים של GKE מוצמדות לגרסה של דצמבר 2025 של התמונה הבסיסית. מידע נוסף זמין במאמר Windows Server 2019.
- תאימות לגרסה 1.37: בגרסה 1.37 של GKE ואילך, אי אפשר להשתמש ב-LTSC2019. אי אפשר ליצור מאגרי צמתים חדשים עם LTSC2019 ועם גרסה 1.37, או לשדרג מאגרי צמתים קיימים של LTSC2019 לגרסה 1.37.
- זמני התמיכה:
- מועד התמיכה בקובץ אימג' של צומת Windows Server כפוף למועד התמיכה שנקבע על ידי מיקרוסופט, כפי שמתואר במדיניות התמיכה בקובצי אימג' של מערכת ההפעלה.
כדי למצוא את תאריך סיום התמיכה בתמונות של צומתי Windows ב-GKE, אפשר להשתמש בפקודה
gcloud container get-server-configכמו שמתואר בקטע מיפוי גרסאות GKE ו-Windows.
- מועד התמיכה בקובץ אימג' של צומת Windows Server כפוף למועד התמיכה שנקבע על ידי מיקרוסופט, כפי שמתואר במדיניות התמיכה בקובצי אימג' של מערכת ההפעלה.
כדי למצוא את תאריך סיום התמיכה בתמונות של צומתי Windows ב-GKE, אפשר להשתמש בפקודה
- תאימות ומורכבות של גרסאות:
- אפשר להשתמש גם ב-Windows Server Core וגם ב-Nano Server כקובץ אימג' בסיסי לקונטיינרים.
- כדי לנהל את המורכבות של ניהול הגרסאות, אתם יכולים ליצור את קובצי האימג' של קונטיינרים של Windows Server כקובצי אימג' עם כמה ארכיטקטורות, שיכולים לטרגט כמה גרסאות של Windows Server.
עדכון והגדרה של gcloud
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-Google Cloud CLI למשימה הזו, מתקינים ואז מאתחלים את ה-CLI של gcloud. אם כבר התקנתם את ה-CLI של gcloud, הריצו את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שבגרסאות קודמות של ה-CLI של gcloud אי אפשר להריץ את הפקודות שבמסמך הזה.
- מוודאים שיש לכם את ההרשאה המתאימה ליצירת אשכולות. לכל הפחות, צריך להיות לכם התפקיד אדמין של אשכול Kubernetes Engine.
יצירת אשכול ומאגרי צמתים
כדי להריץ קונטיינרים של Windows Server, באשכול צריך להיות לפחות מאגר אחד של צומתי Windows ומאגר אחד של צומתי Linux. אי אפשר ליצור אשכול באמצעות מאגר צמתים של Windows Server בלבד. מאגר הצמתים של Linux נדרש כדי להפעיל תוספים קריטיים לאשכול.
לפני שיוצרים אשכול באמצעות מאגרי צמתים של Windows Server, כדאי לקרוא את הקטע שדרוג מאגרי צמתים של Windows Server.
בגלל החשיבות של מאגר הצמתים, מומלץ להפעיל התאמה אוטומטית לעומס כדי לוודא שיש למאגר הצמתים של Linux מספיק קיבולת להפעלת תוספים לאשכול.
gcloud
יוצרים אשכול עם השדות הבאים:
gcloud container clusters create CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-ip-alias \
--num-nodes=NUMBER_OF_NODES \
--cluster-version=VERSION_NUMBER \
--release-channel CHANNEL
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם שבחרתם לאשכול. -
CONTROL_PLANE_LOCATION: המיקום ב-Compute Engine של מישור הבקרה של האשכול. באשכולות אזוריים צריך לציין אזור, ובאשכולות של תחומים צריך לציין תחום. --enable-ip-aliasמפעיל את כתובת ה-IP החלופית. בצמתים של Windows Server צריך להשתמש בכתובת IP חלופית. למידע נוסף על היתרונות של ניתוב קונטיינרים מקורי עם כתובות IP חלופיות, קראו את המאמר הסבר על ניתוב קונטיינרים מקורי עם כתובות IP חלופיות.-
NUMBER_OF_NODES: מספר הצמתים של Linux שאתם יוצרים. חשוב לספק מספיק משאבי מחשוב כדי להריץ את התוספים של האשכול. זהו שדה אופציונלי, ואם משמיטים אותו, המערכת משתמשת בערך ברירת המחדל3. -
VERSION_NUMBER: גרסת האשכול הספציפית שבה רוצים להשתמש. אם לא תציינו ערוץ הפצה, GKE ירשום את האשכול לערוץ ההפצה הכי בשל שבו הגרסה זמינה. -
CHANNEL: ערוץ ההפצה שאליו רוצים לרשום את האשכול. אפשר לבחור באחד מהערוצים הבאים:rapid,regular,stableאוNone(הוצא משימוש). כברירת מחדל, האשכול רשום לערוץ ההפצהregular.
אנחנו ממליצים מאוד להגדיר חשבון שירות ב-IAM עם הרשאות מינימליות, שהצמתים יוכלו להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך יוצרים חשבון שירות עם הרשאות מינימליות.
כדי לציין חשבון שירות בהתאמה אישית ב-CLI של gcloud, מוסיפים לפקודה את הדגל הבא:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.comמחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות עם ההרשאות המינימליות.
יוצרים את מאגר הצמתים של Windows Server עם השדות הבאים:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--image-type=WINDOWS_LTSC_CONTAINERD \
--machine-type=MACHINE_TYPE_NAME \
--windows-os-version=WINDOWS_OS_VERSION
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם שבחרתם למאגר הצמתים של Windows Server. -
CLUSTER_NAME: השם של האשכול שיצרתם למעלה. -
CONTROL_PLANE_LOCATION: המיקום ב-Compute Engine של מישור הבקרה של האשכול. באשכולות אזוריים צריך לציין אזור, ובאשכולות של תחומים צריך לציין תחום. -
MACHINE_TYPE_NAME: מגדיר את סוג המכונה. n1-standard-2הוא סוג המכונה המינימלי המומלץ, כי צומתי Windows Server דורשים משאבים נוספים. אין תמיכה בסוגי המכונותf1-microו-g1-small. כל סוג מכונה מחויב באופן שונה. למידע נוסף, קראו את גיליון המחירים של סוגי המכונות. -
WINDOWS_OS_VERSION: דגל אופציונלי שמגדיר את גרסת מערכת ההפעלה Windows שבה משתמשים לסוג קובץ האימג'WINDOWS_LTSC_CONTAINERD. בגרסה 1.37 של GKE ואילך, אפשר להשתמש רק ב-LTSC2022 (ltsc2022). בגרסה 1.36 או בגרסאות קודמות, מומלץ להגדיר את הערך באופן מפורש ל-ltsc2022. אחרת, GKE משתמש ב-LTSC2019 (ltsc2019), שלא מומלץ כי הוא הוצא משימוש על ידי GKE.
בדוגמה הבאה אפשר לראות איך יוצרים מאגר צמתים של Windows Server 2022:
gcloud container node-pools create node_pool_name \
--cluster=cluster_name \
--location=us-central1 \
--image-type=WINDOWS_LTSC_CONTAINERD \
--windows-os-version=ltsc2022
בדוגמה הבאה אפשר לראות איך מעדכנים מאגר קיים של צומתי Windows כדי להשתמש בקובץ אימג' של מערכת ההפעלה Windows Server 2022:
gcloud container node-pools create node_pool_name \
--cluster=cluster_name \
--location=us-central1 \
--windows-os-version=ltsc2022
המסוף
- נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .
- בקטע Cluster basics, מבצעים את הפעולות הבאות:
- מזינים את השם (Name) של האשכול.
- ב-Location type, בוחרים אזור או תחום לאשכול.
- בקטע ערוצי הפצה, בוחרים ערוץ הפצה ואם רוצים, גם גרסת יעד.
- בחלונית הניווט, בקטע Node Pools, לוחצים על default-pool כדי ליצור את מאגר הצמתים של Linux. כשמגדירים את מאגר הצמתים הזה, צריך לספק מספיק משאבי מחשוב כדי להריץ את התוספים של האשכול. בנוסף, צריכה להיות לכם מכסת משאבים זמינה לצמתים ולמשאבים שלהם (כמו מסלולים של חומת אש).
- בחלק העליון של הדף, לוחצים על add_box Add Node Pool כדי ליצור את מאגר הצמתים של Windows Server.
- בקטע פרטי מאגר צמתים, מבצעים את הפעולות הבאות:
- מזינים שם למאגר הצמתים.
- מזינים את מספר הצמתים שרוצים ליצור במאגר הצמתים.
בחלונית הניווט, בקטע מאגרי צמתים, לוחצים על צמתים.
ברשימה הנפתחת Image type, בוחרים את קובץ האימג' הבא של הצומת:
- ערוץ שירות לטווח ארוך של Windows עם containerd
מידע נוסף זמין בקטע בחירת קובץ אימג' של צומת Windows.
בוחרים את Machine configuration שיוגדר כברירת המחדל למכונות.
n1-standard-2הוא הגודל המינימלי המומלץ, כי צומתי Windows Server דורשים משאבים נוספים. אין תמיכה בסוגי המכונותf1-microו-g1-small. כל סוג מכונה מחויב באופן שונה. למידע נוסף, קראו את גיליון המחירים של סוגי המכונות.
בחלונית הניווט, בקטע Cluster, בוחרים באפשרות Networking.
- בקטע Advanced networking options, מוודאים שהאפשרות Enable VPC-native traffic routing (uses alias IP) מסומנת. בצמתים של Windows Server צריך להשתמש בכתובת IP חלופית. למידע נוסף על היתרונות של ניתוב קונטיינרים מקורי עם כתובות IP חלופיות, קראו את המאמר הסבר על ניתוב קונטיינרים מקורי עם כתובות IP חלופיות.
לוחצים על יצירה.
Terraform
כדי ליצור אשכול GKE Standard ומאגר צמתים של Windows Server באמצעות Terraform, תוכלו להיעזר בדוגמה הבאה:
בדוגמה הזו משתמשים ב-Windows Server LTSC עם containerd. זהו סוג קובץ האימג' של מערכת ההפעלה גם ל-Windows Server 2022 וגם ל-Windows Server 2019 (הוצא משימוש על ידי GKE). מידע נוסף על קובצי אימג' של צמתים זמין במאמר בחירת קובץ אימג' של צומת Windows.
מידע נוסף על השימוש ב-Terraform זמין במאמר תמיכה של Terraform ב-GKE.
אחרי שיוצרים מאגר של צומתי Windows Server, האשכול עובר למצב RECONCILE למשך כמה דקות בזמן שמישור הבקרה מתעדכן.
קבלת פרטי הכניסה של kubectl
משתמשים בפקודה get-credentials כדי לאפשר ל-kubectl לעבוד עם האשכול שיצרתם.
gcloud container clusters get-credentials CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION
מידע נוסף על הפקודה get-credentials זמין במאמרי העזרה של SDK בנושא get-credentials.
המתנה להפעלת האשכול
לפני שמשתמשים באשכול, ממתינים כמה שניות עד ליצירת windows.config.common-webhooks.networking.gke.io. ה-webhook הזה מוסיף סבילות לתזמון לפודים שנוצרו באמצעות בורר הצמתים kubernetes.io/os: windows כדי לוודא שהם יכולים לפעול בצמתים של Windows Server. הוא גם מאמת את ה-Pod כדי לוודא שהוא משתמש רק בתכונות שנתמכות ב-Windows.
כדי לוודא שה-webhook נוצר, מריצים את הפקודה הבאה:
kubectl get mutatingwebhookconfigurations
הפלט אמור להראות שה-webhook פועל:
NAME CREATED AT
windows.config.common-webhooks.networking.gke.io 2019-12-12T16:55:47Z
עכשיו, כשיש לכם אשכול עם שני מאגרי צמתים (אחד של Linux ואחד של Windows), אתם יכולים לפרוס אפליקציית Windows.
מיפוי גרסאות GKE ו-Windows
מיקרוסופט משיקה גרסאות LTSC חדשות כל שנתיים או שלוש. בדרך כלל הגרסאות החדשות האלה זמינות בגרסאות משניות חדשות של GKE. בדרך כלל, גרסאות ה-LTSC נשארות קבועות בתוך גרסה משנית של GKE.
כדי לראות את מיפוי הגרסאות בין גרסאות GKE לגרסאות Windows Server, משתמשים בפקודה gcloud beta container get-server-config:
gcloud beta container get-server-config
מיפוי הגרסאות מוחזר בשדה windowsVersionMaps של התגובה. כדי לסנן את התשובה ולראות את מיפוי הגרסאות של גרסאות GKE ספציפיות באשכול, מבצעים את השלבים הבאים במעטפת Linux או ב-Cloud Shell.
מגדירים את המשתנים הבאים:
CLUSTER_NAME=CLUSTER_NAME \ NODE_POOL_NAME=NODE_POOL_NAME \ CONTROL_PLANE_LOCATION=CONTROL_PLANE_LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
NODE_POOL_NAME: השם של מאגר הצמתים של Windows Server. -
CONTROL_PLANE_LOCATION: המיקום ב-Compute Engine של מישור הבקרה של האשכול. באשכולות אזוריים צריך לציין אזור, ובאשכולות של תחומים צריך לציין תחום.
-
משיגים את הגרסה של מאגר הצמתים ושומרים אותה במשתנה
NODE_POOL_VERSION:NODE_POOL_VERSION=`gcloud container node-pools describe $NODE_POOL_NAME \ --cluster=$CLUSTER_NAME \ --location=$CONTROL_PLANE_LOCATION \ --format="value(version)"`משיגים את הגרסאות של Windows Server ל-
NODE_POOL_VERSION:gcloud beta container get-server-config \ --location=$CONTROL_PLANE_LOCATION \ --format="yaml(windowsVersionMaps.\"$NODE_POOL_VERSION\")"הפלט אמור להיראות כך:
windowsVersionMaps: 1.18.6-gke.6601: windowsVersions: - imageType: WINDOWS_SAC osVersion: 10.0.18363.1198 supportEndDate: day: 10 month: 5 year: 2022 - imageType: WINDOWS_LTSC osVersion: 10.0.17763.1577 supportEndDate: day: 9 month: 1 year: 2024משיגים את גרסת Windows Server של סוג קובץ האימג'
WINDOWS_LTSC:gcloud beta container get-server-config \ --flatten=windowsVersionMaps.\"$NODE_POOL_VERSION\".windowsVersions \ --filter="windowsVersionMaps.\"$NODE_POOL_VERSION\".windowsVersions.imageType=WINDOWS_LTSC" \ --format="value(windowsVersionMaps.\"$NODE_POOL_VERSION\".windowsVersions.osVersion)"הפלט אמור להיראות כך:
10.0.17763.1577
שדרוג מאגרי צמתים של Windows Server
דרישות התאימות של גרסת הקונטיינר של Windows Server אומרות שיכול להיות שתצטרכו לבנות מחדש את קובצי האימג' של הקונטיינרים כך שיתאימו לגרסת Windows Server של גרסת GKE חדשה, לפני שתשדרגו את מאגרי הצמתים. כדאי לקרוא את ההמלצות הבאות לגבי שדרוג של מאגר צמתים מהסוג הזה:
- אם צריך, אפשר למנוע שדרוגים אוטומטיים של צמתים באמצעות החרגות תחזוקה.
- כדי לוודא שקובצי האימג' של הקונטיינרים תואמים לצמתים, צריך לבדוק את מיפוי הגרסאות וליצור את קובצי האימג' של הקונטיינרים של Windows Server כקובצי אימג' עם כמה ארכיטקטורות שיכולים לטרגט כמה גרסאות של Windows Server. אחר כך תוכלו לעדכן את פריסות הקונטיינרים כך שיתמקדו בקובצי האימג' עם ריבוי הארכיטקטורות, שיפעלו גם בגרסה הנוכחית וגם בגרסה הבאה של GKE, לפני שתפעילו באופן ידני שדרוג של מאגר הצמתים של GKE.
- אם אתם מונעים שדרוגים אוטומטיים של צמתים, בצעו שדרוגים ידניים של מאגרי צמתים באופן קבוע, כי הצמתים לא יכולים להיות יותר משתי גרסאות משניות מאחורי הגרסה של מישור הבקרה.
- כדי לקבל עדכונים באופן יזום על גרסאות חדשות של GKE ועל גרסאות של מערכת ההפעלה Windows שבהן הן משתמשות, הירשמו לקבלת התראות על שדרוגים.
- כדאי לאפשר ל-GKE לבצע שדרוגים אוטומטיים של צמתים רק אם אתם יוצרים באופן רציף קובצי אימג' של קונטיינרים של Windows Server עם כמה ארכיטקטורות, שמטרגטים את הגרסאות העדכניות ביותר של Windows Server. שדרוגים אוטומטיים של צמתים לא צפויים לגרום לבעיות בסוג קובץ האימג' של צומת Windows Server LTSC, אבל עדיין יש סיכון להיתקל בבעיות של חוסר תאימות בין גרסאות.
עדכוני Windows
העדכונים של Windows מושבתים בצומתי Windows Server. עדכונים אוטומטיים עלולים לגרום להפעלה מחדש של צמתים בזמנים לא צפויים, וכל עדכון של Windows שמותקן אחרי הפעלת צומת יאבד כשהצומת ייווצר מחדש על ידי GKE. כדי שעדכוני Windows יהיו זמינים ב-GKE, אנחנו מעדכנים מדי פעם את קובצי האימג' של צומתי Windows Server שמשמשים בגרסאות חדשות של GKE. יכול להיות שיהיה עיכוב בין המועד שבו מיקרוסופט מפיצה את העדכונים של Windows לבין המועד שבו הם זמינים ב-GKE. כשמתפרסמים עדכוני אבטחה קריטיים, GKE מעדכן את קובצי האימג' של צומתי Windows Server במהירות האפשרית.
שליטה באופן התקשורת בין Pods ושירותים של Windows
אתם יכולים לשלוט באופן שבו פודים ושירותים של Windows מתקשרים באמצעות מדיניות רשת ב-Kubernetes.
אפשר להשתמש בקונטיינר של Windows Server באשכולות שבהם מופעלת מדיניות רשת ב-GKE בגרסאות 1.22.2 ואילך. התכונה הזו זמינה לאשכולות שמשתמשים בסוגי קובצי האימג' של הצומת WINDOWS_LTSC או WINDOWS_LTSC_CONTAINERD.
אם מישורי הבקרה או הצמתים שלכם פועלים בגרסאות קודמות, אתם יכולים להעביר את מאגרי הצמתים לגרסה שתומכת במדיניות רשת ב-Kubernetes. כדי לעשות את זה, אתם צריכים לשדרג את מאגרי הצמתים ואת מישור הבקרה לגרסה 1.22.2 של GKE או לגרסה חדשה יותר.
האפשרות הזו זמינה רק אם יצרתם את האשכול עם הדגל --enable-dataplane-v2.
אחרי שמפעילים את מדיניות הרשת, כל כללי המדיניות שהוגדרו בעבר, כולל כללי מדיניות שלא פעלו במאגרי Windows Server לפני שהפעלתם את התכונה, הופכים לפעילים.
אי אפשר להשתמש בחלק מהאשכולות עם קונטיינרים של Windows Server באשכולות שמופעלת בהם מדיניות רשת ב-Kubernetes. לפרטים נוספים, עיינו בקטע מגבלות.
צפייה ביומנים והרצת שאילתות
רישום ביומן מופעל באופן אוטומטי באשכולות GKE. אפשר להציג את היומנים של הקונטיינרים ואת היומנים משירותים אחרים בצומתי Windows Server באמצעות המעקב של Kubernetes Engine.
הדוגמה הבאה היא של מסנן לקבלת יומן הקונטיינר:
resource.type="k8s_container"
resource.labels.cluster_name="your_cluster_name"
resource.labels.namespace_name="your_namespace_id"
resource.labels.container_name="your_container_name"
resource.labels.Pod_name="your_Pod_name"
גישה לצומת של Windows Server באמצעות פרוטוקול Remote Desktop (RDP)
אתם יכולים להתחבר לצומת של Windows Server באשכול באמצעות RDP. הוראות להתחברות מופיעות במאמר התחברות למכונות Windows במסמכי התיעוד של Compute Engine.
יצירת קובצי אימג' עם כמה ארכיטקטורות
אתם יכולים ליצור את קובצי האימג' עם כמה ארכיטקטורות באופן ידני או באמצעות כלי ליצירת קובצי אימג' ב-Cloud Build. הוראות מפורטות זמינות במאמר יצירת קובצי אימג' של Windows עם כמה ארכיטקטורות.
שימוש ב-gMSA
כך משתמשים בחשבון שירות מנוהל של קבוצה (gMSA) עם מאגרי צמתים של Windows Server.
מגדירים את צומתי Windows Server באשכול כך שיצטרפו אוטומטית לדומיין AD. להוראות, קראו את המאמר הגדרת צומתי Windows Server להצטרפות אוטומטית לדומיין של Active Directory.
יוצרים חשבון gMSA ונותנים לו גישה לקבוצת האבטחה שנוצרה באופן אוטומטי על ידי שירות ההצטרפות לדומיין. צריך לבצע את השלב הזה במחשב עם הרשאת אדמין לדומיין של AD.
$instanceGroupUri = gcloud container node-pools describe NODE_POOL_NAME --cluster CLUSTER_NAME --format="value(instanceGroupUrls)" $securityGroupName = ([System.Uri]$instanceGroupUri).Segments[-1] $securityGroup = dsquery group -name $securityGroupName $gmsaName = GMSA_NAME $dnsHostName = DNS_HOST_NAME New-ADServiceAccount -Name $gmsaName -DNSHostName $dnsHostName -PrincipalsAllowedToRetrieveManagedPassword $securityGroup Get-ADServiceAccount $gmsaName Test-ADServiceAccount $gmsaNameמחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים של Windows Server. לקבוצת האבטחה שנוצרה באופן אוטומטי יש שם זהה לזה של מאגר הצמתים של Windows Server. -
CLUSTER_NAME: שם האשכול. -
GMSA_NAME: השם שבחרתם ל-gMSA החדש. -
DNS_HOST_NAME: שם הדומיין שמוגדר במלואו (FQDN) של חשבון השירות שיצרתם. לדוגמה, אם הערך שלGMSA_NAMEהואwebapp01והדומיין הואexample.com, אז הערך שלDNS_HOST_NAMEהואwebapp01.example.com.
-
מגדירים את ה-gMSA לפי ההוראות במדריך הגדרת GMSA לפודים ולמאגרי Windows.
מחיקת מאגרי צמתים של Windows Server
מוחקים מאגר צמתים של Windows Server באמצעות gcloud או המסוף Google Cloud .
gcloud
gcloud container node-pools delete NODE_POOL_NAME \
--cluster=CLUSTER_NAME
--location=CONTROL_PLANE_LOCATION
המסוף
כדי למחוק מאגר צמתים של Windows Server באמצעות המסוף Google Cloud :
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
לצד האשכול שרוצים לערוך, לוחצים על more_vert Actions ואז על edit Edit.
לוחצים על הכרטיסייה Nodes.
בקטע Node Pools, לוחצים על delete Delete ליד מאגר הצמתים שרוצים למחוק.
כשמופיעה בקשת אישור, לוחצים שוב על מחיקה.
מגבלות
התכונות הבאות לא נתמכות במאגרי צמתים של Windows Server:
תכונות של מחשוב וצמתים:
תכונות רשת:
- הגדרת המספר המקסימלי של Pods לכל צומת ליותר מהמגבלה שמוגדרת כברירת מחדל (110)
- הרשאות גישה בתוך הצומת
- מטמון DNS מקומי של צומת
- רישום ביומן של מדיניות רשת ב-Kubernetes
- סוכן הסתרת IP. צומתי Windows מבצעים הסתרת IP ליעדים חיצוניים, אבל הסוכן לא נתמך.
- רשתות עם מחסנית כפולה של IPv4/IPv6. רשתות IPv6 לא נתמכות בצומתי Windows.
- שימוש פרטי בכתובות IP מסוג Class E
- שימוש פרטי בכתובות IP ציבוריות
- תמיכה מלאה ב-GKE Dataplane V2. צומתי Windows עם GKE Dataplane V2 מוגבלים לאכיפת מדיניות רשת ב-Kubernetes, בנוסף למגבלות שמתוארות במסמך המקושר.
אמצעי אבטחה:
- צומתי GKE חסויים
- תכונות אבטחה ספציפיות ל-Linux (לדוגמה, Seccomp, Apparmor ו-SELinux)
התכונות של Kubernetes
- מרחבי שמות של מארחים (לדוגמה, hostNetwork, hostPID ו-hostIPC). מערכת ההפעלה של Windows לא תומכת בהם.
- Kubernetes
service.spec.sessionAffinity - התכונות שמפורטות בקטע Compatibility and limitations במסמך Windows containers in Kubernetes
תכונות האחסון:
- סוג מערכת הקבצים שמוגדר כברירת מחדל (ext4), שמשמש עם סוג הדיסק של אחסון מתמיד מאוזן. מידע נוסף זמין במאמר StorageClasses.
- מנהל התקן CSI של Filestore
- Local SSD עם ממשקי NVMe לאחסון זמני
תכונות ניראות (observability):
- תוויות של Pod ב-Kubernetes חסרות ביומני עומסי העבודה של צומתי Windows אם היציאה לקריאה בלבד של kubelet מושבתת, כי סוכן Logging לא יכול לאחזר תוויות של Pod.
התכונות של מיקרוסופט:
שונות:
- שרת proxy ל-Cloud SQL Auth שמבוסס על Docker
- אי אפשר ליצור אשכול עם מאגרי צמתים של Windows Server בלבד, וצריך לפחות מאגר צמתים אחד של Linux.
למידע על מגבלות ספציפיות במוצרי Google Cloud אחרים שאתם רוצים להשתמש בהם עם אשכולות GKE, קראו את מסמכי התיעוד של המוצר הרלוונטי.
פתרון בעיות
במאמר פתרון בעיות במאגרי צמתים של Windows Server תוכלו לקרוא איך פותרים בעיות ספציפיות במאגרי צמתים של Windows Server.
להנחיות כלליות, קראו את מסמכי התיעוד של Kubernetes בנושא ניפוי באגים ב-Pods ובשירותים.
המאמרים הבאים
- איך פורסים אפליקציית Windows
- מבוא קצר של מיקרוסופט על קונטיינרים של Windows.
- במדריך של מיקרוסופט מוסבר איך לבחור את קובצי האימג' הבסיסיים של הקונטיינר.
- מידע על תאימות גרסאות של קונטיינרים של Microsoft ב-Windows