בדף הזה מוסבר איך להגדיר כללי פרוקסי וחומת אש ל-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 ולשליחת תשובות. אם האשכול שלכם נרשם ל-Fleet באמצעות Google Cloud אזור, אתם צריכים להוסיף לרשימת ההיתרים את REGION-gkeconnect.googleapis.com (לדוגמה, us-central1-gkeconnect.googleapis.com). אם לא ציינתם אזור, האשכול משתמש במופע הגלובלי של שירות Connect, ואתם צריכים להוסיף לרשימת ההיתרים את gkeconnect.googleapis.com. אם אתם צריכים למצוא את המיקום של חברות בצי עבור האשכול שלכם, מריצים את הפקודה gcloud container fleet memberships list.
מידע נוסף זמין במאמר gkeConnect.location.
|
gkehub.googleapis.com |
יצירת משאבי חברות בFleet בצד Google CloudGoogle 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 והצמתים משתמשות בשרת ה-proxy הזה כדי לגשת לאינטרנט. מחרוזת כתובת ה-URL של השרת הפרוקסי חייבת להתחיל בסכימה שלו, למשל http:// או https://.
proxy.noProxy
רשימה של כתובות IP, שמות מארחים ושמות דומיין שלא צריכים לעבור דרך שרת ה-proxy.
ברוב המקרים, אין צורך להוסיף פריטים לרשימה הזו.
noProxy תרחישי שימוש:
שימוש במאגר פרטי של חבילות, שנמצא באותה רשת פרטית (לא צריך proxy כדי לגשת אליו)
שימוש במראה פרטית של מאגר, שנמצאת באותה רשת פרטית (לא צריך proxy כדי לגשת אליה)
דוגמה
דוגמה להגדרות לשרת proxy בקובץ התצורה של אשכול:
proxy:
url: http://USERNAME:PASSWORD@DOMAIN
noProxy:
- example1.com
- example2.com
הגדרות של שרת proxy בשביל שירות הזהויות של GKE
אם אתם משתמשים בשירות הזהויות של GKE לאימות באשכולות של Google Distributed Cloud, צריך לבצע את השלבים הנוספים הבאים כדי לוודא ששירות הזהויות של GKE פועל כשמשתמשים בשרת proxy.
בקובץ התצורה של האשכול, מגדירים את פרטי ה-proxy בקטע OIDC
authenticationשל הגדרות שירות הזהויות של GKE.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. |
כללי חומת אש לרכיבים הנותרים
הכללים שמתוארים בטבלה הבאה חלים על כל הרכיבים האחרים שלא מופיעים בקטע הקודם.
מאת |
יציאת המקור |
אל |
יציאה |
פרוטוקול |
תיאור |
|---|---|---|---|---|---|
| לקוחות ומשתמשי קצה של אפליקציות | הכול | כתובת IP וירטואלית של Istio ingress | 80, 443 | TCP | תנועת משתמשי קצה לשירות הכניסה של אשכול משתמשים. |
| תחנת עבודה לאדמין | 32768 - 60999 | gcr.iocloudresourcemanager.googleapis.comoauth2.googleapis.comstorage.googleapis.comכל כתובת *.googleapis.com URL שנדרשת לשירותים שהופעלו
באשכול הזה |
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 | בדיקות קדם הפעלה (אימות). |