סקירה כללית של מאגרים מרוחקים

מאגרי מידע מרוחקים משמשים כשרתי proxy למקורות במעלה הזרם, כמו Docker Hub ו-Maven Central, ומספקים יותר שליטה על התלות ב-Google Cloud. במאמר הזה נסביר איך מאגרי מידע מרוחקים פועלים ונספק כמה תרחישי שימוש.

הוראות ליצירת מאגר מרחוק זמינות במאמר יצירת מאגרים מרחוק.

איך מאגרי מידע מרוחקים פועלים

מאגרים מרוחקים מאחסנים ארטיפקטים ממאגרי Artifact Registry רגילים וממקורות חיצוניים. בפעם הראשונה שאתם מבקשים גרסה של חבילה, Artifact Registry מוריד את החבילה ומאחסן אותה במטמון במאגר המרוחק. בפעם הבאה שתבקשו את אותה גרסת חבילה, Artifact Registry יציג את העותק שנשמר במטמון.

אם תבקשו ארטיפקט ממקור במעלה הזרם שלא קיים, או שלא מכיל את הגרסה שציינתם, הבקשה תיכשל.

אימות במעלה הזרם

מאגרי Artifact Registry מרוחקים תומכים באימות בסיסי למקורות במעלה הזרם עבור פורמטים נתמכים. מידע נוסף על אימות למקורות במעלה הזרם של מאגר מרוחק זמין במאמר הגדרת אימות למקורות במעלה הזרם של מאגר מרוחק.

תרחישים לדוגמה ויתרונות

גישה מהירה ואמינה יותר לארטיפקטים
אחסון עותקים במטמון של התלויות הציבוריות שלכם ב-Artifact Registry מפחית את זמן האחזור כששירותים אחרים Google Cloud מאחזרים תמונות. גם אם המאגר החיצוני הציבורי לא זמין בגלל הפסקה בשירות או בעיה אחרת, אפשר עדיין לגשת לארטיפקטים שנשמרו במטמון.
פתרון תלויות בטוח יותר

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

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

הפחתת העלות של העברת נתונים

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

אם Artifact Registry נמצא ב-service perimeter של VPC Service Controls,‏ Artifact Registry דוחה כברירת מחדל גישה למקורות במעלה הזרם שנמצאים מחוץ ל-perimeter. כדי לאפשר למאגרים מרוחקים במיקום ספציפי לגשת למקורות חיצוניים שהוגדרו מחוץ לגבולות גזרה, אפשר לעיין בהוראות להגדרת VPC Service Controls.

כדי לקרוא על שיטות מומלצות אחרות לניהול תלות, אפשר לעיין במאמר בנושא ניהול תלות.

עדכונים במטא-נתונים ובאינדקסים של חבילות

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

פורמט סוג קובץ גיל העדכון שמוגדר כברירת מחדל
Maven maven-metadata.xml 5 דקות
archetype-catalog.xml שעה אחת
Npm קובצי מניפסט 5 דקות
Python הוספת קבצים לאינדקס שעה אחת
Docker רשימה או אחזור של מטמון התגים שעה אחת
‫Apt/Yum (גרסת טרום-השקה) הוספת קבצים לאינדקס 2 דקות
קבצים של חבילות ‫72 שעות

פורמטים נתמכים

בקטעים הבאים מפורטים הפורמטים שזמינים למאגרי נתונים מרוחקים מוגדרים מראש ולמאגרי נתונים מרוחקים שהוגדרו על ידי המשתמש.

כתובות URL מוגדרות מראש של שרתים ראשיים

לנוחיותכם, יש מספר כתובות URL נפוצות של מאגרי מידע במעלה הזרם שזמינות כבחירות מוגדרות מראש בפורמטים הבאים.

פורמט סוגי חבילות כתובת URL של מקור שם ההגדרה הקבועה מראש של מקור הנתונים
Docker ציבורי או פרטי https://registry-1.docker.io DOCKER-HUB
המשך גלוי לכולם https://proxy.golang.org https://proxy.golang.org
Maven ציבורי או פרטי https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm ציבורי או פרטי https://registry.npmjs.org NPMJS
Python גלוי לכולם https://pypi.io PYPI
חבילות של מערכת הפעלה (גרסת Preview) גלוי לכולם חבילות מערכת הפעלה שנתמכות ב-upstream חבילות מערכת הפעלה שנתמכות ב-upstream

חבילות OS שהוגדרו מראש במעלה הזרם

