מאגרי מידע מרוחקים פועלים כפרוקסי למקורות במעלה הזרם, כמו 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 |
| חבילות של מערכת הפעלה (תצוגה מקדימה) | גלוי לכולם | חבילות של מערכת הפעלה שנתמכות ב-upstream | חבילות של מערכת הפעלה שנתמכות ב-upstream |
חבילות OS שהוגדרו מראש במעלה הזרם
אתם יכולים ליצור מאגר מרוחק של חבילת מערכת הפעלה על ידי בחירה באחת מכתובות הבסיס הנפוצות של מאגרי upstream שהוגדרו מראש, והתאמה אישית של שאר כתובת ה-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 של המאגר המרוחק ישירות, בלי להשתמש באחד ממקורות הנתונים המוגדרים מראש לפורמטים הבאים.
- Docker
- npm
- Maven
- Python
בטבלה הבאה מפורטות כמה כתובות URI נפוצות של שרתים במעלה הזרם.
| אופן הלימוד | Upstream URI | שם המרשם |
|---|---|---|
| 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 במעלה הזרם.
- MY_UPSTREAM_REPOSITORY הוא השם של מאגר המידע במעלה הזרם, שמשמש בדוגמאות של Nexus.
מגבלות
בנוסף למכסות ולמגבלות של Artifact Registry, יש מגבלות נוספות למאגרי מידע מרוחקים:
- מאגרי Maven מרוחקים לא מאפשרים להגדיר את מדיניות הגרסה ל-snapshot או ל-release.
- צריכה להיות גישה למקורות במעלה הזרם דרך האינטרנט. מאגרי מידע מרוחקים לא תומכים במקורות במעלה הזרם ברשת מקומית או ברשת של ענן וירטואלי פרטי (VPC) ללא כתובת IP ציבורית.
מצבים אחרים של מאגרים
מצבי המאגר האחרים הם:
- רגיל: מצב ברירת המחדל של המאגר. אתם מעלים או מפרסמים ארטיפקטים כמו חבילות פרטיות ישירות למאגרים רגילים. אפשר להוריד ישירות ממאגרים רגילים ספציפיים, אבל גישה לקבוצות של מאגרים באמצעות מאגר וירטואלי מפשטת את הגדרת הכלי.
- וירטואלי: מאגר שמשמש כנקודת גישה יחידה למספר מאגרי upstream, כולל מאגרים מרוחקים ומאגרים רגילים.
המאמרים הבאים
- יצירת מאגרים מרוחקים.
- מידע נוסף על מאגרי Artifact Registry זמין בסקירה כללית של מאגרים.