מאגרי מידע מרוחקים משמשים כשרתי 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, כולל מאגרים מרוחקים ומאגרים רגילים.
המאמרים הבאים
- יצירת מאגרים מרוחקים.
- מידע נוסף על מאגרי Artifact Registry זמין במאמר סקירה כללית של מאגרים.