אחסון תרשימי Helm 3 כקובצי אימג' של קונטיינרים של OCI מאפשר לנהל אותם באותו אופן שבו מנהלים קובצי אימג' של Docker ב-Artifact Registry. אתם יכולים להעלות (push), להוריד (pull), להציג, לתייג ולמחוק תרשימים כדי לנהל את מחזור החיים שלהם במאגרים.
לפני שמתחילים
- אם מאגר היעד לא קיים, יוצרים מאגר חדש. בוחרים ב-Docker כפורמט המאגר.
- מוודאים שיש לכם את ההרשאות הנדרשות למאגר.
- (אופציונלי) הגדרת ברירות מחדל לפקודות של Google Cloud CLI.
מתקינים את Helm בגרסה 3.8.0 ואילך. בגרסאות קודמות של Helm, התמיכה בתרשימים בפורמט OCI היא תכונה ניסיונית.
מריצים את הפקודה
helm versionכדי לבדוק את הגרסה.מגדירים את Helm לאימות באמצעות Artifact Registry.
יצירה או קבלה של תרשים
המאמר הזה מתמקד בניהול תמונות של תרשימים, ומניח שיש לכם תרשימים קיימים או שאתם יודעים איך ליצור תרשימים. למידע נוסף על יצירת תרשימים או קבלת תרשימים שזמינים באופן ציבורי ב-Artifact Hub, עיינו במידע הבא במסמכי התיעוד של Helm.
- במאמר שימוש ב-Helm מוסבר איך לקבל תרשימים מ-Artifact Hub הציבורי ולהתאים אישית תרשים לפני ההתקנה.
- במאמר תרשימים מוסבר על תרשימים ואיך ליצור אותם.
- המדריך לשיטות מומלצות ליצירת תרשימים מתאר מוסכמות ושיטות מומלצות.
אריזת תרשים
כדי להעביר תרשים ל-Artifact Registry, צריך לארוז אותו כארכיון תרשימים.
עוברים לספרייה שמכילה את התרשים.
אורזים את התרשים.
helm package CHART-PATHמחליפים את CHART-PATH בנתיב לספרייה שמכילה את הקובץ
Chart.yaml.
Helm משתמש בשם וגרסת התרשים לשם קובץ הארכיון. לדוגמה, אם יש לכם תרשים בשם my-chart ומספר הגרסה הוא 0.1.0, שם החבילה הוא my-chart-0.1.0.tgz.
עכשיו אפשר להעביר את התרשים ל-Artifact Registry.
העברת תרשים
אחרי שאורזים את התרשים, אפשר להעביר אותו ל-Artifact Registry.
כדי להעביר את התרשים, מריצים את הפקודה הבאה:
helm push my-chart-0.1.0.tgz oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY
מחליפים את הערכים הבאים:
- LOCATION הוא המיקום של המאגר, באזור אחד או במספר אזורים.
- PROJECT הוא מזהה הפרויקט ב- Google Cloud . אם מזהה הפרויקט מכיל נקודתיים (
:), קראו את המאמר פרויקטים ברמת הדומיין. - REPOSITORY הוא שם המאגר.
Helm משתמש במידע מ-Chart.yaml לשם ולתג של קובץ האימג' של קונטיינר OCI. לדוגמה:
helm push my-chart-0.1.0.tgz oci://us-west1-docker.pkg.dev/my-project/my-repo
Helm מעלה את ארכיון התרשים כתמונה my-chart עם התג 0.1.0.
כדי לוודא שפעולת ההעברה הצליחה, מציגים את רשימת קובצי האימג' במאגר.
gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY
שליפת תרשימים
כדי לשלוף תרשים:
מריצים את הפקודה הבאה כדי למשוך את ארכיון התרשים:
helm pull oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \ --version VERSIONאם רוצים למשוך את ארכיון התרשים ולחלץ את התוכן שלו, מוסיפים את הדגל
--untar.helm pull oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \ --version VERSION \ --untarמחליפים את הערכים הבאים:
- LOCATION הוא המיקום של המאגר, באזור אחד או במספר אזורים.
- PROJECT הוא מזהה הפרויקט ב- Google Cloud .
אם מזהה הפרויקט מכיל נקודתיים (
:), קראו את המאמר פרויקטים ברמת הדומיין. - REPOSITORY הוא שם המאגר שבו מאוחסן קובץ האימג'.
- IMAGE הוא שם קובץ האימג' במאגר.
- VERSION היא הגרסה הסמנטית של התרשים. חובה להשתמש בדגל הזה. Helm לא תומך במשיכת תרשים באמצעות תג.
התקנת תרשים
מתקינים תרשים שמאוחסן ב-Artifact Registry באמצעות הפקודה helm install.
helm install RELEASE \
oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--version VERSION
בדוגמה הבאה מתקינים גרסה בשם release1 באמצעות גרסה 0.1.0 של התרשים us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart:
helm install release1 oci://us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart --version 0.1.0
הצגת רשימה של תרשימים
אפשר להציג רשימה של תרשימים באמצעות Google Cloud console או שורת הפקודה. אם אתם מאחסנים קובצי אימג' של קונטיינרים ותרשימים באותו מאגר Docker, שני סוגי פריטי המידע יופיעו ברשימה.
המסוף
כדי לראות תמונות במאגר:
פותחים את הדף Repositories במסוף Google Cloud .
לוחצים על המאגר עם קובץ האימג' של הקונטיינר.
לוחצים על תמונה כדי לראות את הגרסאות שלה.
gcloud
כדי להציג את כל קובצי האימג' בפרויקט, במאגר ובמיקום שמוגדרים כברירת מחדל, כשהם מוגדרים כערכי ברירת מחדל:
gcloud artifacts docker images list
כדי להציג רשימה של קובצי אימג' במאגר במיקום ספציפי, מריצים את הפקודה:
gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY
כדי להציג רשימה של כל התקצירים והתגים של קובץ אימג' מסוים, מריצים את הפקודה:
gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags
מחליפים את הערכים הבאים:
- LOCATION הוא המיקום של המאגר, באזור אחד או במספר אזורים.
- PROJECT הוא מזהה הפרויקט ב- Google Cloud . אם מזהה הפרויקט מכיל נקודתיים (
:), קראו את המאמר פרויקטים ברמת הדומיין. - REPOSITORY הוא שם המאגר שבו מאוחסן קובץ האימג'.
- IMAGE הוא שם קובץ האימג' במאגר.
- הפקודה
--include-tagsמציגה את כל הגרסאות של קובצי האימג', כולל תקצירים ותגים. אם הדגל הזה לא מופיע, הרשימה שמוחזרת כוללת רק קובצי אימג' של קונטיינרים ברמה העליונה.
לדוגמה, נניח שיש תמונה עם המאפיינים הבאים:
- מיקום המאגר:
us-west1 - שם המאגר:
my-repo - מזהה הפרויקט:
my-project - שם התמונה:
my-image
השם המלא של המאגר הוא:
us-west1-docker.pkg.dev/my-project/my-repo
שם התמונה המלא הוא:
us-west1-docker.pkg.dev/my-project/my-repo/my-image
לפרטים על הפורמט של שם קובץ האימג', ראו שמות של מאגרים וקבצי אימג'.
מרכיב רשימת קבצים
אתם יכולים להציג רשימה של קבצים במאגר, קבצים בכל הגרסאות של קובץ אימג' של קונטיינר מסוים או קבצים בגרסה ספציפית של קובץ אימג'.
בכל הפקודות הבאות, אפשר להגדיר מספר מקסימלי של קבצים שיוחזרו על ידי הוספת הדגל --limit לפקודה.
כדי להציג את כל הקבצים בפרויקט, במאגר ובמיקום שמוגדרים כברירת מחדל, כשהערכים שמוגדרים כברירת מחדל מוגדרים:
gcloud artifacts files list
כדי להציג רשימה של קבצים בפרויקט, במאגר ובמיקום מסוימים, מריצים את הפקודה:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
כדי להציג רשימה של קבצים לכל הגרסאות של קובץ אימג' ספציפי של קונטיינר:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
כדי להציג רשימה של קבצים בגרסה ספציפית של קובץ אימג' של קונטיינר:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--tag=TAG
מחליפים את הערכים הבאים:
-
LOCATION: המיקום של המאגר, באזור אחד או בכמה אזורים. -
PROJECT: מזהה הפרויקט ב- Google Cloud . אם מזהה הפרויקט מכיל נקודתיים (:), קראו את המאמר פרויקטים ברמת הדומיין. -
REPOSITORY: שם המאגר שבו מאוחסנת התמונה. -
PACKAGE: שם התמונה. -
VERSION: תקציר קובץ האימג', מחרוזת שמתחילה ב-sha256:. -
TAG: התג שמשויך לקובץ האימג' של הקונטיינר.
התמונות נמחקות
במאגר של Artifact Registry, אתם יכולים למחוק קובץ אימג' שלם של קונטיינר או גרסה ספציפית של קובץ אימג' שמשויכת לתג או לסיכום. אחרי שמוחקים תמונה, אי אפשר לבטל את הפעולה.
כדי למחוק קובץ אימג' שמאוחסן ב-Artifact Registry:
המסוף
פותחים את הדף Repositories במסוף Google Cloud .
לוחצים על שם התמונה כדי לראות את הגרסאות שלה.
בוחרים את הגרסאות שרוצים למחוק.
לוחצים על מחיקה.
בתיבת הדו-שיח לאישור, לוחצים על מחיקה.
gcloud
כדי למחוק תמונה ואת כל התגים שלה, מריצים את הפקודה:
gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags
כדי למחוק גרסת תמונה ספציפית, משתמשים באחת מהפקודות הבאות.
gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]
או
gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]
כאשר:
- LOCATION הוא המיקום של המאגר, באזור אחד או במספר אזורים.
- PROJECT הוא מזהה הפרויקט ב- Google Cloud .
אם מזהה הפרויקט מכיל נקודתיים (
:), קראו את המאמר פרויקטים ברמת הדומיין. - REPOSITORY הוא שם המאגר שבו מאוחסן קובץ האימג'.
- IMAGE הוא שם קובץ האימג' במאגר.
- TAG הוא התג של הגרסה שרוצים למחוק. אם כמה תגים משויכים לאותה גרסת תמונה, צריך לכלול את
--delete-tagsכדי למחוק את גרסת התמונה בלי להסיר קודם את התגים. - IMAGE-DIGEST הוא ערך הגיבוב (hash) לפי sha256 של הגרסה שרוצים למחוק. אם תג משויך לתקציר התמונה, צריך לכלול את
--delete-tagsכדי למחוק את גרסת התמונה בלי להסיר קודם את התג. - האפשרות
--delete-tagsמסירה את כל התגים שנוספו לגרסת התמונה. הדגל הזה מאפשר לכם לאלץ מחיקה של גרסת תמונה במקרים הבאים:- ציינתם תג, אבל יש תגים אחרים שמשויכים לגרסת התמונה.
- ציינתם תקציר תמונה שיש לו לפחות תג אחד.
המאמרים הבאים
- מידע על ניהול קובצי אימג' של Docker
- להוריד קבצים בודדים מהמאגר בלי להשתמש בפקודות Helm.