זמינות כללית פרטית: שימוש ב-cert-manager בהתאמה אישית עם Apigee Hybridהתכונה הזו מוצעת כ-GA פרטי לגרסה 1.13 של Apigee Hybrid. |
|---|
התכונה הזו מאפשרת לכם להתקין cert-manager מותאם אישית ל-Apigee hybrid עם הגדרה שקשורה לבקרת גישה מבוססת-תפקידים (RBAC) שעברה שינוי, באמצעות הרשאות מגבילות.
לפני שמתחילים
לפני שממשיכים לשלבי ההתקנה, מורידים את תרשים Helm באמצעות הפקודות הבאות:
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsexport CERT_MANAGER_VERSION=v1.14.5helm pull $CHART_REPO/apigee-cert-manager --version $CERT_MANAGER_VERSION --untar
הגדרת cert-manager בהתאמה אישית
כדי להגדיר cert-manager בהתאמה אישית, צריך לבצע את השלבים הבאים:
התקנה חדשה של cert-manager בהתאמה אישית
כדי לבצע התקנה חדשה של cert-manager מותאם אישית לשימוש עם Apigee hybrid, פועלים לפי השלבים הבאים:
- מתקינים את ה-CRD באמצעות
kubectlעם הפקודות הבאות:export CERT_MANAGER_VERSION=v1.14.5kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.crds.yaml - מתקינים את הרכיב cert-manager באמצעות תרשים Helm.
helm install CERT_MANAGER_RELEASE_NAME apigee-cert-manager/ \ --namespace APIGEE_NAMESPACE
לאחר מכן, כשהגרסה החדשה של התרשים תהיה זמינה, תוכלו לשדרג אותה באמצעות
helm upgrade:helm upgrade CERT_MANAGER_RELEASE_NAME apigee-cert-manager/ \ --namespace APIGEE_NAMESPACE
שדרוג ל-cert-manager בהתאמה אישית
כדי לבצע מיגרציה מ-cert-manager קיים שלא מותאם אישית לגרסה מותאמת אישית, פועלים לפי השלבים הבאים. בכל זמן נתון יכול לפעול באשכול רק cert-manager אחד.
- משביתים את ה-webhook הקיים ומעדכנים את הפריסה כך שיהיו 0 רפליקות כדי לבצע העברה חלקה:
kubectl delete validatingwebhookconfiguration cert-manager-webhookkubectl delete mutatingwebhookconfiguration cert-manager-webhook# set the replicas to 0kubectl scale deployment cert-manager -n cert-manager --replicas=0kubectl scale deployment cert-manager-cainjector -n cert-manager --replicas=0kubectl scale deployment cert-manager-webhook -n cert-manager --replicas=0 - מתקינים את ה-CRD:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/${CERT_MANAGER_VERION}/cert-manager.crds.yaml - מתקינים את cert-manager בהתאמה אישית:
helm install CERT_MANAGER_RELEASE_NAME apigee-cert-manager/ \ --namespace APIGEE_NAMESPACE
- אחרי שההתקנה מסתיימת, אפשר למחוק את cert-manager שהותקן קודם.
התקנה או שדרוג של Apigee Hybrid עם cert-manager בהתאמה אישית
כדי להתקין או לשדרג את הגרסה ההיברידית עם cert-manager מותאם אישית, צריך לבצע את השינויים הבאים בתהליכי ההתקנה או השדרוג.
שינויים בהתקנה של Apigee Hybrid
כשמתקינים את Apigee Hybrid בגרסה 1.13 ואילך עם מנהל אישורים מותאם אישית, צריך לבצע את השינוי הבא בקובץ overrides.yaml לפני שמתקינים את רכיבי Apigee Hybrid בשלב 10: התקנת Apigee Hybrid באמצעות Helm.
צריך לעדכן את הקובץ overrides.yaml כדי להודיע לאופרטור איפה נמצאים המשאבים שקשורים ל-cert-manager ולאפשר לאופרטור להשתמש ב-Issuer המותאם אישית של cert-manager.
certManager: namespace: APIGEE_NAMESPACE ao: certManagerCAIssuerEnabled: true
שינויים בתהליך השדרוג של Apigee Hybrid
כשמשדרגים את Apigee hybrid לגרסה 1.13 ואילך עם מנהל אישורים מותאם אישית, צריך לבצע את השינויים הבאים אחרי השלבים שמפורטים במאמר הכנה לשדרוג של תרשימי Helm ולפני התקנה של תרשימי Helm של Apigee hybrid:
- מבצעים את השינויים הבאים בקובץ
overrides.yamlכדי להודיע לאופרטור איפה נמצאים המשאבים שקשורים ל-cert-manager, וכדי לאפשר לאופרטור להשתמש ב-ClusterIssuer המותאם אישית של cert-manager.certManager: namespace: APIGEE_NAMESPACE ao: certManagerCAIssuerEnabled: true
- מעתיקים את הסוד הקיים apigee-ca ממרחב השמות cert-manager למרחב השמות apigee:
kubectl -n cert-manager get secret apigee-ca -o yaml > apigee-ca.yaml
- עורכים את קובץ
apigee-ca.yamlכדי להסיר את פרמטר מרחב השמות שמזהה את מרחב השמות כ-cert-manager. - מחילים את הסוד
apigee-caעל מרחב השמות של Apigee באמצעותkubectl apply:kubectl -n APIGEE_NAMESPACE apply -f apigee-ca.yaml
חזרה לגרסה קודמת של Apigee Hybrid
אם אתם צריכים לחזור לגרסה קודמת של Apigee Hybrid, אתם יכולים לפעול לפי ההוראות במאמר חזרה לגרסה קודמת.
החזרה לגרסה קודמת והסרה של cert-manager בהתאמה אישית
חזרה לגרסה הקודמת של cert-manager בהתאמה אישית
כדי לבטל את השינויים ב-cert-manager בהתאמה אישית, מבצעים את השלבים הבאים:
- מריצים את הפקודה הבאה כדי להסיר את גרסת Helm:
helm uninstall CERT_MANAGER_RELEASE_NAME
- מתקינים את cert-manager הרגיל (לא מותאם אישית) באמצעות השיטה המועדפת. חשוב להשתמש בגרסה המתאימה של CRD. לדוגמה, אם משתמשים בשיטת kubectl כדי להתקין את cert-manager, המערכת תעדכן את ה-CRD לגרסה תואמת, כי המטען הייעודי יכלול גם CRD. מוודאים ששיטת ההתקנה שבה משתמשים כוללת את ה-CRD.
הסרת cert-manager בהתאמה אישית
כדי להסיר את cert-manager בהתאמה אישית, פועלים לפי השלבים הבאים:
- מריצים את הפקודה הבאה כדי להסיר את גרסת Helm:
helm uninstall CERT_MANAGER_RELEASE_NAME
- מוחקים את ה-CRD באמצעות הפקודות הבאות:
export CERT_MANAGER_VERSION=v1.14.5kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.crds.yaml
תשתית כקוד (overrides.yaml)
תרשים Helm תומך בהחלפות לפי הצורך, ומאפשר לכם להשתמש בקובץ החלפות לפי הצורך במהלך תהליך ההתקנה או השדרוג.
כדי למנוע בלבול, מומלץ להשתמש בשם קובץ כמו cert-manager-overrides.yaml.
במסמכי התיעוד של cert-manager מפורטות כל הגדרות ברירת המחדל הנתמכות של cert-manager.
הגדרות נפוצות של cert-manager
בדוגמאות הבאות מוסבר איך לבצע כמה הגדרות נפוצות של cert-manager ב-Apigee hybrid.
החלפת תמונות
הנה דוגמה להחלפת תמונות באמצעות imagepullsecrets אם אתם צריכים לארח את התמונה באופן פרטי.
# cert-manager-overrides.yaml
global:
# Reference to one or more secrets to be used when pulling images
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
#
# For example:
# imagePullSecrets:
# - name: "image-pull-secret"
imagePullSecrets: []
image:
# Override the image tag to deploy by setting this variable.
# If no value is set, the chart's appVersion will be used.
repository: quay.io/jetstack/cert-manager-controller
webhook:
image:
# without a tag
repository: quay.io/jetstack/cert-manager-webhook
cainjector:
image:
# without a tag
repository: quay.io/jetstack/cert-manager-cainjector
startupapicheck:
image:
# without a tag
repository: quay.io/jetstack/cert-manager-startupapicheck
NodeSelector ו-Node Affinity
במהלך ההתקנה של Apigee Hybrid, צריך להשתמש בצמתים נפרדים עבור פודים של Cassandra ופודים אחרים. אם רוצים להריץ את cert-manager במאגר הצמתים שלא קשור ל-Cassandra, אפשר להשתמש בהעדפת צמתים:
# A Kubernetes Affinity, if required; see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core
#
# For example:
# affinity:
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: cloud.google.com/gke-nodepool
# operator: In
# values:
# - master
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: KEY
operator: In
values:
- value for the non-C* node pool
webhook:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: KEY
operator: In
values:
- value for the non-C* node pool
cainjector:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: KEY
operator: In
values:
- value for the non C* node pool
Tolerations
אפשר גם לספק סובלנויות, כמו בדוגמה הבאה:
# A list of Kubernetes Tolerations, if required; see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core # # For example: # tolerations: # - key: node.kubernetes.io/not-ready # operator: Equal # value: master # effect: NoSchedule tolerations: [] webhook: tolerations: [] cainjector: tolerations: [] startupapicheck: tolerations: []