בדף הזה מוסבר איך לעדכן עומסי עבודה קיימים בלי שמירת מצב שפועלים באשכול Kubernetes של מכשיר עם בידוד פיזי (air-gapped) ב-Google Distributed Cloud (GDC). ככל שהאפליקציה מתפתחת על סמך השימוש במשאבים והאופטימיזציות של ההגדרות, צריך לעדכן את מפרט ה-Pod הבסיסי באשכול Kubernetes כדי לשקף את השינויים בעומס העבודה.
הדף הזה מיועד למפתחים בקבוצת מפעילים של אפליקציות, שאחראים לעדכון של עומסי עבודה של אפליקציות בארגון שלהם.
לפני שמתחילים
כדי להשלים את המשימות שמתוארות במאמר הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
כדי ליצור, למחוק, לערוך או להציג עומסי עבודה חסרי סטטוס באשכול Kubernetes, צריך לבקש מאדמין ה-IAM בארגון להקצות לכם את התפקיד אדמין של מרחב שמות (namespace-admin). התפקיד הזה משויך למרחב השמות של הפרויקט.
הכנת הסביבה
כדי להריץ פקודות באשכול Kubernetes בשרת פיזי שהוגדר מראש, צריך לוודא שיש לכם את המשאבים הבאים:
מאתרים את שם אשכול Kubernetes או שואלים את מנהל הפלטפורמה מה שם האשכול.
אם אין לכם קובץ kubeconfig, אתם צריכים להיכנס וליצור אותו עבור אשכול Kubernetes.
משתמשים בנתיב kubeconfig של אשכול Kubernetes כדי להחליף את הערך
CLUSTER_KUBECONFIGבהוראות האלה.
עדכון הפריסה
כדי לעדכן אובייקט Deployment, מריצים את הפקודה:
kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
apply -f DEPLOYMENT_FILE
מחליפים את מה שכתוב בשדות הבאים:
CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes שמריץ את הפריסה.
NAMESPACE: מרחב השמות של הפרויקט.
DEPLOYMENT_FILE: השם שלDeploymentקובץ המניפסט שרוצים לעדכן.
הפקודה kubectl apply מחילה קובץ מניפסט על משאב. אם המשאב שצוין לא קיים, הפקודה יוצרת אותו.
יש גם כמה דרכים אחרות לעדכן משאבים בפריסה.
עדכון של קובץ אימג' של קונטיינר
כדי לשנות את התמונה של אובייקט Deployment, מריצים את הפקודה:
kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
set image deployment DEPLOYMENT_NAME \
IMAGE=IMAGE:TAG
מחליפים את מה שכתוב בשדות הבאים:
CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes שמריץ את הפריסה.
NAMESPACE: מרחב השמות של הפרויקט.
DEPLOYMENT_NAME: השם של אובייקטDeploymentשמכיל את התמונה.
IMAGE: השם של קובץ האימג' בקונטיינר.
TAG: התג לעדכון של קובץ אימג' של קונטיינר.
עדכון התמונה של פריסה שימושי לשינוי שדות של בורר או משאבים, כמו בקשות או מגבלות.
לדוגמה, כדי לעדכן אובייקט Deployment בשם nginx לשימוש בגרסה 1.9.1, מריצים את הפקודה:
kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
set image deployment nginx nginx=nginx:1.9.1
החזרה לגרסה קודמת של עדכון
אם רוצים לבטל עדכון, למשל אם הפריסה הופכת ללא יציבה, אפשר להשתמש ב-CLI של kubectl. היסטוריית ההשקה של אובייקט Deployment נשמרת במערכת, כך שאפשר לבצע החזרה לגרסה קודמת בכל שלב.
כדי לבטל עדכון שנמצא בתהליך או שהושלם ולחזור לגרסה הקודמת שלו, מריצים את הפקודה:
kubectl --kubeconfig CLUSTER_KUBECONFIG \
-n NAMESPACE \
rollout undo deployment DEPLOYMENT_NAME
מחליפים את מה שכתוב בשדות הבאים:
CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes שמריץ את הפריסה.
NAMESPACE: מרחב השמות של הפרויקט.
DEPLOYMENT_NAME: השם של אובייקטDeploymentשרוצים לבצע לו שחזור.
כדי לחזור לגרסה ספציפית, מריצים את הפקודה:
kubectl --kubeconfig CLUSTER_KUBECONFIG \
-n NAMESPACE \
rollout undo deployment DEPLOYMENT_NAME \
--to-revision=REVISION_NUMBER
מחליפים את מה שכתוב בשדות הבאים:
CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes שמריץ את הפריסה.
NAMESPACE: מרחב השמות של הפרויקט.
DEPLOYMENT_NAME: השם של אובייקטDeploymentשרוצים לבצע לו שחזור.
REVISION_NUMBER: המספר השלם שמגדיר את מספר הגרסה שאליה רוצים לחזור, למשל3.