שינוי תוצרים של המערכת

בדף הזה מוסבר איך לשנות את הארטיפקטים של המערכת במכשיר עם פער אוויר של 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 במכונת האתחול, מבצעים את השלבים הבאים:

  1. מוודאים שיש לכם את קובץ אימג' של Docker ששונה, עם הבעיות שגורמות לשיבוש הפעולה שתוקנו.

  2. מעבירים את התמונה החדשה לצומת האתחול בסביבת GDC.

  3. נכנסים לצומת bootstrap.

  4. מאתרים את הכתובת של Artifact Registry במכונת האתחול בזמן האתחול ומגדירים אותה כמשתנה הסביבה REGISTRY_IP:

    REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
    
    REGISTRY_IP=${REGISTRY#https://}
    
  5. מאחזרים את פרטי הכניסה לגישה ל-Artifact Registry. שחזור חשבון האדמין והסיסמה:

    ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \
        -o jsonpath="{.data.secret}" | base64 -d)
    
  6. נכנסים אל Artifact Registry:

    docker login $REGISTRY_IP -u admin -p $ADMIN_PASS
    

    הודעה Login Succeeded מודפסת כדי לאמת שההתחברות ל-Artifact Registry הצליחה.

  7. מתייגים את התמונה החדשה:

    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: התג של קובץ אימג' של קונטיינר.
  8. שולחים את התמונה החדשה אל Artifact Registry:

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

העלאת קובץ אימג' של קונטיינר לאשכול התשתית של הארגון

כדי להעלות תמונות של קונטיינרים אל Artifact Registry באשכול של תשתית ארגונית, פועלים לפי השלבים הבאים:

  1. מוודאים שיש לכם את קובץ אימג' של Docker ששונה, עם הבעיות שגורמות לשיבוש הפעולה שתוקנו.

  2. מעבירים את התמונה החדשה לצומת עם גישת שורש באמצעות קובץ שורש kubeconfig לאשכול התשתית של הארגון בסביבה המבודדת.

  3. מייצאים את הנתיב של אשכול התשתית של הארגון kubeconfig כמשתנה סביבה:

    export ORG_INFRA_KUBECONFIG=KUBECONFIG_FILE_PATH
    

    מחליפים את הערך ב-KUBECONFIG_FILE_PATH בנתיב לקובץ kubeconfig.

  4. מאתרים את הכתובת של Artifact Registry בתוך האשכול ומגדירים אותה כמשתנה הסביבה REGISTRY_IP:

    REGISTRY=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG get harborcluster /
    harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
    
    REGISTRY_IP=${REGISTRY#https://}
    
  5. מוודאים שהתג REGISTRY_IP מכיל כתובת URL תקינה, כמו 10.200.0.36:10443:

    echo ${REGISTRY_IP}
    
  6. בודקים אם קיים אישור של רשות האישורים (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
    
  7. מאחזרים את פרטי הכניסה לגישה ל-Artifact Registry. כדי לאחזר את חשבון האדמין והסיסמה, משתמשים בפקודה הבאה:

    ADMIN_PASS=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG \
        -n harbor-system get secret harbor-admin \
        -o jsonpath="{.data.secret}" | base64 -d)
    
  8. נכנסים אל Artifact Registry:

    docker login $REGISTRY_IP -u admin -p $ADMIN_PASS
    

    הודעה Login Succeeded מודפסת כדי לאמת שההתחברות ל-Artifact Registry הצליחה.

  9. מתייגים את התמונה החדשה:

    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: התג של קובץ אימג' של קונטיינר.
  10. שולחים את התמונה החדשה אל Artifact Registry:

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

שינוי תוצרים של המערכת

משתמשים בפקודות gdcloud artifacts כדי לשנות ארטיפקטים של המערכת ב-GDC. כדי לעדכן, להתאים אישית ולאבטח את הפריסה, מבצעים פעולות כמו החלפת חבילות תוכנה, התאמת הגדרות והחלת תיקונים.

מבצעים את הפעולות הבאות:

  • ניהול חבילות apt.
  • יצירה וחילוץ של תמונות מחבילות OCI.
  • רשימת הגרסאות הזמינות של תמונת הבסיס של OCI.
  • תיקון חבילות קיימות.
  • שליפה ודחיפה של חבילות OCI אל ומתוך מאגר.
  • הצגת המבנה של חבילת OCI.
  • חילוץ חבילות OCI.

מידע נוסף זמין במאמר gdcloud artifacts.