פתרון בעיות ב-Distributed Cloud במודל מחובר

‫Google עוקבת מרחוק אחרי החומרה של Google Distributed Cloud במודל מחובר ומבצעת בה תחזוקה. לצורך הזה, למהנדסי Google יש גישה Secure Shell ‏ (SSH) לחומרה של Distributed Cloud במודל מחובר. אם Google מזהה בעיה, מהנדס של Google יפנה אליכם כדי לפתור אותה. אם זיהיתם בעיה בעצמכם, פנו מיד לתמיכה של Google כדי לאבחן אותה ולפתור אותה.

פגיעה בסשנים של BGP במשאבי Cloud Router שמשמשים לחיבורי VPN

חיבורי VPN ב-Distributed Cloud מסתמכים על סשנים של BGP שנוצרו ומנוהלים על ידי משאבי Cloud Router המתאימים, כדי לפרסם מסלולים בין אשכול מחובר ב-Distributed Cloud לבין Google Cloud. אם משנים את ההגדרה של משאב Cloud Router שמשויך לחיבור VPN של Distributed Cloud, יכול להיות שהחיבור יפסיק לפעול.

כדי לשחזר את ההגדרה הפגומה של סשן BGP ב-Cloud Router המושפע, מבצעים את השלבים הבאים:

  1. במסוף Google Cloud , מאתרים את השם של סשן ה-BGP הפגום. לדוגמה:

    INTERFACE=anthos-mcc-34987234
    
  2. מקבלים את כתובות ה-IP של BGP של ה-Cloud Router ושל BGP של הנתב השכן עבור סשן BGP פגום, וגם את ה-ASN של הנתב השכן שמשמש לחיבור VPN ב-Distributed Cloud שמושפע מהבעיה. לדוגמה:

    GDCE_BGP_IP=168.254.208.74
    CLOUD_ROUTER_BGP_IP=168.254.208.73
    PEER_ASN=65506
    

    אם מחקתם את סשן ה-BGP, תוכלו לקבל את המידע הזה מאשכול מחובר של Distributed Cloud:

    1. מקבלים את פרטי הכניסה לאשכול:

      gcloud edge-cloud container clusters get-credentials CLUSTER_ID \
        --location REGION \
        --project PROJECT_ID
      

      מחליפים את מה שכתוב בשדות הבאים:

      • CLUSTER_ID: השם של אשכול היעד.
      • REGION: Google Cloud האזור שבו נוצר אשכול היעד.
      • PROJECT_ID: המזהה של Google Cloud פרויקט היעד.
    2. אחזור ההגדרה של משאב MultiClusterConnectivityConfig:

      kubectl get multiclusterconnectivityconfig -A
      

      הפקודה מחזירה פלט שדומה לזה:

       NAMESPACE     NAME                   LOCAL ASN              PEER ASN
       kube-system   MultiClusterConfig1    65505                   65506
       ```
      
    3. מקבלים את כתובת ה-IP של ה-BGP של הרשת השכנה, את כתובת ה-IP של Cloud Router ואת מספר ה-ASN של סשן ה-BGP:

      kubectl describe multiclusterconnectivityconfig -n kube-system MCC_CONFIG_NAME   
      

      מחליפים את MCC_CONFIG_NAME בשם של MultiClusterConfigResource שהתקבל בשלב הקודם.

      הפקודה מחזירה פלט שדומה לזה:

       ​​Spec:
       Asns:
         Peer:  65505
         Self:  65506 # GDCE ASN
       Tunnels:
         Ike Key:
           Name:       MCC_CONFIG_NAME-0
           Namespace:  kube-system
         Peer:
           Bgp IP:      169.254.208.73 # Cloud Router BGP IP
           Private IP:  34.157.98.148
           Public IP:   34.157.98.148
         Self:
           Bgp IP:      169.254.208.74 # GDCE BGP IP
           Private IP:  10.100.29.49
           Public IP:   208.117.254.68
       ```
      
  3. במסוף Google Cloud , מאתרים את השם, האזור וGoogle Cloud שם הפרויקט של מנהרת ה-VPN הפגומה. לדוגמה:

    VPN_TUNNEL=VPNTunnel1
    REGION=US-East1
    VPC_PROJECT_ID=VPC-Project-1
    
  4. מוחקים את סשן ה-BGP הפגום מההגדרה של Cloud Router.

  5. יוצרים ממשק חדש של Cloud Router:

    gcloud compute routers add-interface --interface-name=INTERFACE_NAME \
       --vpn-tunnel=TUNNEL_NAME \ 
       --ip-address=ROUTER_BGP_IP \
       --project=VPC_PROJECT_ID \
       --region=REGION \      
       --mask-length=30
    

    מחליפים את מה שכתוב בשדות הבאים:

    • INTERFACE_NAME: שם תיאורי שמזהה באופן ייחודי את הממשק הזה.
    • TUNNEL_NAME: השם של מנהרת ה-VPN שקיבלתם בשלב הקודם.
    • ROUTER_BGP_IP: כתובת ה-IP של BGP של Cloud Router שקיבלתם קודם בהליך הזה.
    • VPC_PROJECT_ID: מזהה הפרויקט של ה-VPCGoogle Cloud שמשמש כיעד.
    • REGION: האזור שבו נוצר פרויקט ה-VPC Google Cloud של היעד. Google Cloud
  6. יוצרים את הקישור בין רשתות שכנות באמצעות BGP:

    gcloud compute routers add-bgp-peer --interface=INTERFACE_NAME \
       --peer-name=TUNNEL_NAME \
       --region REGION \
       --project=VPC_PROJECT_ID \
       --peer-ip-address=GDCE_BGP_IP \
       --peer-asn=GDCE_BGP_ASN \
       --advertised-route-priority=100 \
       --advertisement-mode=DEFAULT
    

    מחליפים את מה שכתוב בשדות הבאים:

    • INTERFACE_NAME: השם של הממשק שיצרתם בשלב הקודם.
    • TUNNEL_NAME: השם של מנהרת ה-VPN שבה השתמשתם כדי ליצור את הממשק בשלב הקודם.
    • REGION: האזור שבו נוצר פרויקט ה-VPC Google Cloud של היעד. Google Cloud
    • VPC_PROJECT_ID: מזהה הפרויקט של ה-VPCGoogle Cloud שמשמש כיעד.
    • GDCE_BGP_IP: כתובת ה-IP של BGP עמית ב-Distributed Cloud שקיבלתם קודם בהליך הזה.
    • GDCE_BGP_ASN: מספר מערכת אוטונומית (ASN) של BGP עמית ב-Distributed Cloud, שקיבלתם קודם בהליך הזה.

בשלב הזה, סשן ה-BGP חוזר להיות פעיל.

הצומת תקוע במצב Ready,SchedulingDisabled

כשמחילים או מוחקים את המשאב NodeSystemConfigUpdate או SriovNetworkNodePolicy, יכול להיות שהצומת של היעד יופעל מחדש. כשמפעילים מחדש צומת, הסטטוס שלו משתנה ל-NotReady או ל-Scheduling Disabled. אם צומת נשאר במצב Ready,SchedulingDisabled במשך יותר מ-30 דקות, מבצעים את הפעולות הבאות:

  1. בודקים את ההגדרה והסטטוס של המשאב התואם NodeSystemConfigUpdate או SriovNetworkNodePolicy. אם המשאב SriovNetworkNodePolicy לא קיים, הצומת לא תומך ב-SR-IOV.

  2. אם סטטוס המשאב הוא Succeeded, מפעילים את התזמון בצומת באמצעות הפקודה הבאה:

    kubectl uncordon NODE_NAME.
    

    מחליפים את NODE_NAME בשם של צומת היעד.

  3. אם הבעיה נמשכת, אפשר לפנות לתמיכה של Google.