בדף הזה מוסבר איך לשנות את הארטיפקטים של המערכת במכשיר עם פער אוויר של Google Distributed Cloud (GDC).
לשנות ארטיפקטים של המערכת ב-GDC כדי לנהל ולשפר את הפריסה,
לפני שמתחילים
כדי לשנות ארטיפקטים של המערכת, צריך לקבל גישה לאבחון וגישה לתפקידים הנדרשים של ניהול זהויות והרשאות גישה:
- גישה לאבחון היא מצב גישה עם הרשאות מיוחדות שנדרש כדי לתמוך בלקוח בצורה מאובטחת כשהוא נתקל בבעיה. כדי לקבל את הגישה הזו, צריך ליצור כרטיס תמיכה.
- כלי לניפוי באגים ב-Artifact Registry של המערכת: יש לו גישת קריאה וכתיבה לכל משאבי Harbor. צריך לבקש מאדמין לענייני אבטחה להקצות לכם את תפקיד האשכול System Artifact Registry Debugger (
sar-debugger). - מנפה הבאגים של הסודות של מערכת Artifact Registry: יש לו גישה למנפה הבאגים במרחב השמות
harbor-system. צריך לבקש מאדמין האבטחה להקצות לכם את התפקיד System Artifact Registry harbor-system secret Debugger (sar-harbor-system-secret-debugger).
העלאת תמונות Docker
כדי לשנות ארטיפקטים של המערכת, צריך להעלות קובצי אימג' חדשים של Docker. שיטת ההעלאה תלויה באחד משני המאגרים הבאים שאליהם אתם דוחפים את קובצי האימג' של הקונטיינר:
- מעלים קובצי אימג' של קונטיינרים אל Artifact Registry במכונת האתחול.
- מעלים תמונות של קונטיינרים אל Artifact Registry באשכול התשתית של הארגון.
בקטעים הבאים מוסבר איך מעלים את שני סוגי הרשומות.
העלאת קובץ אימג' של קונטיינר במכונת האתחול
כדי להעלות תמונות של מאגרי תגים אל Artifact Registry במכונת האתחול, מבצעים את השלבים הבאים:
מוודאים שיש לכם את קובץ אימג' של Docker ששונה, עם הבעיות שגורמות לשיבוש הפעולה שתוקנו.
מעבירים את התמונה החדשה לצומת האתחול בסביבת GDC.
נכנסים לצומת bootstrap.
מאתרים את הכתובת של Artifact Registry במכונת האתחול בזמן האתחול ומגדירים אותה כמשתנה הסביבה
REGISTRY_IP:REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}מאחזרים את פרטי הכניסה לגישה ל-Artifact Registry. שחזור חשבון האדמין והסיסמה:
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)נכנסים אל Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSהודעה
Login Succeededמודפסת כדי לאמת שההתחברות ל-Artifact Registry הצליחה.מתייגים את התמונה החדשה:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGמחליפים את מה שכתוב בשדות הבאים:
-
CONTAINER_IMAGE_URL: כתובת ה-URL של קובץ אימג' של קונטיינר מקומי, כמוgcr.io/repository/image:tag. -
PROJECT_NAME: שם הפרויקט ב-Artifact Registry. -
IMAGE_NAME: שם קובץ האימג' בקונטיינר. -
TAG: התג של קובץ אימג' של קונטיינר.
-
שולחים את התמונה החדשה אל Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
העלאת קובץ אימג' של קונטיינר לאשכול התשתית של הארגון
כדי להעלות תמונות של קונטיינרים אל Artifact Registry באשכול של תשתית ארגונית, פועלים לפי השלבים הבאים:
מוודאים שיש לכם את קובץ אימג' של Docker ששונה, עם הבעיות שגורמות לשיבוש הפעולה שתוקנו.
מעבירים את התמונה החדשה לצומת עם גישת שורש באמצעות קובץ שורש
kubeconfigלאשכול התשתית של הארגון בסביבה המבודדת.מייצאים את הנתיב של אשכול התשתית של הארגון
kubeconfigכמשתנה סביבה:export ORG_INFRA_KUBECONFIG=KUBECONFIG_FILE_PATHמחליפים את הערך ב-
KUBECONFIG_FILE_PATHבנתיב לקובץkubeconfig.מאתרים את הכתובת של Artifact Registry בתוך האשכול ומגדירים אותה כמשתנה הסביבה
REGISTRY_IP:REGISTRY=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG get harborcluster / harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}מוודאים שהתג
REGISTRY_IPמכיל כתובת URL תקינה, כמו10.200.0.36:10443:echo ${REGISTRY_IP}בודקים אם קיים אישור של רשות האישורים (CA):
ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crtאם האישור לא קיים, צריך ליצור אותו ולהגדיר אותו:
mkdir -p /etc/docker/certs.d/${REGISTRY_IP}/ chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ echo $(kubectl get secret harbor-cert-secret -n istio-system -o jsonpath='{.data.ca\.crt}' --kubeconfig $ORG_INFRA_KUBECONFIG) | openssl base64 -A -d > /etc/docker/certs.d/${REGISTRY_IP}/ca.crt chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ca.crtמאחזרים את פרטי הכניסה לגישה ל-Artifact Registry. כדי לאחזר את חשבון האדמין והסיסמה, משתמשים בפקודה הבאה:
ADMIN_PASS=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)נכנסים אל Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSהודעה
Login Succeededמודפסת כדי לאמת שההתחברות ל-Artifact Registry הצליחה.מתייגים את התמונה החדשה:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGמחליפים את מה שכתוב בשדות הבאים:
-
CONTAINER_IMAGE_URL: כתובת ה-URL של קובץ אימג' של קונטיינר מקומי, כמוgcr.io/repository/image:tag. -
PROJECT_NAME: שם הפרויקט ב-Artifact Registry. -
IMAGE_NAME: שם קובץ האימג' בקונטיינר. -
TAG: התג של קובץ אימג' של קונטיינר.
-
שולחים את התמונה החדשה אל Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
שינוי תוצרים של המערכת
משתמשים בפקודות gdcloud artifacts כדי לשנות ארטיפקטים של המערכת ב-GDC. כדי לעדכן, להתאים אישית ולאבטח את הפריסה, מבצעים פעולות כמו החלפת חבילות תוכנה, התאמת הגדרות והחלת תיקונים.
מבצעים את הפעולות הבאות:
- ניהול חבילות
apt. - יצירה וחילוץ של תמונות מחבילות OCI.
- רשימת הגרסאות הזמינות של תמונת הבסיס של OCI.
- תיקון חבילות קיימות.
- שליפה ודחיפה של חבילות OCI אל ומתוך מאגר.
- הצגת המבנה של חבילת OCI.
- חילוץ חבילות OCI.
מידע נוסף זמין במאמר gdcloud artifacts.