אחסון תרשימי Helm ב-Artifact Registry
Helm הוא מנהל החבילות של Kubernetes. הוא משתמש בתרשימים שמגדירים קבוצה של משאבי Kubernetes לפריסה.
במדריך למתחילים הזה נסביר איך:
- יצירת מאגר פרטי ב-Artifact Registry
- יצירת תרשים לדוגמה
- אימות באמצעות המאגר
- דחיפת התרשים למאגר
- פריסת התרשים
לפני שמתחילים
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the Artifact Registry, Google Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של תרשימי Helm במאגרי חבילות Docker ב-Artifact Registry, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Artifact Registry Administrator (roles/artifactregistry.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרת מעטפת מקומית
כדי להתקין את ה-CLI של gcloud ואת Helm:
מתקינים את ה-CLI של gcloud. כדי לעדכן התקנה קיימת, מריצים את הפקודה
gcloud components update.מתקינים את Helm 3.8.0 ואילך. בגרסאות קודמות של Helm, התמיכה בתרשימים בפורמט OCI היא תכונה ניסיונית.
מריצים את הפקודה
helm versionכדי לאמת את הגרסה.
יצירת מאגר
יוצרים מאגר Docker כדי לאחסן את תרשים הדוגמה במדריך למתחילים הזה.
המסוף
פותחים את הדף Repositories במסוף Cloud de Confiance .
לוחצים על Create Repository (יצירת מאגר).
מציינים את
quickstart-helm-repoכשם המאגר.בוחרים ב-Docker כפורמט.
בקטע Location Type, בוחרים באפשרות Region ואז בוחרים את המיקום
u-france-east1.לוחצים על יצירה.
המאגר נוסף לרשימת המאגרים.
gcloud
מריצים את הפקודה הבאה כדי ליצור מאגר Docker חדש בשם
quickstart-helm-repoבמיקוםu-france-east1עם התיאור 'docker repository'.gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=u-france-east1 --description="Helm repository"מריצים את הפקודה הבאה כדי לוודא שהמאגר נוצר.
gcloud artifacts repositories list
כדי לקבל מידע נוסף על פקודות Artifact Registry, מריצים את הפקודה gcloud artifacts.
יצירת תרשים
במדריך למתחילים הזה, תיצרו תרשים לדוגמה בשם hello-chart.
- עוברים לספרייה שבה רוצים ליצור את התרשים.
מריצים את הפקודה הבאה כדי ליצור את התרשים:
helm create hello-chartHelm יוצר ספרייה בשם
hello-chartעם קבוצת ברירת מחדל של קובצי תרשימים. אחד מהקבצים הוא Chart.yaml, שכולל מידע על התרשים.אורזים את התרשים בארכיון.
helm package hello-chart/Helm יוצר ארכיון בשם
hello-chart-0.1.0.tgzבאמצעות שם התרשים ומספר הגרסה ב-Chart.yaml.
אימות באמצעות המאגר
כדי להעלות או להתקין תמונות, צריך לאמת את Helm ב-Artifact Registry.
Helm יכול להשתמש בהגדרות קיימות של מאגר בקובץ הגדרות של Docker. אם עדיין לא הגדרתם את Docker לשימוש עם Artifact Registry, תוכלו לבצע אימות באמצעות אסימון גישה במדריך למתחילים הזה.
למידע נוסף על אימות, ראו הגדרת אימות ל-Helm.
אימות באמצעות הגדרות Docker
כברירת מחדל, Helm תומך בהגדרות של מאגרים בקובץ ההגדרות של Docker config.json. Helm מוצא את הגדרות המאגר במיקום ברירת המחדל או במיקום שצוין על ידי משתנה הסביבה DOCKER_CONFIG.
אם הגדרתם את Docker עם כלי עזר לפרטי כניסה כדי לבצע אימות ב-Artifact Registry, Helm משתמש בהגדרה הקיימת שלכם למאגרי Docker ב-Artifact Registry.
אימות באמצעות טוקן גישה
כדי לבצע אימות באמצעות טוקן גישה:
מקבלים אסימון גישה כפרטי כניסה כשמבצעים אימות ל-Artifact Registry באמצעות Helm.
Linux / macOS
מריצים את הפקודה הבאה:
gcloud auth print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin u-france-east1-docker.s3nsregistry.frWindows
מריצים את הפקודה הבאה:
gcloud auth print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ u-france-east1-docker.s3nsregistry.fr/PROJECT-ID/REPOSITORYכאשר:
-
oauth2accesstokenהוא שם המשתמש שבו משתמשים כשמבצעים אימות באמצעות טוקן גישה. -
gcloud auth print-access-tokenהיא פקודת gcloud לקבלת אסימון הגישה. אסימון הגישה הוא הסיסמה לאימות.
-
האימות של Helm בוצע ב-Artifact Registry. הכול מוכן, אפשר לדחוף את התרשים למאגר.
העלאת התרשים ל-Artifact Registry
אחרי שיוצרים את ארכיון התרשימים ומבצעים אימות למאגר של Artifact Registry, אפשר להעביר את התרשים למאגר.
כדי לשלוח את התרשים, מריצים את הפקודה הבאה:
helm push hello-chart-0.1.0.tgz oci://u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo
מחליפים את PROJECT במזהה הפרויקט. Cloud de Confiance by S3NS
Helm משתמש בערכים מ-Chart.yaml לתמונה:
- שם התרשים הוא שם התמונה:
hello-chart - גרסת התרשים היא תג התמונה:
0.1.0
Helm מחזיר פלט שדומה לדוגמה הבאה:
Login Succeeded
Pushed: u-france-east1-docker.s3nsregistry.fr/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...
מריצים את הפקודה הבאה כדי לוודא שהתרשים מאוחסן עכשיו במאגר:
gcloud artifacts docker images list u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo
הפלט של הפקודה אמור להיראות כך:
Listing items under project my-project, location u-france-east1, repository quickstart-helm-repo.
IMAGE: u-france-east1-docker.s3nsregistry.fr/my-project/quickstart-helm-repo/hello-chart
DIGEST: sha256:67a72...
CREATE_TIME: 2021-11-08T22:59:57
UPDATE_TIME: 2021-11-08T22:59:57
עכשיו אפשר לפרוס פריט תוכן באמצעות התרשים שמאוחסן ב-Artifact Registry.
פריסת התרשים
ב-Helm, מופע פרוס של האפליקציה נקרא release. אחרי שמוסיפים את המאגר להגדרת Helm, אפשר לפרוס מהדורה של התרשים.
יוצרים אשכול בשם
chart-clusterלפריסה באמצעות הפקודה:gcloud container clusters create --zone u-france-east1-a chart-clusterכשיוצרים את האשכול, הפקודה מחזירה סיכום שדומה לדוגמה הבאה:
kubeconfig entry generated for chart-cluster. NAME: chart-cluster LOCATION: u-france-east1-a MASTER_VERSION: 1.20.10-gke.1600 MASTER_IP: 34.66.36.211 MACHINE_TYPE: e2-medium NODE_VERSION: 1.20.10-gke.1600 NUM_NODES: 3 STATUS: RUNNINGמקבלים את פרטי הכניסה לאשכול כדי ש-
kubectlיוכל לגשת לאשכול:gcloud container clusters get-credentials --zone u-france-east1-a chart-clusterמריצים את הפקודה הבאה כדי לפרוס מהדורה של
hello-chartבאמצעות קובצי התרשים שחולצו באופן מקומי:helm install hello-chart oci://u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0הפקודה מחזירה סיכום של הפריסה:
NAME: hello-chart LAST DEPLOYED: Mon Nov 8 23:15:13 2021 NAMESPACE: default STATUS: deployed REVISION: 1
הצלחתם לפרוס פריט תוכן באמצעות התרשים שיצרתם והעברתם בדחיפה ל-Artifact Registry.
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Cloud de Confiance על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
מוחקים את המאגר שיצרתם באמצעות הפקודה הבאה:
gcloud artifacts repositories delete quickstart-helm-repo --location=u-france-east1מחיקת האשכול שיצרתם:
gcloud container clusters delete --zone=u-france-east1-a chart-cluster
המאמרים הבאים
- מידע נוסף על עבודה עם תרשימים
- מידע נוסף על Helm
- אפשר גם לקרוא את המשאבים שלנו בנושא DevOps ולעיין בתוכנית המחקר שלנו.