במאמר הזה מוסבר איך להגדיר יעדים חיצוניים לבדיקה ב-Google Distributed Cloud (GDC) עם פער אוויר. המערכת מגלה את היעדים האלה ועוקבת אחריהם על ידי קריאה של Kubernetes ConfigMap ספציפי.
לפני שמתחילים
כדי להחיל ConfigMap על מרחב השמות gpc-system, צריכה להיות לכם גישה לאשכול והרשאות ליצור או לשנות ConfigMap במרחב השמות הזה.
צריך גם את הנתיב לקובץ kubeconfig של אשכול שרת Management API.
אפשר להגדיר בדיקות של יעדים חיצוניים רק באשכולות של אדמין ראשי או אדמין ארגוני.
הסבר על פרטי ConfigMap
הכלי לבדיקת מוכנות מחפש ConfigMap עם המאפיינים הבאים:
- שם:
pnet-external-probe-targets-config - מרחב שמות:
gpc-system - מפתח נתונים: ה-ConfigMap צריך להכיל מפתח בשם
targets.yamlבשדהdataשלו. הערך שמשויך למפתח הזה חייב להיות מחרוזת YAML שמגדירה את יעדי הבדיקה.
הסבר על המבנה של targets.yaml
התוכן targets.yaml חייב להיות רשימת אובייקטים ב-YAML. כל אובייקט מייצג יעד בדיקה חיצוני יחיד, והוא בנוי לפי המבנה הבא:
- name: <unique-probe-name>
spec:
target: <hostname-or-ip>
probeType: <TCP or ICMP>
port: <port-number> # Required for TCP, ignored for ICMP
interval: <duration> # e.g., "10s", "1m"
timeout: <duration> # Optional, e.g., "5s". Defaults to 5s if not set.
פירוט השדות:
-
name(מחרוזת): מזהה ייחודי של יעד הבדיקה הספציפי הזה. -
spec: הגדרה של פרמטרים לבדיקה:-
target(מחרוזת): שם המארח או כתובת ה-IP של היעד החיצוני לבדיקה. -
probeType(מחרוזת): סוג הבדיקה שיש לבצע. הערכים הנתמכים הם:-
TCP: מנסה ליצור חיבור TCP לכתובתtargetולפורטportשצוינו. -
ICMP: שולח בקשת הד ICMP (ping) אלtarget.
-
-
port(int32): מספר היציאה לשימוש בבדיקות TCP. חובה למלא את השדה הזה אם הערך שלprobeTypeהואTCP, והמערכת מתעלמת ממנו בבדיקות שלICMP. -
interval(מחרוזת): התדירות שבה הבדיקה צריכה לפעול. הערך צריך להיות מחרוזתmetav1.Durationתקינה של Kubernetes (לדוגמה,"5s", "1m30s"). -
timeout(מחרוזת, אופציונלי): הזמן המקסימלי להמתנה עד להשלמת ניסיון בקשה לבדיקת תקינות יחיד. זו גם מחרוזתmetav1.Duration. אם לא מציינים ערך, המערכת משתמשת בערך ברירת המחדל של הזמן הקצוב לתפוגה, שהוא5s.
-
יצירה והחלה של ConfigMap
כדי ליצור או לעדכן את ConfigMap, פועלים לפי השלבים הבאים:
יוצרים קובץ YAML בשם
external-probe-configmap.yaml. בדוגמה הבאה מוגדרים שלושה יעדי בדיקה:apiVersion: v1 kind: ConfigMap metadata: name: pnet-external-probe-targets-config namespace: gpc-system data: targets.yaml: | - name: "example-tcp-server" spec: target: "192.0.2.1" probeType: "TCP" port: 80 interval: "10s" timeout: "3s" - name: "example-icmp-host" spec: target: "8.8.8.8" probeType: "ICMP" interval: "30s" - name: "another-tcp-service" spec: target: "my-service.example.com" probeType: "TCP" port: 443 interval: "1m" # Using default timeout of 5sמחילים את ה-ConfigMap על האשכול:
kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVERמחליפים את הערך
MANAGEMENT_API_SERVERבנתיב לקובץ kubeconfig של שרת Management API.
הכלי לבדיקת מוכנות מזהה באופן אוטומטי שינויים ב-ConfigMap הזה ומתחיל, מפסיק או מעדכן תהליכי בדיקה על סמך היעדים שהוגדרו.