תמיכה ב-Proxy באשכולות EKS מצורפים

אם הארגון שלכם משתמש בשרת proxy מסוג HTTP לתנועת אינטרנט, אתם צריכים להגדיר את האשכולות המצורפים של GKE בהתאם. במאמר הזה מוסבר איך לבצע את ההגדרה הזו.

לפני שמתחילים

כדי להשתמש באשכולות GKE מצורפים, צריך קישוריות לשירותים שונים. Google Cloud מוודאים ששרת ה-proxy מאפשר תנועה לדומיינים הבאים:

  • .gcr.io
  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • securetoken.googleapis.com
  • storage.googleapis.com
  • sts.googleapis.com
  • www.googleapis.com
  • servicecontrol.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • GCP_LOCATION-gkemulticloud.googleapis.com

מחליפים את GCP_LOCATION ב Google Cloud אזור שבו נמצא האשכול. מציינים us-west1 או אזור נתמך אחר.

הגדרת תמיכה ב-proxy באשכולות GKE מצורפים

כדי להגדיר תמיכה בשרת proxy באשכולות שמצורפים ל-GKE, מבצעים את השלבים הבאים:

  1. יוצרים קובץ תצורה של שרת 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.

    כשיוצרים את קובץ התצורה של ה-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.
  2. כדי ליצור סוד של Kubernetes שמכיל את תצורת ה-proxy, מריצים את הפקודה הבאה:

    kubectl create secret generic SECRET_NAME \
    --from-file=PROXY_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SECRET_NAME: השם של הסוד ב-Kubernetes
    • PROXY_CONFIGURATION_FILE: הנתיב להגדרת השרת הפרוקסי שיצרתם בשלב 1.
  3. מסמנים את הסוד של Kubernetes כבלתי ניתן לשינוי על ידי הגדרת השדה immutable שלו לערך true:

    kubectl edit secret SECRET_NAME
    

    מחליפים את SECRET_NAME בשם של Kubernetes Secret.

  4. מגדירים קלאסטר חדש או קיים לשימוש ב-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 שצוין בקובץ התצורה.