שימוש במאגר תמונות פרטי עם apigeectl

במסמך הזה מוסבר איך להגדיר את Apigee Hybrid כך שישתמש בקובצי אימג' של קונטיינר ממאגר פרטי של קובצי אימג' של קונטיינר.

סקירה כללית

כל תמונות זמן הריצה של Apigee Hybrid מתארחות ב- Google Cloud Container Registry ‏ (GCR). אם מסיבה כלשהי אתם רוצים להשתמש במאגר פרטי של קונטיינרים של תמונות, אתם יכולים להוריד את התמונות מ-GCR, להעלות אותן למאגר הפרטי ולשנות את מיקומי התמונות שמוגדרים כברירת מחדל בקובץ overrides.yaml.

שלבי ההגדרה

כדי להשתמש במאגר פרטי של קונטיינרים של תמונות עבור תמונות של Apigee hybrid: כדי לבצע את השלבים האלה ולהשתמש בהצלחה בתמונות במאגר הפרטי, צריך להכיר את תהליך ההתקנה של Apigee hybrid. בדרך כלל, תתכננו להגדיר את המאגר הפרטי כחלק מהתקנה היברידית חדשה.

  1. מעבירים את תמונות Apigee hybrid מ-GCR למאגר הפרטי. מומלץ להשתמש בכלי apigee-push-pull כדי לבצע את השלב הזה.

    אם אתם מעדיפים לבצע את השלב הזה באופן ידני, אתם צריכים להתקין את Docker ולהשתמש בפקודה docker pull באופן הבא. חשוב להוסיף את התג הנכון לכל שם של תמונה. לדוגמה, התג של apigee-synchronizer הוא 1.11.2, כמו שמוצג בהמשך.

    1. כדי לקבל רשימה עדכנית של כל התמונות בפרויקט הנוכחי, משתמשים באפשרות --list של כלי השירות apigee-pull-push.sh בספרייה apigeectl/tools/:
      apigee-pull-push.sh --list
    2. הפלט אמור להיראות כך:

      apigee:
              gcr.io/apigee-release/hybrid/apigee-mart-server:1.11.2
              gcr.io/apigee-release/hybrid/apigee-synchronizer:1.11.2
              gcr.io/apigee-release/hybrid/apigee-runtime:1.11.2
              gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client:1.11.2
              gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra:1.11.2
              gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility:1.11.2
              gcr.io/apigee-release/hybrid/apigee-udca:1.11.2
              gcr.io/apigee-release/hybrid/apigee-connect-agent:1.11.2
              gcr.io/apigee-release/hybrid/apigee-watcher:1.11.2
              gcr.io/apigee-release/hybrid/apigee-operators:1.11.2
              gcr.io/apigee-release/hybrid/apigee-installer:1.11.2
              gcr.io/apigee-release/hybrid/apigee-redis:1.11.2
              gcr.io/apigee-release/hybrid/apigee-diagnostics-collector:1.11.2
              gcr.io/apigee-release/hybrid/apigee-diagnostics-runner:1.11.2
              gcr.io/apigee-release/hybrid/apigee-mint-task-scheduler:1.11.2
      third party:
              gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent:1.10.5
              gcr.io/apigee-release/hybrid/apigee-prom-prometheus:v2.52.0
              gcr.io/apigee-release/hybrid/apigee-stackdriver-prometheus-sidecar:0.9.0
              gcr.io/apigee-release/hybrid/apigee-kube-rbac-proxy:v0.18.0
              gcr.io/apigee-release/hybrid/apigee-envoy:v1.27.0
              gcr.io/apigee-release/hybrid/apigee-prometheus-adapter:v0.12.0
              gcr.io/apigee-release/hybrid/apigee-asm-ingress:1.18.7-asm.26-distroless
              gcr.io/apigee-release/hybrid/apigee-asm-istiod:1.18.7-asm.26-distroless
              gcr.io/apigee-release/hybrid/apigee-fluent-bit:3.0.3
      
    3. משתמשים בפקודה docker pull כדי לשלוף את התמונות שדרושות למרחבי השמות apigee-system ו-apigee. לדוגמה:
      docker pull gcr.io/apigee-release/hybrid/apigee-installer:1.11.2

      ברשימה הבאה מפורטות התמונות שנדרשות לכל מרחב שמות:

      מרחב שמות אחד (apigee-system)

      • apigee-installer
      • apigee-kube-rbac-proxy
      • apigee-operators

      מרחב השמות של apigee

      • apigee-asm-ingress
      • apigee-asm-istiod
      • apigee-cassandra-backup-utility
      • apigee-connect-agent
      • apigee-diagnostics-collector
      • apigee-diagnostics-runner
      • apigee-envoy
      • apigee-fluent-bit
      • apigee-hybrid-cassandra-client
      • apigee-hybrid-cassandra
      • apigee-mart-server
      • apigee-prom-prometheus
      • apigee-prometheus-adapter
      • apigee-redis
      • apigee-runtime
      • apigee-stackdriver-logging-agent
      • apigee-stackdriver-prometheus-sidecar
      • apigee-synchronizer
      • apigee-udca
      • apigee-watcher
    4. אחרי שמושכים את התמונות ומתייגים אותן, מעלים אותן למאגר הפרטי. מידע נוסף זמין במאמר בנושא docker push.
  2. יוצרים סוד של Kubernetes במרחבי השמות apigee ו-apigee-system.

    אם מרחבי השמות האלה לא קיימים באשכול, צריך ליצור אותם לפני שמבצעים את השלב הזה.

    הוראות ליצירת סוד מפורטות במאמר יצירת סוד באמצעות הזנת פרטי כניסה בשורת הפקודה. לדוגמה, כדי ליצור Secret במרחב השמות apigee-system:

    kubectl create secret docker-registry SECRET_NAME -n apigee-system \
      --docker-server=YOUR_REGISTRY_SERVER \
      --docker-username=YOUR_DOCKER_USERNAME \
      --docker-email=YOUR_DOCKER_EMAIL \
      --docker-password="YOUR_DOCKER_PASSWORD)"

    כדי ליצור Secret במרחב השמות apigee:

    kubectl create secret docker-registry SECRET_NAME -n apigee \
      --docker-server=YOUR_REGISTRY_SERVER \
      --docker-username=YOUR_DOCKER_USERNAME \
      --docker-email=YOUR_DOCKER_EMAIL \
      --docker-password="YOUR_DOCKER_PASSWORD)"
  3. מוסיפים את הסוד לקובץ overrides.yaml. הסבר על יצירת קובץ ההחלפות מופיע בשלבי ההתקנה ההיברידית. פרטים נוספים זמינים במאמר הגדרת האשכול.
    imagePullSecrets:
      - name: SECRET_NAME
  4. מעדכנים את קובץ overrides.yaml עם כתובות URL של תמונות שמאוחסנות במאגר הפרטי. לכל רכיב שמאוחסן במאגר יש רכיב image:url. משתמשים ברכיב הזה כדי לציין את כתובת ה-URL של כל תמונה ברכיב. לדוגמה:
    mart:
      serviceAccountPath: /installdir/hybrid-files/service-accounts/hybrid-apigee-non-prod.json
      image:
        url: my-docker.pkg.dev/hybrid-1/registry-name/apigee-mart-server

    פועלים לפי התבנית הזו כדי לעדכן כל רכיב היברידי ברמה העליונה בקובץ overrides.yaml עם כתובת ה-URL של תמונת המאגר הפרטי שלו. דוגמה מלאה לקובץ החלפה מסופקת עם ההתקנה ההיברידית בספרייה $APIGEECTL_HOME/examples/private-overrides.yaml.

עכשיו אפשר להשלים התקנה היברידית חדשה באמצעות התמונות הפרטיות, או לעדכן את ההתקנה הקיימת. מידע נוסף זמין בשלבים להתקנת Apigee hybrid.

התקנת cert-manager ממאגר פרטי

כדי להתקין את cert-manager מהמאגר הפרטי, אפשר לעיין במאמר בנושא התקנה באמצעות Helm. חשוב להתקין את אותה גרסה של cert-manager שצוינה בהוראות להתקנת Apigee hybrid כדי להבטיח תאימות.