התקנה מאחורי שרת proxy

בדף הזה מוסבר איך להגדיר כללי פרוקסי וחומת אש ל-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.

  1. בקובץ התצורה של האשכול, מגדירים את פרטי ה-proxy בקטע OIDCauthentication של הגדרות GKE Identity Service.

      authentication:
        oidc:
          proxy: http://USERNAME:PASSWORD@DOMAIN
    
  2. צריך לעדכן את ההגדרות של שרת ה-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.com
gkeconnect.googleapis.com
gkehub.googleapis.com
443 TCP/HTTPS נדרשת גישה לרישום צי הרכב.
Cloud Logging Collector, שפועל בצומת של האשכול ‫1024 - 65535 oauth2.googleapis.com
logging.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
storage.googleapis.com
www.googleapis.com
443 TCP/HTTPS
Cloud Metadata Collector, שפועל בצומת של האשכול ‫1024 - 65535 opsconfigmonitoring.googleapis.com 443 TCP/HTTPS
Cloud Monitoring Collector, שפועל בצומת של האשכול ‫1024 - 65535 oauth2.googleapis.com
monitoring.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
443 TCP/HTTPS
צומת באשכול ‫1024 - 65535 מאגר Docker מקומי באתר תלוי במרשם TCP/HTTPS נדרש אם Google Distributed Cloud מוגדר לשימוש במרשם Docker פרטי מקומי במקום ב-gcr.io.
צומת באשכול ‫1024 - 65535 gcr.io
oauth2.googleapis.com
storage.googleapis.com
כל כתובת URL של Google API מהצורה *.googleapis.com שנדרשת עבור השירותים שמופעלים עבור אשכול האדמין.
443 TCP/HTTPS הורדת תמונות ממאגרי Docker ציבוריים. לא נדרש אם משתמשים במאגר Docker פרטי.
‫Connect Agent, שפועל בצומת של אשכול ‫1024 - 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
www.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
sts.googleapis.com
accounts.google.com
443 TCP/HTTPS מידע נוסף על התנועה שמנוהלת על ידי Connect Agent זמין במאמר סקירה כללית על Connect Agent.
צומת באשכול ‫1024 - 65535 gkeonprem.googleapis.com
gkeonprem.mtls.googleapis.com
443 TCP/HTTPS ליצור ולנהל את מחזור החיים של האשכול בשרת פיזי ובתשתית VMware.

כללי חומת אש לרכיבים הנותרים

הכללים שמתוארים בטבלה הבאה חלים על כל הרכיבים האחרים שלא מופיעים בקטע הקודם.

מאת

יציאת המקור

אל

יציאה

פרוטוקול

תיאור

לקוחות ומשתמשי קצה של אפליקציות הכול כתובת VIP של Istio ingress ‫80, 443 TCP תנועת גולשים של משתמשי קצה לשירות הכניסה של אשכול משתמשים.
תחנת עבודה לאדמין ‫32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
כל כתובת URL *.googleapis.com שנדרשת לשירותים שהופעלו באשכול הזה
443 TCP/HTTPS הורדה של קובצי אימג' של Docker ממאגרי Docker ציבוריים.
תחנת עבודה לאדמין ‫32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
iam.googleapis.com
oauth2.googleapis.com
serviceusage.googleapis.com
storage.googleapis.com
כל כתובת URL של *.googleapis.com שנדרשת לשירותים שהופעלו עבור אשכולות האדמינים או המשתמשים
443 TCP/HTTPS בדיקות קדם הפעלה (אימות).