בגרסה 1.8 של GKE ב-AWS נוספה האפשרות לשנות את הגדרות ה-proxy של אשכול בלי ליצור מחדש את האשכול.
שינוי ה-proxy בשירות הניהול
כדי לשנות את הגדרות לשרת proxy בשירות הניהול של GKE ב-AWS, מבצעים את השלבים הבאים:
מעדכנים את התוכן של קובץ ה-proxy.json של שירות הניהול, כמו שמתואר במאמר בנושא יצירת קובץ JSON של הגדרות ה-Proxy.
מריצים מחדש את הפקודות
anthos-gke aws management initו-anthos-gke aws management applyכדי להחיל את השינויים בשירות הניהול.
שינוי ה-proxy של אשכול המשתמשים
כשיוצרים אשכול משתמשים, הוא משתמש בהגדרות לשרת proxy של שירות הניהול.
כדי לשנות את הגדרות ה-proxy של אשכול משתמשים בלי לשנות את ההגדרות של שירות הניהול, צריך ליצור Kubernetes Secret שמכיל את פרטי ה-proxy, ואז להשתמש ב-kubectl כדי להחיל את השינויים.
יצירת סוד ב-Kubernetes
קודם יוצרים קובץ 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 בשם שבחרתם לסוד
מחילים את השינויים כדי ליצור את הסוד:
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 ייעודי, אפשר לעיין במאמר בנושא התקנת שירות הניהול.