cert-manager כדי להקצות קבוצה של אישורי TLS לכל אשכול של מסד נתונים. בנוסף לאישור של שרת מסד הנתונים, המפעיל יוצר אישורים לרכיבים של מישור הבקרה כדי לאבטח חיבורים פנימיים.
cert-manager מבצע חידוש אוטומטי של אישורים על סמך השדות duration ו-renewBefore של אובייקט Certificate, אבל יכול להיות שתצטרכו להפעיל ידנית את רוטציית האישורים בתרחישים הבאים:
- מפתח פרטי נפרץ.
- אישור CA מוחלף. לפי התיעוד של
cert-manager, כשאישור CA שמשויך למנפיק עובר רוטציה, אישורי הקצה לא מונפקים מחדש באופן אוטומטי. cert-managerהנפקה אוטומטית חוזרת נכשלת. במקרים נדירים, אם ההנפקה מחדש באופן אוטומטי לא מופעלת בגלל תנאים ספציפיים שמתוארים בשאלות הנפוצות בנושא cert-manager, צריך להפעיל רוטציה ידנית.
לפני שמתחילים
- מוודאים שהגדרתם את
kubectlכדי לגשת לאשכול Kubernetes. - מוודאים ש-
cert-managerפועל באשכול Kubernetes.
רוטציה ידנית של אישורים
כדי להפעיל ידנית את רוטציית האישורים, מוחקים את ה-Secret שמשויך לאובייקט cert-manager Certificate. הבקר של cert-manager מתאים את האובייקט ומנפיק מחדש את האישור, וכך נוצר סוד חדש. עומסי עבודה שמשויכים לאופרטור AlloyDB Omni טוענים מחדש באופן אוטומטי את הגדרות ה-TLS שלהם כדי להשתמש באישור החדש.
מאתרים את
cert-managerCertificateשרוצים להחליף. האובייקטים האלה נמצאים במרחב השמותDBClusterובמרחב השמות שבו מותקן אופרטור AlloyDB Omni. השמות של אישורי CA מתחילים בקידומתdbs-al-ca, ואילו השמות של אישורי קצה מתחילים בקידומתdbs-al-cert. בשלבים הבאים, משתמשים בשם של הסוד המשויך מהפלט.kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wideלפני שמפעילים את הסבב, מגבים את הסוד של האישור:
kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bakמוחקים את סוד האישור:
kubectl delete secret SECRET_NAME -n NAMESPACEמחכים ש-
cert-managerייצור מחדש את הסוד של האישור:kubectl get secret SECRET_NAME -n NAMESPACE -w
אימות רוטציית האישורים
אחרי שמחליפים את האישורים באופן ידני, צריך לוודא שהאישורים החדשים נמצאים בשימוש:
בודקים את הסוד של האישור. הערך של
creationTimestampצריך לשקף את הזמן שאחרי הרוטציה הידנית של האישור:kubectl get secret SECRET_NAME -n NAMESPACE -o yamlבודקים את הסטטוס
Certificate. מוודאים שהתאריכים שלnotBeforeו-notAfterבקטע הסטטוס נכונים:kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE