אם הארגון שלכם משתמש בשרת proxy מסוג HTTP לתנועת אינטרנט, אתם צריכים להגדיר את האשכולות המצורפים של GKE בהתאם. במאמר הזה מוסבר איך לבצע את ההגדרה הזו.
לפני שמתחילים
כדי להשתמש באשכולות GKE מצורפים, צריך קישוריות לשירותים שונים. Google Cloud מוודאים ששרת ה-proxy מאפשר תנועה לדומיינים הבאים:
.gcr.iocloudresourcemanager.googleapis.comcontainer.googleapis.comgkeconnect.googleapis.comgkehub.googleapis.comoauth2.googleapis.comsecuretoken.googleapis.comstorage.googleapis.comsts.googleapis.comwww.googleapis.comservicecontrol.googleapis.comlogging.googleapis.commonitoring.googleapis.comopsconfigmonitoring.googleapis.comGCP_LOCATION-gkemulticloud.googleapis.com
מחליפים את GCP_LOCATION ב Google Cloud אזור שבו נמצא האשכול. מציינים us-west1 או אזור נתמך אחר.
הגדרת תמיכה ב-proxy באשכולות GKE מצורפים
כדי להגדיר תמיכה בשרת proxy באשכולות שמצורפים ל-GKE, מבצעים את השלבים הבאים:
יוצרים קובץ תצורה של שרת proxy שמכיל ערכים למפתחות
httpProxy,noProxyו-httpsProxy:{ "httpProxy": HTTP_PROXY_AUTHENTICATION_URL, "httpsProxy": HTTPS_PROXY_AUTH_URL, "noProxy": NO_PROXY_ADDRESSES }מחליפים את מה שכתוב בשדות הבאים:
-
HTTP_PROXY_AUTHENTICATION_URL: כתובת ה-URL של שרת ה-proxy, שמורכבת משם מארח או כתובת IP, ואופציונלית מיציאה, שם משתמש וסיסמה. לדוגמה:http://user:password@192.0.2.0:80או רק198.51.100.255. -
HTTPS_PROXY_AUTH_URL: כתובת ה-URL של ה-proxy לתעבורת HTTPS מוצפנת, שכוללת שם מארח או כתובת IP, ואפשרותית גם יציאה, שם משתמש וסיסמה. -
NO_PROXY_ADDRESSES: רשימה מופרדת בפסיקים של כתובות URL, בלוקים של CIDR ושמות DNS של משאבים שיכולים לעקוף את השרת הפרוקסי. ההגדרה הזו מכוונת את האשכולות המצורפים של GKE להימנע משימוש בשרת ה-proxy עבור המשאבים שצוינו. חשוב לזכור:- הערכים יכולים להיות כתובות IP בודדות, טווחי CIDR, שמות דומיין או אפילו התו כוכבית (*). שימוש בכוכבית אחת (
*) בשדהnoProxyאומר ל-GKE attached clusters לדלג על ה-proxy לכל התנועה. - דומיין שמתחיל בנקודה, כמו
.google.com, מכוון לכל תתי-הדומיין שלו. לדוגמה,.google.comכולל כתובות כמוmail.google.comו-drive.google.com, אבל לא כולל אתgoogle.com. - כדי שהרישום יתבצע בצורה תקינה, צריך לוודא שכוללים את הדומיינים
kubernetes.default.svc.cluster.localו-kubernetes.default.svc. לדוגמה:198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc.
- הערכים יכולים להיות כתובות IP בודדות, טווחי CIDR, שמות דומיין או אפילו התו כוכבית (*). שימוש בכוכבית אחת (
כשיוצרים את קובץ התצורה של ה-Proxy, חשוב לפעול לפי ההנחיות הבאות:
- בשדות
httpProxyו-httpsProxyאי אפשר להשתמש בקידומותhttps://. להשתמש ב-http://, גם אם הכתובת האמיתית של שרת ה-proxy מתחילה ב-https://. לדוגמה, מייצגים אתhttps://proxy.example.com:3128בתורhttp://proxy.example.com:3128. - חובה לספק ערכים לכל שלושת השדות:
httpProxy,httpsProxyו-noProxy. - כדאי להוסיף דומיינים, כתובות IP או CIDR לרשימה
noProxy. מומלץ לכלול את טווח כתובות ה-IP של ה-VPC.
-
כדי ליצור סוד של Kubernetes שמכיל את תצורת ה-proxy, מריצים את הפקודה הבאה:
kubectl create secret generic SECRET_NAME \ --from-file=PROXY_CONFIGURATION_FILEמחליפים את מה שכתוב בשדות הבאים:
-
SECRET_NAME: השם של הסוד ב-Kubernetes -
PROXY_CONFIGURATION_FILE: הנתיב להגדרת השרת הפרוקסי שיצרתם בשלב 1.
-
מסמנים את הסוד של Kubernetes כבלתי ניתן לשינוי על ידי הגדרת השדה
immutableשלו לערךtrue:kubectl edit secret SECRET_NAMEמחליפים את
SECRET_NAMEבשם של Kubernetes Secret.מגדירים קלאסטר חדש או קיים לשימוש ב-Proxy:
אשכול חדש
כדי לרשום אשכול חדש ולהחיל את הגדרת ה-proxy, משתמשים בפקודה
gcloud container attached clusters register. מקפידים לציין את הארגומנטים האופציונליים--proxy-secret-nameו---proxy-secret-namespace:gcloud container attached clusters register CLUSTER_NAME \ --proxy-secret-name=SECRET_NAME \ --proxy-secret-namespace=SECRET_NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול -
SECRET_NAME: השם של סוד Kubernetes שמכיל את הגדרות ה-proxy -
SECRET_NAMESPACE: מרחב השמות של Kubernetes שבו מאוחסן הסוד
מידע על כל הארגומנטים שאפשר להשתמש בהם כשרושמים אשכול זמין בפקודה
gcloud container attached clusters register.אשכול קיים
כדי לעדכן אשכול שנרשם בעבר עם הגדרת שרת Proxy חדשה, משתמשים בפקודה
gcloud container attached clusters update. חשוב לציין את הארגומנטים האופציונליים--proxy-secret-nameו---proxy-secret-namespace:gcloud container attached clusters update CLUSTER_NAME \ --proxy-secret-name=SECRET_NAME \ --proxy-secret-namespace=SECRET_NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול -
SECRET_NAME: השם של סוד Kubernetes שמכיל את הגדרות ה-proxy -
SECRET_NAMESPACE: מרחב השמות של Kubernetes שבו מאוחסן הסוד
חובה לבצע את השלב הזה אם פרטי שרת ה-proxy השתנו, או אם לא נלקחו בחשבון דרישות ה-proxy במהלך הרישום הראשוני של האשכול.
מידע על כל הארגומנטים שאפשר להשתמש בהם כשמעדכנים אשכול זמין בפקודה
gcloud container attached clusters update.-
אחרי שמבצעים את השלבים האלה, קלאסטרים מצורפים של GKE מעבדים תעבורת נתונים יוצאת באינטרנט באמצעות שרת proxy שצוין בקובץ התצורה.