במסגרת תהליך השדרוג, מוודאים שההתקנה של Kf משתמשת בגרסה העדכנית ביותר של אופרטור Kf:
- מוודאים שאפשר לשדרג את גרסת Kf הנוכחית לגרסה Kf v2.4.1.
- שדרוג ל-Kf v2.4.1.
- משדרגים את התלויות (אם צריך).
לפני שמתחילים
תצטרכו:
- קלאסטר קיים עם Kf מותקן.
- גישה למחשב שמותקנים בו
gcloud, kfו-kubectl.
הכנות לשדרוג
התחברות לאשכול היעד
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_IDאיך מוודאים שגרסת ה-CLI וגרסת השרת של Kf זהות
מריצים את הפקודה kf debug ומוודאים שהגרסאות של Kf CLI ושל שרת Kf זהות.
- גרסת ה-CLI מופיעה בקטע
Kf Client. - גרסת השרת של Kf מופיעה בקטע
kf["app.kubernetes.io/version"].
$ kf debug
...
Version:
Kf Client: v2.3.2
Server version: v1.20.6-gke.1000
kf["app.kubernetes.io/version"]: v2.3.2
...
אם הערכים של לקוח Kf ושרת Kf לא זהים, אבל גרסת השרת היא v2.3.x, צריך להתקין את Kf v2.4.1 CLI לפני שממשיכים.
אם ערך השרת של Kf הוא מגרסה ישנה יותר מ-v2.3.x, צריך קודם לשדרג בהדרגה ל-Kf v2.3.x כדי להמשיך.
אישור תקינות של Kf לפני שדרוג
מריצים את הפקודה kf doctor כדי לבדוק את מצב האשכול. לפני שממשיכים, צריך לוודא שכל הבדיקות עברו.
$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
--- PASS: doctor/user/ContainerRegistry
...
אם מופיעות הודעות FAIL או Error: environment failed checks, פועלים לפי ההנחיות בפלט kf doctor או מעיינים במדריך לפתרון בעיות כדי לפתור את הבעיה ומנסים שוב להריץ את הפקודה עד שהיא מצליחה.
אופציונלי: גיבוי של Kf configmaps אם ביצעתם התאמות אישיות
מריצים את הפקודה הבאה כדי ליצור גיבוי של
config-defaultsconfigmap:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlמריצים את הפקודה הבאה כדי ליצור גיבוי של
config-secretsconfigmap:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
שדרוג של אופרטור Kf
האופרטור Kf שוחרר לראשונה כחלק מגרסאות 2.4.0:
אם כבר התקנתם את אופרטור Kf כחלק מההתקנה של גרסה 2.4.0, אתם צריכים רק לשדרג אותו כחלק מהשדרוג לגרסה 2.4.1.
אם אתם משדרגים מגרסה 2.3.2, אתם צריכים להתקין את גרסה 2.4.1 של אופרטור Kf כדי לשדרג ל-Kf בניהול אופרטור.
מידע נוסף מופיע במאמר בנושא התקנת אופרטור Kf.
שדרוג האופרטור Kf הנוכחי
מפעיל Kf מבצע את השדרוגים בשבילכם.
החלת קובץ ה-YAML של האופרטור:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
התקנה של אופרטור Kf בפעם הראשונה
כדי לשדרג ל-Kf בניהול אופרטור:
החלת קובץ ה-YAML של האופרטור:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
בוחרים אם להשתמש בברירות מחדל או לשמור על ההתאמות האישיות:
הכנה של
kfsystem.yamlלשדרוג באמצעות ברירות המחדל:מורידים את הקובץ
kfsystem.yaml, ממלאים את המשתנים שבהמשך ומריצים את הפקודות באותה ספרייה שבה נמצא הקובץ כדי להכין אתkfsystem.yamlלשדרוג באופן אוטומטי.export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=YOUR_CLUSTER_NAME export CONTAINER_REGISTRY=YOUR_CLUSTER_COMPUTE_REGION-docker.pkg.dev/${CLUSTER_PROJECT_ID}/${CLUSTER_NAME} kubectl apply -f kfsystem.yaml kubectl patch \ kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': true, 'config': {'spaceContainerRegistry': '${CONTAINER_REGISTRY}', 'secrets':{'workloadidentity':{'googleserviceaccount':'${CLUSTER_NAME}-sa', 'googleprojectid':'${CLUSTER_PROJECT_ID}'}}}}}]"הכנה
kfsystem.yamlלשדרוג תוך שמירה על ההתאמות האישיות:מורידים את קובץ
kfsystem.yaml.מריצים את הפקודה הבאה כדי ליצור גיבוי של
config-defaultsconfigmap:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlמריצים את הפקודה הבאה כדי ליצור גיבוי של
config-secretsconfigmap:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yamlבודקים את מפות ה-ConfigMap הנוכחיות של config-defaults ו-config-secrets, ומחפשים את ההגדרות התואמות ב-
kfsystem.yaml.מעתיקים את ההגדרות הקיימות מ-
config-secretsומ-config-defaults. כל ההגדרות ב-config-secretsוב-config-defaultsמופיעות ב-kfsystem.yaml. השדהgoogleProjectIdהוא עכשיו שדה חובה.השדה
wi.googleServiceAccountהוא חשבון השירות המלא ב-config-secrets, אבל ב-kfsystemצריך להסיר את הסיומת. לדוגמה,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.comיהפוך ל-${CLUSTER_NAME}-saב-kfsystem.yaml.אחרי שההגדרות מועתקות, משנים את השדה
enabledב-kfsystemל-true.שומרים את השינויים ב-
kfsystem.yaml.מגדירים את האופרטור ל-Kf:
kubectl apply -f kfsystem.yaml
שדרוג יחסי התלות של Kf
שדרוג Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
שדרוג Cloud Service Mesh:
- פועלים לפי השלבים שמפורטים במדריך לשדרוג Cloud Service Mesh 1.9.
שדרוג Config Connector.
מורידים את קובץ ה-tar של Config Connector Operator.
מחלצים את קובץ ה-TAR.
tar zxvf release-bundle.tar.gzמתקינים את האופרטור של Config Connector באשכול.
kubectl apply -f operator-system/configconnector-operator.yamlאם אתם מתקינים את Config Connector בפעם הראשונה, אתם צריכים להגדיר את האופרטור של Config Connector.
מעתיקים את קוד ה-YAML הבא לקובץ בשם
configconnector.yaml:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "KF_SERVICE_ACCOUNT_NAME" # Replace with the full service account resolved from ${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
מחילים את ההגדרה על האשכול.
kubectl apply -f configconnector.yaml
לפני שממשיכים, מוודאים ש-Config Connector מותקן באופן מלא.
Config Connector מריץ את כל הרכיבים שלו במרחב שמות בשם
cnrm-system. מריצים את הפקודה הבאה כדי לוודא שה-Pods מוכנים:kubectl wait -n cnrm-system --for=condition=Ready pod --all
אם Config Connector מותקן בצורה תקינה, הפלט דומה לזה:
pod/cnrm-controller-manager-0 condition met
אם זו הפעם הראשונה שאתם מתקינים את Config Connector, אתם צריכים להגדיר את Workload Identity.
kubectl annotate serviceaccount \ --namespace cnrm-system \ --overwrite \ cnrm-controller-manager \ iam.gke.io/gcp-service-account=${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
שדרוג ל-CLI של Kf גרסה 2.4.1
מתקינים את ה-CLI:
Linux
הפקודה הזו מתקינה את Kf CLI לכל המשתמשים במערכת. כדי להתקין אותו רק לעצמכם, פועלים לפי ההוראות בכרטיסייה Cloud Shell.
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfMac
הפקודה הזו מתקינה את
kfלכל המשתמשים במערכת.gcloud storage cp gs://kf-releases/v2.4.1/kf-darwin /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfCloud Shell
הפקודה הזו מתקינה את
kfבמכונת Cloud Shell אם משתמשים ב-bash. יכול להיות שיהיה צורך לשנות את ההוראות עבור מעטפות אחרות.mkdir -p ~/bingcloud storage cp gs://kf-releases/v2.4.1/kf-linux ~/bin/kfchmod a+x ~/bin/kfecho "export PATH=$HOME/bin:$PATH" >> ~/.bashrcsource ~/.bashrcWindows
הקובץ
kfיורד לספרייה הנוכחית. אם רוצים להפעיל אותו מכל מקום אחר ולא רק מהספרייה הנוכחית, צריך להוסיף אותו לנתיב.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exeמוודאים שהגרסאות של Kf CLI ושל שרת Kf זהות:
- גרסת ה-CLI מופיעה בקטע
Kf Client. - גרסת השרת של Kf מופיעה בקטע
kf["app.kubernetes.io/version"].
$ kf debug ... Version: Kf Client: v2.4.1 Server version: v1.20.6-gke.1000 kf["app.kubernetes.io/version"]: v2.4.1 ...- גרסת ה-CLI מופיעה בקטע
אימות השדרוג של Kf
אם זו הפעם הראשונה שמתקינים את אופרטור Kf, מאשרים שהאופרטור הותקן:
kubectl get deployment -n appdevexperience appdevexperience-operatorאם לא מופיע האופרטור כמו בפלט לדוגמה שבהמשך, צריך לעיין בשלבים של התקנת אופרטור Kf בפעם הראשונה.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1hמריצים את הפקודה
doctorכדי לוודא שהגרסה החדשה שהותקנה תקינה:kf doctor --retries=20הפקודה תריץ בדיקות של האשכול כמה פעמים. זה נורמלי שכמה מהניסיונות ייכשלו בזמן שהבקרים החדשים מופעלים.
אם הפקודה נכשלת עם ההודעה
Error: environment failed checks, צריך לפעול לפי ההנחיות בפלטdoctorכדי לפתור את הבעיה ולנסות שוב להריץ את הפקודה עד שהיא תצליח.אם ביצעתם התאמות אישיות ב-
config-defaultsאו ב-config-secrets, ודאו שהן הועברו:משווים בין הקובץ
config-defaults-backup.yamlלבין הקובץkubectl diff -f config-defaults-backup.yamlכדי לוודא שהאשכול עדיין מוגדר בצורה נכונה.לדוגמה, אם שמרתם את כל השינויים מהגרסה הישנה של Kf, ואישרתם שימוש ב-buildpack חדש שצורף לגרסה הבאה של Kf:
$ kubectl diff -f config-defaults-backup.yaml diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults @@ -131,6 +131,8 @@ enable_route_services: false spaceBuildpacksV2: | - - name: new_buildpack - url: https://github.com/cloudfoundry/new-buildpack - name: staticfile_buildpack url: https://github.com/cloudfoundry/staticfile-buildpack - name: java_buildpack exit status 1
אם שלבי האימות עוברים בהצלחה, המשמעות היא שהשדרוג של האשכול בוצע בהצלחה. אם נתקלתם בבעיות, תוכלו לעיין בהנחיות שבדף התמיכה.