בדף הזה מוסבר איך להגדיר כללי פרוקסי וחומת אש ל-Google Distributed Cloud.
הגדרת שרת ה-proxy
אם המכונות שבהן אתם משתמשים לאתחול ולצמתי אשכול משתמשות בשרת proxy כדי לגשת לאינטרנט, אתם צריכים:
- הגדרת פרוקסי למנהל החבילות בצמתי האשכול
- מגדירים את פרטי ה-proxy בקובץ התצורה של האשכול.
דרישות מוקדמות
שרת ה-proxy צריך לאפשר חיבורים לכתובות הבאות:
| כתובת | מטרה |
|---|---|
*.gcr.io |
שליפת תמונות מ-Artifact Registry. |
accounts.google.com |
עיבוד בקשות הרשאה ל-OpenID ואיתור מפתחות ציבוריים לאימות טוקנים. |
binaryauthorization.googleapis.com |
נדרש אם משתמשים בBinary Authorization. מאשרים (או דוחים) בקשות מאשכולות להפעלת תמונות של קונטיינרים. |
cloudresourcemanager.googleapis.com |
פתרון בעיות במטא-נתונים שקשורים לפרויקט Google Cloud שאליו מתחברים עם האשכול. |
compute.googleapis.com |
אימות האזור של המשאבים ב-Cloud Logging וב-Cloud Monitoring. |
connectgateway.googleapis.com |
מפעילים את האפשרות להעניק לצוות Cloud Customer Care הרשאת קריאה בלבד לאשכול כדי לאבחן בעיות. |
dl.google.com |
מורידים ומתקינים את Google Cloud SDK. |
gkeconnect.googleapis.com |
קובעים את הערוץ שדרכו מתקבלות בקשות מ- Google Cloud ומוחזרות תשובות. אם האשכול שלכם נרשם לצי באמצעות Google Cloud אזור, אתם צריכים להוסיף לרשימת ההיתרים את REGION-gkeconnect.googleapis.com (לדוגמה, us-central1-gkeconnect.googleapis.com). אם לא ציינתם אזור, האשכול משתמש במופע הגלובלי של שירות Connect, ואתם צריכים להוסיף לרשימת ההיתרים את gkeconnect.googleapis.com. אם אתם צריכים למצוא את המיקום של חברות ב-Fleet למען האשכול שלכם, מריצים את gcloud container fleet memberships list.
מידע נוסף זמין במאמר gkeConnect.location.
|
gkehub.googleapis.com |
יצירת משאבי חברות ב-fleet בצד Google Cloud, שמתאימים לאשכול שאליו מתחברים Google Cloud. |
gkeonprem.googleapis.com |
יצירה וניהול של מחזור החיים של האשכול בשרת פיזי ובתשתית VMware. |
gkeonprem.mtls.googleapis.com |
ליצור ולנהל את מחזור החיים של האשכול בשרת פיזי ובתשתית VMware. הגרסה הזו של ה-API משמשת באופן אוטומטי עם mTLS. |
iam.googleapis.com |
ליצור חשבונות שירות שבהם אפשר להשתמש כדי לבצע אימות ל- Google Cloud ולשלוח קריאות ל-API. |
iamcredentials.googleapis.com |
היא מספקת בקרת כניסה ודיווח על טלמטריה לרישום ביומן הביקורת. |
kubernetesmetadata.googleapis.com |
אשכולות משתמשים ב-API הזה כנקודת קצה לשליחת מטא-נתונים של Kubernetes אלGoogle Cloud. המטא-נתונים חיוניים למעקב אחרי האשכול, לניפוי באגים ולשחזור. |
logging.googleapis.com |
לכתוב רשומות ביומן ולנהל את ההגדרה של Cloud Logging. |
monitoring.googleapis.com |
ניהול הנתונים וההגדרות של Cloud Monitoring. |
oauth2.googleapis.com |
אימות באמצעות החלפת אסימון OAuth לגישה לחשבון. |
opsconfigmonitoring.googleapis.com |
אוספים מטא-נתונים של משאבי Kubernetes כמו pods, פריסות או צמתים כדי להעשיר את שאילתות המדדים. |
releases.hashicorp.com |
זה שינוי אופציונלי. משתמשים בלקוח Terraform בתחנת העבודה של האדמין כדי להריץ פקודות, כמו terraform apply. |
securetoken.googleapis.com |
אחזור אסימוני רענון להרשאה של Workload Identity. |
servicecontrol.googleapis.com |
לכתוב רשומות ביומן הביקורת ביומני הביקורת של Cloud. |
serviceusage.googleapis.com |
מפעילים ומאמתים שירותים וממשקי API. |
stackdriver.googleapis.com |
ניהול מטא-נתונים של Google Cloud Observability, כמו חשבונות Stackdriver. |
storage.googleapis.com |
ניהול של אחסון אובייקטים וקטגוריות, כמו אובייקטים של Artifact Registry. |
sts.googleapis.com |
המרת פרטי כניסה של Google או של צד שלישי באסימון גישה לטווח קצר ל Google Cloud משאבים. |
www.googleapis.com |
אימות של אסימוני שירות מבקשות שירות נכנסות של Google Cloud . |
בנוסף לכתובות ה-URL האלה, שרת ה-proxy צריך לאפשר גם את כל המראות של החבילות שנדרשות למנהל החבילות של מערכת ההפעלה. אפשר לעדכן את ההגדרה של מנהל החבילות כדי להשתמש ברשימה דטרמיניסטית יותר, שקל יותר לנהל.
הגדרת פרוקסי למנהל החבילות בצמתי האשכול
Google Distributed Cloud משתמש במנהל החבילות APT ב-Ubuntu ובמנהל החבילות DNF ב-Red Hat Enterprise Linux. מוודאים שמנהל החבילות של מערכת ההפעלה כולל את הגדרות ה-proxy הנכונות.
פרטים על הגדרת ה-proxy מופיעים במסמכי התיעוד של הפצת מערכת ההפעלה. בדוגמאות הבאות מוצגת דרך אחת להגדרת הגדרות ה-proxy:
APT
בדוגמאות הבאות מוסבר איך להגדיר את ה-proxy עבור APT:
sudo touch /etc/apt/apt.conf.d/proxy.conf
echo 'Acquire::http::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
>> /etc/apt/apt.conf.d/proxy.conf
echo 'Acquire::https::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
>> /etc/apt/apt.conf.d/proxy.conf
מחליפים את USERNAME:PASSWORD@DOMAIN בפרטים שספציפיים להגדרה שלכם. לדוגמה, אם ה-proxy לא דורש כניסה, אל תכללו את USERNAME:PASSWORD@ עם DOMAIN.
DNF
בדוגמה הבאה אפשר לראות איך להגדיר את ה-proxy עבור DNF:
echo "proxy=http://USERNAME:PASSWORD@DOMAIN" >> /etc/dnf/dnf.conf
מחליפים את USERNAME:PASSWORD@DOMAIN בפרטים שספציפיים להגדרה שלכם. לדוגמה, אם ה-proxy לא דורש כניסה, אל תכללו את USERNAME:PASSWORD@ עם DOMAIN.
הגדרת פרטי שרת Proxy בקובץ ההגדרות של האשכול
בקובץ התצורה של האשכול, מגדירים את הערכים הבאים כדי להגדיר את האשכול לשימוש בשרת proxy:
proxy.url
מחרוזת שמציינת את כתובת ה-URL של ה-proxy. מכונות ה-bootstrap והצמתים משתמשות בפרוקסי הזה כדי לגשת לאינטרנט. מחרוזת כתובת ה-URL של השרת הפרוקסי חייבת להתחיל בסכימה שלו, למשל http:// או https://.
proxy.noProxy
רשימה של כתובות IP, שמות מארחים ושמות דומיין שלא צריכים לעבור דרך שרת ה-proxy.
ברוב המקרים, אין צורך להוסיף פריטים לרשימה הזו.
noProxy תרחישי שימוש:
שימוש במאגר פרטי של חבילות, שנמצא באותה רשת פרטית (לא צריך proxy כדי לגשת אליו)
שימוש במראה פרטית של מאגר, שנמצאת באותה רשת פרטית (לא צריך proxy כדי לגשת אליה)
דוגמה
הדוגמה הבאה מציגה את הגדרות לשרת proxy בקובץ התצורה של אשכול:
proxy:
url: http://USERNAME:PASSWORD@DOMAIN
noProxy:
- example1.com
- example2.com
הגדרות proxy ל-GKE Identity Service
אם אתם משתמשים ב-GKE Identity Service לאימות באשכולות של Google Distributed Cloud, צריך לבצע את השלבים הנוספים הבאים כדי לוודא ש-GKE Identity Service פועל כשמשתמשים בשרת proxy.
בקובץ התצורה של האשכול, מגדירים את פרטי ה-proxy בקטע OIDC
authenticationשל הגדרות GKE Identity Service.authentication: oidc: proxy: http://USERNAME:PASSWORD@DOMAINצריך לעדכן את ההגדרות של שרת ה-proxy כדי לאפשר חיבורים לכתובות ה-URL של האימות של ספק ה-OIDC.
איך משתמשים ב-proxy בתוך האשכול
ככלל, פקודות bmctl והתהליכים שהן יוצרות משתמשים בהגדרות ה-proxy שמוגדרות על ידי משתני הסביבה HTTPS_PROXY ו-NO_PROXY, אם הם מוגדרים. אחרת, פקודות bmctl משתמשות בהגדרות ה-proxy מקובץ התצורה של האשכול. פקודות אחרות שמופעלות בתחנת העבודה של האדמין, במכונות של צומתי האשכול או על ידי אשכול האתחול משתמשות בהגדרות ה-proxy מקובץ התצורה של האשכול.
מנהל החבילות של מערכת ההפעלה בכל צומת משתמש בקובצי התצורה שלו להגדרות שרת Proxy.
ביטול הגדרת ה-proxy במכונת האתחול
כדי להריץ את תחנת העבודה של האדמין מאחורי שרת Proxy שונה מזה שבו משתמשות מכונות הצומת, צריך לשנות את הגדרות ה-Proxy בקובץ התצורה של האשכול. כדי לשנות את הגדרות ה-Proxy, מגדירים את משתני הסביבה הבאים במכונת האתחול:
export HTTPS_PROXY=http://USERNAME:PASSWORD@DOMAIN
מחליפים את USERNAME:PASSWORD@DOMAIN בפרטים שספציפיים להגדרה שלכם.
export NO_PROXY=example1.com,example2.com
מחליפים את example1.com,example2.com בכתובות IP, בשמות מארחים ובשמות דומיין שלא אמורים לעבור דרך שרת ה-proxy.
תופעות לוואי
כשמריצים את bmctl כמשתמש root, הוא מעדכן את הגדרת ה-proxy של Docker במכונת האתחול. אם לא מריצים את bmctl כ-root, צריך להגדיר את ה-proxy של Docker באופן ידני.
כללי חומת אש
כדי לאפשר את התעבורה שנדרשת ל-Google Distributed Cloud, צריך להגדיר את כללי חומת האש כמו שמתואר בקטעים הבאים.
לדרישות מוקדמות לניוד ב-Google Distributed Cloud, אפשר לעיין במאמר בנושא שימוש ביציאות.
כללי חומת אש לכתובות IP של צומתי אשכול
בטבלה הבאה מתוארים כללי חומת האש לכתובות IP שזמינות באשכולות שלכם.
מאת |
יציאת המקור |
אל |
יציאה |
פרוטוקול |
תיאור |
|---|---|---|---|---|---|
| צומת באשכול | 1024 - 65535 | cloudresourcemanager.googleapis.comgkeconnect.googleapis.comgkehub.googleapis.com |
443 | TCP/HTTPS | נדרשת גישה לרישום צי הרכב. |
| Cloud Logging Collector, שפועל בצומת של האשכול | 1024 - 65535 | oauth2.googleapis.comlogging.googleapis.comstackdriver.googleapis.comservicecontrol.googleapis.comstorage.googleapis.comwww.googleapis.com |
443 | TCP/HTTPS | |
| Cloud Metadata Collector, שפועל בצומת של האשכול | 1024 - 65535 | opsconfigmonitoring.googleapis.com |
443 | TCP/HTTPS | |
| Cloud Monitoring Collector, שפועל בצומת של האשכול | 1024 - 65535 | oauth2.googleapis.commonitoring.googleapis.comstackdriver.googleapis.comservicecontrol.googleapis.com |
443 | TCP/HTTPS | |
| צומת באשכול | 1024 - 65535 | מאגר Docker מקומי באתר | תלוי במרשם | TCP/HTTPS | נדרש אם Google Distributed Cloud מוגדר לשימוש במרשם Docker פרטי מקומי במקום ב-gcr.io. |
| צומת באשכול | 1024 - 65535 | gcr.iooauth2.googleapis.comstorage.googleapis.comכל כתובת URL של Google API מהצורה *.googleapis.com שנדרשת עבור השירותים שמופעלים עבור אשכול האדמין. |
443 | TCP/HTTPS | הורדת תמונות ממאגרי Docker ציבוריים. לא נדרש אם משתמשים במאגר Docker פרטי. |
| Connect Agent, שפועל בצומת של אשכול | 1024 - 65535 | cloudresourcemanager.googleapis.comgkeconnect.googleapis.comgkehub.googleapis.comwww.googleapis.comiam.googleapis.comiamcredentials.googleapis.comoauth2.googleapis.comsecuretoken.googleapis.comsts.googleapis.comaccounts.google.com |
443 | TCP/HTTPS | מידע נוסף על התנועה שמנוהלת על ידי Connect Agent זמין במאמר סקירה כללית על Connect Agent. |
| צומת באשכול | 1024 - 65535 |
gkeonprem.googleapis.comgkeonprem.mtls.googleapis.com |
443 | TCP/HTTPS | ליצור ולנהל את מחזור החיים של האשכול בשרת פיזי ובתשתית VMware. |
כללי חומת אש לרכיבים הנותרים
הכללים שמתוארים בטבלה הבאה חלים על כל הרכיבים האחרים שלא מופיעים בקטע הקודם.
מאת |
יציאת המקור |
אל |
יציאה |
פרוטוקול |
תיאור |
|---|---|---|---|---|---|
| לקוחות ומשתמשי קצה של אפליקציות | הכול | כתובת VIP של Istio ingress | 80, 443 | TCP | תנועת גולשים של משתמשי קצה לשירות הכניסה של אשכול משתמשים. |
| תחנת עבודה לאדמין | 32768 - 60999 | gcr.iocloudresourcemanager.googleapis.comoauth2.googleapis.comstorage.googleapis.comכל כתובת URL *.googleapis.com שנדרשת לשירותים שהופעלו
באשכול הזה |
443 | TCP/HTTPS | הורדה של קובצי אימג' של Docker ממאגרי Docker ציבוריים. |
| תחנת עבודה לאדמין | 32768 - 60999 | gcr.iocloudresourcemanager.googleapis.comiam.googleapis.comoauth2.googleapis.comserviceusage.googleapis.comstorage.googleapis.comכל כתובת URL של *.googleapis.com שנדרשת לשירותים שהופעלו
עבור אשכולות האדמינים או המשתמשים |
443 | TCP/HTTPS | בדיקות קדם הפעלה (אימות). |