
app log level עם הערך error. זה בסדר לערך רגיל, אבל לא לשם משתמש או סיסמה.app database user מקבל value from secret key reference שמצביע על secret לפי שמו ועל המפתח database username. המפתח חייב להתאים לשדה שב-secret.kubectl apply -f . --dry-run בודק בצד הלקוח, ו-dry run בשרת מאשר שהשרת מקבל את הקבצים. רק אחר כך מריצים apply אמיתי.kubectl describe pod מראה את app log level עם ערכו, אבל עבור ה-secret מציג רק את שם ה-secret ואת שם השדה, בלי הערך.kubectl exec ל-bin/bash והפקודה env רואים את המשתנים הסודיים בפועל. האפליקציה מקבלת משתני סביבה רגילים ואינה יודעת שהם הגיעו מ-secret.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על secret Kubernetes» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. היום אנחנו נלמד על secret, על מידע סודי שיושב בתוך קוברנטיס. לדוגמה, באובייקט הזה של secret יושב לנו שם וסיסמה ל-database, והמטרה שלנו זה להפריד את הסוד הזה, את המידע הסודי הזה, מקובץ YAML הכללי של ה-deployment.
ה-deployment שמתאר לנו את הפודים שלנו, ומה שמעניין שבתוך הפוד שלנו, בספציפיקציה של הקונטייнер, יש פה משתני סביבה. משתני סביבה שהאפליקציה משתמשת בהם. אני יכול ליצור משתני סביבה משלי, לדוגמה, app log level, ואני נותן לו איזשהו ערך, נניח error, והנחת היסוד שהאפליקציה שלי משתמשת במשתנה סביבה הזה.
מה היא עושה איתו? זה כבר עניינה. אבל שימו לב פה שה-value חשוף, ואם הייתי רוצה לכתוב בפנים גם מידע רגיש כמו username או password, היינו בבעיה רצינית, כי אז ה-deployment הזה היה עולה לאיזה GitHub והיו נחשפים הפרטים הרגישים שלי.
ולכן app database user, הוא לא לוקח value בצורה ישירה, אלא הוא לוקח value from secret key reference. וה-secret key reference מפנה ל-secret בשם PracticU database secret credentials.
זה ה-secret שהגדרתי אותו פה. זאת אומרת, האובייקט הזה של ה-secret, שאני לא מעלה אותו לשום מקום ולא נותן אותו לאף אחד, זה השם שלו, ובפנים יש שדות username, password, ופה בפנים אני אומר לו לקחת את הערך מתוך ה-secret שלי, מתוך ה-key שנקרא database username.
הוא לוקח את הערך הזה, ושימו לב, ה-key הזה חייב להיות תואם ל-key הזה. הוא לוקח את זה מכאן, ודרך אגב, הערך הזה הוא לא מוצפן. הערך הזה מקודד.
זאת אומרת שאם אני אבוא לפה ואני אכתוב base64 decode ואבחר איזשהו אתר שעושה decode online, אתם תראו שאפשר בקלות לעשות לו decode, והוא יכתוב לי שזה admin בלי שום סיסמה סודית.
זה פשוט קידוד, הצגה שונה של המידע. המטרה של הקידוד הזה, שאם מישהו עובר לידי ומציץ לי במסך, שלא יגנוב לי את השם והסיסמה. אבל זאת לא הצפנה.
חשוב לי להדגיש לכם שזאת לא הצפנה, אלא קידוד. base64, אפשר לזהות אותו לפי סימן שווה. גם הסיסמה שלי מקודדת ולא מוצפנת. בכל מקרה, זה השם של ה-secret שלי, זה השדות שלו.
הם נכנסים פה בתוך ה-environment, ועכשיו נראה את כל זה בפעולה ונראה את המשתני סביבה האלו בתוך ה-image שלי. בואו נבדוק שנייה שהקובץ תקין. נעשה פה kubectl apply -f, שיבדוק לי את כל הקבצים בתיקייה הנוכחית, --dry-run, שיבדוק על יבש לפני שאנחנו מריצים שאין שגיאות כתיב בקבצים שלי.
זה תרגול על יבש אצלי בתוך הקליינט בלי לשלוח שום דבר לשרת. הנה ה-dry run הצליח. עכשיו אפשר גם לשלוח לשרת ולהגיד לו, "אל