כדי ליצור מאגר מרוחק של חבילת מערכת הפעלה, בוחרים אחת מכתובות הבסיס הנפוצות של מאגרים במעלה הזרם שהוגדרו מראש, ומתאימים אישית את שאר כתובת ה-URL למאגר הספציפי. אלה בסיסי המאגרים שנתמכים:

Apt

מאגר קידומת של כתובת URL שם הבסיס של המאגר
‫Debian בארכיון https://snapshot.debian.org DEBIAN_SNAPSHOT
‫Debian http://deb.debian.org DEBIAN
‫Ubuntu LTS או Pro http://archive.ubuntu.com UBUNTU

Yum

מאגר קידומת של כתובת URL Repository Base Name
CentOS http://mirror.centos.org CENTOS
http://debuginfo.centos.org CENTOS_DEBUG
https://vault.centos.org CENTOS_VAULT
https://mirror.stream.centos.org CENTOS_STREAM
בני http://dl.rockylinux.org ROCKY
Fedora Extra Packages for Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

מאגרי Artifact Registry במעלה הזרם

אפשר ליצור מאגרי מידע מרוחקים עם מאגרי מידע בפורמט רגיל של Artifact Registry כמאגרי מידע במעלה הזרם בפורמטים הבאים:

  • Docker
  • npm
  • Maven
  • Python

כתובות URL מותאמות אישית

אתם יכולים להזין את כתובת ה-URL של המאגר המרוחק ישירות, בלי להשתמש באחד ממקורות הנתונים המוגדרים מראש לפורמטים הבאים. מזהי URI של מאגרי מידע מרוחקים מותאמים אישית חייבים להשתמש ב-HTTPS. אין תמיכה בכתובות URI של HTTP upstream לא מוצפנות.

  • Docker
  • npm
  • Maven
  • Python

בטבלה הבאה מפורטים כמה מזהי URI נפוצים של מקורות.

אופן הלימוד URI של upstream שם המרשם
Docker https://ghcr.io GitHub Container Registry
Docker https://registry-1.docker.io Docker Hub
Docker https://public.ecr.aws הגלריה הציבורית של AWS ECR
Docker https://registry.k8s.io Kubernetes Container Registry
Docker https://MY_NEXUS_IP Nexus
npm https://registry.npmjs.org npm
npm https://npm.pkg.github.com מאגר GitHub Npm
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://repo.maven.apache.org/maven2 Maven Central
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://pypi.io אינדקס החבילות של Python‏ (PyPI)
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

כאשר:

  • ‫MY_NEXUS_IP היא כתובת ה-IP והיציאה של מופע Nexus במעלה הזרם. נקודת הקצה של ה-upstream חייבת להשתמש ב-HTTPS.
  • ‫MY_UPSTREAM_REPOSITORY הוא השם של המאגר במעלה הזרם, שמשמש בדוגמאות של Nexus.

מגבלות

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

  • מאגרי Maven מרוחקים לא מאפשרים להגדיר את מדיניות הגרסה ל-snapshot או ל-release.
  • צריכה להיות גישה לאינטרנט למקורות ה-upstream. מאגרים מרוחקים לא תומכים במקורות במקום או במקורות בענן וירטואלי פרטי (VPC) ללא כתובת IP ציבורית.
  • כתובות URI של מאגרי קוד מרוחקים בהתאמה אישית חייבות להשתמש ב-HTTPS. כתובות URI של HTTP לא מוצפנות במעלה הזרם לא אפשריות.

מצבי מאגר אחרים

מצבי המאגר האחרים הם:

  • רגיל: מצב ברירת המחדל של המאגר. אתם מעלים או מפרסמים ארטיפקטים כמו חבילות פרטיות ישירות למאגרים רגילים. אפשר להוריד ישירות ממאגרים רגילים ספציפיים, אבל גישה לקבוצות של מאגרים באמצעות מאגר וירטואלי מפשטת את הגדרת הכלי.
  • ‫Connector (גרסת Preview): מאגר שמשמש כפרוקסי למקור במעלה הזרם, אבל לא שומר במטמון ארטיפקטים ב-Artifact Registry. במקום זאת, כל הבקשות מופנות למקור במעלה הזרם. מאגרי מחברים שימושיים אם אתם צריכים יכולת מלאה לביקורת של מקור הנתונים שלכם או אם יש לכם כללי מדיניות שמונעים שמירת ארטיפקטים במטמון.
  • וירטואלי: מאגר שמשמש כנקודת גישה יחידה למספר מאגרי upstream, כולל מאגרים מרוחקים ומאגרים רגילים.

המאמרים הבאים