השבוע הכריזו ב-AWS על Linux חדש עבור קונטיינרים. Bottelrocket הוא Security-oriented, כמעט כולו בנוי ב-C ולא מעט מהרכיבים בו כתובים ב-Rust. כדי לוודא ש-Bottlerocket מאובטח כראוי, ה-Instances שלו רצים עם SELinux.
Buurst הכריזו השבוע על זמינות המוצר SoftNAS ב-Azure. המשמעות היא שלקוחות Buurst יכולים יהיו כעת לנצל חלק מיתרונות הענן של מיקרוסופט. SoftNAS מבטאים את השאיפה להגשים את המטרה של Buurst, והיא לשפר את הדאטה-פרפורמנס בארגונים.
Defense Innovation Unit (DIU) בחרו ב-גוגל להיות ספקית הענן שתסייע לרופאים בצבא ארה"ב להבחין בסרטן באופן מהיר ומדויק יותר, ועם פחות הוצאות כספיות, בעזרת שימוש במערכת AI. מדובר בעסקה השנייה המוכרזת בין GCP ובין DIU במספר החודשים האחרונים.
הרמתי קלאסטר Kubernetes מקומי על 4 שרתי on prem בעזרת Rancher (מומלץ בחום, אגב), ש-3 מהם מריצים Centos ואחד מהם מריץ Windows, (אם זה משנה - מחוברים בעזרת Flannel (מובנה בראנצ'ר)).
הבעיה התחילה כשהרמתי Deployment בעזרת image שלא רץ על ווינדוס, וכדי למנוע את זה הוספתי ב Deployment תחת spec (כדי שהפוד לעולם לא ירוץ על נוד שהוא ווינדוס):
spec: nodeSelector: kubernetes.io/os: linux
בגדול נראה שהבעיה הזאת נפתרה, אבל נוצרה בעיה אחרת, הדיפלוימנט תקוע ב Pending עם השגיאה הזו:
Events:
Warning FailedScheduling <unknown> default-scheduler 0/4 nodes are available: 1 node(s) didn't match node selector, 3 node(s) had taint {cattle.io/os: linux}, that the pod didn't tolerate.
גוגל לא עוזר.
מה אני מפספס? יש למישהו רעיון?
טוב פתרתי את זה, למען הדורות הבאים:
https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
יש להוסיף
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoSchedule"
לדוגמה במקרה הספציפי שלי:
tolerations:
- key: "cattle.io/os"
operator: "Equal"
value: "linux"
effect: "NoSchedule"
עדכון נוסף - אחרי שעשיתי Scale up שמתי לב שעדיין כמה פודים are being scheduled לwindows node, אז אחרי שהרצתי describe node ראיתי שאין לו כלום ב taints (כנראה באג/פיצ'ר בראנצ'ר)
אז מה שעשיתי זה הוספתי taint בwindows node בעזרת:
kubectl taint nodes windows-node cattle.io/os=windows:NoSchedule
ואז זה כמובן עבד :)
חברים יש לי שאלה/ יש לי 2 פונקציות שעשיתי להם deploy בעזרת SERVERLESS, ואני מסנה לקרוא ללמדה אחת מלמדה שניה. זה לא עובד לי, אחרי 6 שניות של טייםאוט זה זורק שגיאה. לחלופין, אותו קוד בדיוק כתבתי 2 פונקציות בתוך העורך של AWS .. והכל עובד פיקס. מה שכן מוזר שאני מצליח לקרוא אחת מהפונקציות השניות לפונקציה שתכתבי ב serverless.
תתחיל מהסוף, שים לפונקציה 15 דק timeout ואז תנסה להבין על מה היא נתקעת. אם אחרי חמש דק' זה יוסיף לך ERROR בלי שום פירוט, תוסיף xray ותראה מה קורה בפנים. לגבי מה עדיף - לקרוא ללמדה או לממש שלמדה תשלח דרך SNS, ואז למדה אחרת תעשה subscribe - זה לא משנה.
שלום לכולם,
הג'נקינס שומר לי כל בילד שאני עושה בדיסק, וככה לאט לאט מפוצץ אותו.
יש פיתרון שהוא לא ישמור בילדים ישנים?
תודה
buildDiscarder(logRotator(numToKeepStr: '6'))
discard old builds
הן מובנות ב-Jenkins.
Oops! Something went wrong while submitting the form