בדף הזה מוסבר איך להגדיר את סנכרון תצורות באמצעות פקודות kubectl אחרי שמתקינים את סנכרון תצורות באמצעות מסוף Cloud de Confiance או Google Cloud CLI.
אפשר לבצע הרבה שינויים בהגדרות באמצעות המסוף או ה-CLI, אבל צריך להשתמש בפקודות kubectl כדי לבטל חלק מברירות המחדל של סנכרון תצורות, כדי לשלוט באימות של אישורי SSL וכדי להשתמש ברשות אישורים.
יצירה ועריכה של קובץ התצורה של RootSync
כדי להגדיר את סנכרון תצורות באמצעות פקודות kubectl, עורכים אובייקט RootSync על ידי יצירת קובץ YAML.
כשמתקינים את סנכרון תצורות באמצעות מסוף Cloud de Confiance או Google Cloud CLI, סנכרון תצורות יוצר באופן אוטומטי אובייקט RootSync בשם root-sync. האובייקט הזה מכיל את פרטי ההגדרה העדכניים ביותר של סנכרון תצורות. בכל פעם שמבצעים שינוי במסוף Cloud de Confiance או ב-Google Cloud CLI, מתבצע עדכון של root-sync.
מידע על השדות שאפשר לערוך באמצעות kubectl
אפשר לבצע שינויים מתקדמים ב-root-sync באמצעות פקודות kubectl בשדות שלא נתמכים במסוף Cloud de Confiance או ב-Google Cloud CLI. אם רוצים ליצור ואז לעדכן אובייקטים של RootSync או RepoSync ישירות באמצעות פקודות של kubectl, אפשר לעיין במאמר בנושא שדות של RootSync ו-RepoSync.
לפני שמבצעים שינויים בקובץ ה-YAML שיוצרים בקטע הבא, כדאי לעיין בטבלה הבאה. בטבלה הזו מפורטים השדות שאפשר לערוך ולהוסיף. אם עורכים שדות שלא מופיעים בטבלה הזו, סנכרון תצורות מחזיר אוטומטית את השינויים לערכים שהגדרתם כשקבעתם את התצורה של סנכרון תצורות בפעם האחרונה ב Cloud de Confiance מסוף או ב-Google Cloud CLI.
| מפתח | תיאור |
|---|---|
spec.helm |
כל השדות להגדרת מאגר Helm. |
spec.override |
כל השדות לביטול הגדרות ברירת המחדל. |
spec.git.noSSLVerify |
ההגדרה קובעת אם להפעיל או להשבית את האימות של אישור ה-SSL עבור Git. ערך ברירת המחדל הוא false.
|
spec.git.caCertSecretRef.name |
השם של הסוד שמכיל את אישור רשות האישורים (CA) למאגר Git. |
spec.oci.caCertSecretRef.name |
השם של הסוד שמכיל את אישור רשות האישורים (CA) למאגר OCI. |
יצירת הקובץ
כדי ליצור ולערוך קובץ הגדרה ל-root-sync, מבצעים את השלבים הבאים:
כדי לוודא שאתם מאחזרים את פרטי ההגדרה של האשכול הנכון, צריך להגדיר גישה לשורת הפקודה
kubectl:gcloud container clusters get-credentials CLUSTER_NAME \ --zone ZONE \ --project PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול שכולל את הגדרות סנכרון תצורות שרוצים לשנות -
ZONE: האזור שבו יצרתם את האשכול -
PROJECT_ID: מזהה הפרויקט
-
מעתיקים את פרטי ההגדרה מאובייקט RootSync שנוצר על ידי סנכרון תצורות לקובץ YAML:
kubectl get rootsync root-sync -n config-management-system -o yaml > FILE_NAME.yamlמחליפים את
FILE_NAMEבשם של קובץ התצורה.פותחים את קובץ ה-YAML שיצרתם ומבצעים את שינויי ההגדרות הנדרשים. לדוגמה, כדי לשנות את מגבלת הזיכרון של מאגר
git-sync, מוסיפים את השדות הבאים (מודגשים):apiVersion: v1 items: - apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: annotations: configmanagement.gke.io/managed-by-hub: "true" configmanagement.gke.io/update-time: "1644945169" creationTimestamp: "2022-02-15T17:12:52Z" generation: 1 name: root-sync namespace: config-management-system resourceVersion: "211980457" uid: aa30a94b-2825-4590-ad30-5af848403502 spec: git: auth: none branch: main dir: /quickstart/config-sync period: 15s repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples revision: HEAD secretRef: {} override: resources: - containerName: "git-sync" memoryLimit: "400Mi" sourceFormat: unstructured # Remainder of RootSync omittedמחילים את השינויים על קובץ ה-YAML:
kubectl apply -f FILE_NAME.yamlכדי לוודא ש-סנכרון תצורות החיל את השינויים, מציגים את אובייקט RootSync:
kubectl describe rootsync root-sync -n config-management-systemכדי לוודא שהשינויים לא גרמו לשגיאות, משתמשים בפקודה
nomos status:nomos status
הגדרת רשות אישורים
אם השרתים מוגדרים עם אישורים מרשות אישורים (CA) שלא נחשבת כבר כמהימנה, אפשר להגדיר את סנכרון תצורות כך שישתמש באישור CA כדי לאמת חיבורי HTTPS לשרת. המאפיין הזה נתמך בשרתי Git, Helm או OCI. אישור ה-CA
צריך לכלול אישורי SSL מלאים (בסיס/ביניים/קצה).
אם השרת שלכם כבר משתמש ב-CA מהימן או שאתם לא מתחברים דרך HTTPS, אתם יכולים לדלג על השלב הזה ולהשאיר את caCertSecretRef ללא הגדרה.
RootSync
מאחזרים את אישור ה-CA ששימש להנפקת האישור לשרת Git ושומרים אותו בקובץ.
עבור אובייקטים מסוג
RootSync, צריך ליצור את הסוד במרחב השמותconfig-management-system. לדוגמה:kubectl create secret generic ROOT_CA_CERT_SECRET_NAME
--namespace=config-management-system
--from-file=cert=/path/to/CA_CERT_FILEכשמגדירים את האובייקט
RootSync, צריך להגדיר את הערך של השדהcaCertSecretRef.nameבאובייקטRootSyncכ-ROOT_CA_CERT_SECRET_NAME.
RepoSync
מאחזרים את אישור ה-CA ששימש להנפקת האישור לשרת Git ושומרים אותו בקובץ.
עבור אובייקטים מסוג
RepoSync, צריך ליצור את הסוד באותו מרחב שמות שבו נמצא RepoSync. לדוגמה:kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME
--namespace=REPO_SYNC_NAMESPACE
--from-file=cert=/path/to/CA_CERT_FILEכשמגדירים את
RepoSync, צריך להגדיר את הערך של השדהcaCertSecretRef.nameבאובייקטRepoSyncכ-NAMESPACE_CA_CERT_SECRET_NAME.
הסרת אובייקט RootSync
כדי למחוק את root-sync, מריצים את הפקודה הבאה:
kubectl delete -f FILE_NAME
מחליפים את FILE_NAME בשם של קובץ התצורה של RootSync. לדוגמה, root-sync.yaml.
מחיקה של אובייקט RootSync או RepoSync לא מנקה את ההערות והתוויות של סנכרון תצורות. כדי לנקות משאבים מנוהלים, מסנכרנים מספריית Git ריקה.