שינוי הגדרות שרת proxy של אשכול

בגרסה 1.8 של GKE ב-AWS נוספה האפשרות לשנות את הגדרות ה-proxy של אשכול בלי ליצור מחדש את האשכול.

שינוי ה-proxy בשירות הניהול

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

  1. מעדכנים את התוכן של קובץ ה-proxy.json של שירות הניהול, כמו שמתואר במאמר בנושא יצירת קובץ JSON של הגדרות ה-Proxy.

  2. מריצים מחדש את הפקודות anthos-gke aws management init ו-anthos-gke aws management apply כדי להחיל את השינויים בשירות הניהול.

שינוי ה-proxy של אשכול המשתמשים

כשיוצרים אשכול משתמשים, הוא משתמש בהגדרות לשרת proxy של שירות הניהול. כדי לשנות את הגדרות ה-proxy של אשכול משתמשים בלי לשנות את ההגדרות של שירות הניהול, צריך ליצור Kubernetes Secret שמכיל את פרטי ה-proxy, ואז להשתמש ב-kubectl כדי להחיל את השינויים.

יצירת סוד ב-Kubernetes

  1. קודם יוצרים קובץ YAML עם התוכן הבא כדי לתאר את הסוד. הסוד צריך להיות מוגדר כאטום ובלתי ניתן לשינוי. בדוגמה הזו נשתמש בשם הקובץ proxy-secret.yaml.

     apiVersion: v1
     kind: Secret
     metadata:
       name: PROXY_SECRET
     type: Opaque
     immutable: true
     stringData:
       # You can include additional key value pairs as you do with Opaque Secrets
       httpProxy: HTTP_PROXY
       httpsProxy: HTTPS_PROXY
       noProxy: NO_PROXY_LIST
     

    מחליפים את:

    • HTTP_PROXY עם כתובת שרת ה-proxy לניתוב בקשות HTTP דרך
    • HTTPS_PROXY עם כתובת אופציונלית של שרת proxy לניתוב בקשות HTTPS דרך
    • NO_PROXY_LIST עם רשימה אופציונלית של כתובות IP, טווחי CIDR ודומיינים ב-VPN שלכם שלא צריך להשתמש בהם ב-proxy
    • PROXY_SECRET בשם שבחרתם לסוד
  2. מחילים את השינויים כדי ליצור את הסוד:

    env HTTPS_PROXY=http://localhost:8118 \
       kubectl apply -f ./proxy-secret.yaml
    

עדכון ההגדרות של אשכול המשתמשים ושל מאגר הצמתים

לאחר מכן, מעדכנים את ההגדרות של AWSCluster ו-AWSNodePool כך שיפנו לשם הסוד בקטע spec.proxySecretName ובקטע spec.controlPlane.proxySecretName בהתאמה.

לבסוף, מריצים את הפקודה הבאה כדי לעדכן את אשכול המשתמשים.

   env HTTPS_PROXY=http://localhost:8118 \
     kubectl apply -f CLUSTER_YAML_FILE

מחליפים את CLUSTER_YAML_FILE בשם של קובץ ה-YAML שמגדיר את האשכול.

שינויים בסטטוס של אשכול משתמשים

אחרי שמריצים את הפקודה kubectl apply כדי להחיל את הגדרות לשרת proxy החדשות, הסטטוס של אשכול המשתמשים ישתנה מ-Provisioned ל-Updating, ואז יחזור ל-Provisioned בסיום.

הגדרת שרתי proxy ליותר מאשכול משתמשים אחד

אם יש לכם כמה אשכולות משתמשים ואתם רוצים להגדיר שרתי Proxy שונים לכל אחד מהם, אתם צריכים לפעול לפי ההוראות שבקטע שינוי שרת ה-Proxy של אשכול המשתמשים לכל אחד מהאשכולות. צריך ליצור Kubernetes Secret שונה לכל שרת proxy, ולעדכן כל הגדרת אשכול משתמש בנפרד כדי להפנות לשם של ה-Secret עבור אותו אשכול משתמש.

החלפת שרתי proxy עבור אשכול משתמשים

כדי לשנות את הגדרות ה-proxy של אשכול שכבר יש לו הגדרות proxy נפרדות, צריך ליצור וליישם Secret חדש עם הגדרות ה-proxy החדשות ושם Secret שונה. אם משתמשים שוב בשם הסוד הנוכחי, הגדרות לשרת proxy של האשכול לא ישתנו.

פתרון בעיות

אם הסוד לא בפורמט תקין או שחסרים בו מפתחות נדרשים, הפקודה תיכשל והשינוי לא יוחל. כדי לבדוק אם הסוד אומת בצורה נכונה, מעיינים ביומן האירועים של Kubernetes עבור AWSClusters ו-AWSNodePools באמצעות הפקודה הבאה:

   env HTTPS_PROXY=http://localhost:8118 \
     kubectl get events

אם הייתה שגיאה בהגדרת הסוד, מוחקים את הסוד באמצעות הפקודה הבאה:

  env HTTPS_PROXY=http://localhost:8118 \
    kubectl delete secret SECRET_NAME
  

מחליפים את SECRET_NAME בשם הסוד.

לאחר מכן, יוצרים מחדש את הסוד באמצעות קובץ YAML של סוד Proxy בפורמט הנכון ומחילים מחדש את השינוי. אפשר להשתמש באותו שם סוד שבו השתמשתם בניסיון הראשון.

למידע נוסף

הוראות להגדרת שרת proxy בפעם הראשונה מופיעות במאמר שימוש בשרת proxy.

כדי ליצור AWS VPC ייעודי, אפשר לעיין במאמר בנושא התקנת שירות הניהול.