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