פריסת Edge Microgateway בתור שירות

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

מבוא

בנושא הזה נסביר איך להריץ את Edge Microgateway באשכול Kubernetes בתור שירות עצמאי.

מידע נוסף זמין במאמר סקירה כללית של Edge Microgateway עם Kubernetes.

לפני שמתחילים

מבצעים את השלבים שמתוארים בקטע דרישות מוקדמות.

הגדרת Microsoft Edge Microgateway

הפקודה הבאה מגדירה את Edge Microgateway לארגון שלכם ב-Apigee ופורס את שרת ה-proxy edgemicro-auth.

  1. מריצים את הפקודה הבאה:

    edgemicro configure -o [org] -e [env] -u [username]

    כאשר:

    • org: שם הארגון ב-Edge (צריך להיות מנהלי חשבון ארגוני).

    • env: סביבה בארגון שלך (כמו בדיקה או ייצור).

    • username: כתובת האימייל שמשויכת לחשבון Apigee שלכם.

    דוגמה

    edgemicro configure -o docs -e test -u jdoe@example.com

    הפלט (ראו דוגמה למטה) נשמר בקובץ:

    $HOME/.edgemicro/org_name-env_name-config.yaml
    .

    current nodejs version is v6.9.1
    current edgemicro version is 2.5.25
    password:
    file doesn't exist, setting up
    Give me a minute or two... this can take a while...
    App edgemicro-auth deployed.
    checking org for existing KVM
    KVM already exists in your org
    configuring host edgemicroservices.apigee.net for region us-west1
    
    saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml
    
    vault info:
     -----BEGIN CERTIFICATE-----
    MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
    b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD
    VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh
    nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm
    Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT
    iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn
    GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp
    oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I
    mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8
    1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN
    lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH
    6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm
    /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn
    8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4
    w+e3Z3F7IKI=
    -----END CERTIFICATE-----
    
    The following credentials are required to start edge micro
      key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4
      secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef
    
    edgemicro configuration complete!
    

פריסת Edge Microgateway כשירות

  1. מריצים את הפקודה הבאה כדי לפרוס את Edge Microgateway כשירות ב- אשכול Kubernetes:

    kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key
    -sec=edgemicro-secret -conf=file path of org-env-config.yaml)

    איפה:

    • org – ארגון Apigee שציינתם בפקודה edgemicro configure.
    • env – הסביבה שציינתם בפקודה edgemicro configure.
    • edgemicro-key – המפתח שהוחזר מהפקודה edgemicro configure.
    • edgemicro-secret – הסוד שהוחזר באמצעות הפקודה edgemicro configure.
    • file path of org-env-config.yaml - הנתיב לקובץ התצורה של Edge Micro שמוחזר מהפקודה edgemicro configure.

    לדוגמה:

    kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)

    פלט לדוגמה:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. צריך להעתיק את הקוד הבא ולהדביק אותו בטרמינל. הקוד מגדיר את בקר תעבורת הנתונים הנכנסת (ingress) כך גישה חיצונית לשירות edge-microgateway. יכול להיות שיהיה צורך להקיש על Enter אחרי הדבקת הפקודה בטרמינל:

    cat <<EOF | kubectl apply -f -
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: edge-microgateway-ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - http:
          paths:
          - path: /
            backend:
              serviceName: edge-microgateway
              servicePort: 8000
    EOF
    

    לאחר הצלחה, יופיע הפלט הבא:

    ingress "edge-microgateway-ingress" created
    

    הבקר של תעבורת הנתונים הנכנסת (ingress) מוגדר עכשיו לאפשר גישה חיצונית אל שירות אחד (edge-microgateway).

פריסת שירות בדיקה

בשלבים הבאים פורסים שירות בדיקה פשוט באשכול. בקר תעבורת נתונים נכנסת (ingress) לא מאפשר לקרוא לשירות מחוץ לאשכול. בהמשך, צריך להגדיר את Edge Microgateway כדי לקרוא לשירות כיעד שלו. בקר תעבורת הנתונים הנכנסת (ingress) מאפשר גישה חיצונית לשירות edge-microgateway.

  1. פריסה של שירות helloworld לדוגמה. כי תעבורת הנתונים הנכנסת (ingress) לא יודעת על השירות הזה, לא ניתן לקרוא לשירות מחוץ לאשכול.

    kubectl apply -f samples/helloworld/helloworld-service.yaml

    פלט לדוגמה:

    service "helloworld" created deployment "helloworld" created
    
  2. מומלץ לוודא שהפריסה הצליחה. חשוב לשים לב שאין כתובת IP חיצונית עבור השירות helloworld. בשלבים הבאים מגדירים את Edge Microgateway כדי לגשת לכתובת ה-IP הפנימית של השירות.

    kubectl get services -n default

    פלט לדוגמה:

    NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    edge-microgateway   NodePort    10.35.247.222   <none>        8000:32000/TCP   12m
    helloworld          NodePort    10.35.245.103   <none>        8081:30294/TCP   47s
    kubernetes          ClusterIP   10.35.240.1     <none>        443/TCP          47m
    

הגדרת Edge Microgateway לשרת proxy של השירות

מאתרים את כתובת ה-IP הפנימית של השירות helloworld ומוסיפים אותה כיעד של 'מודעות מיקרו-אזור' שרת proxy. יצירת 'תומך במיקרו-שער' שרת proxy הוא הדרישה הסטנדרטית של Edge Microgateway.

ראו גם מה צריך לדעת על תאימות ל-Microgateway שרתי proxy.

מאתרים את כתובת ה-IP הפנימית של שירות הבדיקה.

  1. מקבלים את כתובת ה-IP הפנימית של אשכול ואת היציאה של שירות helloworld:

    kubectl get services helloworld

    פלט לדוגמה:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. מעתיקים את הערכים של CLUSTER-IP ושל PORT. לדוגמה, בתרחיש שלמעלה, הערכים האלה הם: 10.55.254.255 ו-8081. הערכים של המערכת תהיה שונה.

יצירת שרת proxy שתומך ב-microgateway ב-Edge

  1. מתחברים לממשק המשתמש של Edge.
  2. צריך לבחור את אותו הארגון שציינתם קודם כשהגדרתם Microsoft Edge Microgateway.
  3. בוחרים באפשרות פיתוח > ממשקי API ל-API בתפריט הניווט הצדדי.
  4. לוחצים על + Proxy. ייפתח האשף Build a Proxy.
  5. בדף האשף הראשון, בוחרים באפשרות שרת proxy הפוך (הכי נפוץ).
  6. לוחצים על הבא.
  7. בדף Details של האשף, קובעים את ההגדרות הבאות. חשוב למלא את האשף בדיוק כפי שמוצג. חשוב לוודא ששם ה-Proxy כולל תחילית edgemicro_

    1. שם שרת ה-proxy: edgemicro_hello
    2. נתיב הבסיס של שרת ה-proxy: /hello

    3. ממשק API קיים: http://<cluster_ip>:<port>

      לדוגמה: http://10.55.254.255:8081

  8. לוחצים על הבא.

  9. בדף 'אבטחה' באשף, בוחרים באפשרות מעבר (ללא).

  10. לוחצים על הבא.

  11. בדף 'מארחים וירטואליים' של האשף, מאשרים את ברירות המחדל.

  12. לוחצים על הבא.

  13. בדף Build באשף, בודקים את ההגדרות של שרת ה-proxy. צריך לוודא שהמאפיינים נבחרה סביבת הבדיקה.

  14. לוחצים על Build and Deploy (יצירה ופריסה).

יצירת מפתח

אפשר להשתמש במפתח קיים לצורך בדיקה, או ליצור מפתח חדש באופן הבא:

  1. בוחרים באפשרות פרסום > מפתחים בתפריט הניווט הצדדי.
  2. לוחצים על + מפתח.
  3. ממלאים את תיבת הדו-שיח כדי ליצור מפתח חדש. אפשר להשתמש בכל מפתח השם/האימייל הרצוי.

יצירה של מוצר API

יוצרים מוצר API כמו שמתואר בהמשך. מוסיפים שני שרתי proxy מוצר: edgemicro-auth ו-edgemicro-auth.

אפשר לקרוא עוד על אפשרויות להגדרת מוצרים בקטע מה צריך לדעת על מוצר ה-API הגדרה אישית.

  1. בוחרים באפשרות פרסום > מוצרי API בתפריט הניווט הצדדי.
  2. לוחצים על + מוצר API. יופיע דף פרטי המוצר.
  3. ממלאים את דף פרטי המוצר באופן הבא. לא ללחוץ על 'שמירה עד' קיבלת הוראה לעשות זאת.

    שם hello-world-product
    השם המוצג Edge Micro hello product
    סביבה test
    גישה Public
    סוג האישור של המפתח Automatic
  4. בחצי התחתון של הדף, לוחצים על + משאב מותאם אישית.

  5. מגדירים את המשאב כ-/ (קו נטוי יחיד).

  6. בוחרים שוב באפשרות + משאב מותאם אישית ומוסיפים את הנתיב /**.

  7. בחלק התחתון של הדף, לוחצים על + API Proxy.

  8. בוחרים את שרת ה-Proxy שנקרא edgemicro-auth.

  9. לוחצים שוב על + API Proxy.

  10. בוחרים את שרת ה-proxy התואם ל-microgateway בשם edgemicro_hello.

  11. לוחצים על שמירה.

יצירת אפליקציה למפתחים

  1. בוחרים באפשרות פרסום > אפליקציות בתפריט הניווט הצדדי.
  2. לוחצים על + אפליקציה. הדף 'פרטי האפליקציה למפתחים' יופיע.
  3. ממלאים את דף האפליקציה למפתחים באופן הבא. אין לשמור עד לקבלת הוראה לעשות זאת.

    שם hello-world-app
    השם המוצג Edge Micro hello app
    למפתחים יהיה עליך לבחור את מפתח הבדיקה שיצרת או מפתח כלשהו.
  4. בקטע 'פרטי כניסה', לוחצים על + מוצר ובוחרים את המוצר הרצוי. נוצר בתאריך: hello-world-product.

  5. לוחצים על שמירה.

  6. חזרת לדף שבו מפורטות כל האפליקציות למפתחים.

  7. בוחרים את האפליקציה שיצרתם, hello-world-app.

  8. לוחצים על הצגה לצד מפתח צרכן.

  9. מעתיקים את הערך של מפתח הצרכן. הערך הזה הוא מפתח API שבו משתמשים כדי לבצע קריאות מאובטחות ל-API אל /hello.

  10. עליך להמתין מספר דקות. השינויים שביצעתם ב-Apigee מתעדכנים תוך כמה דקות Edge להסתנכרן עם המכונה של Edge Microgateway שנפרסה אשכול.

בדיקת שרת ה-proxy

איך מוצאים את כתובת ה-IP של תעבורת הנתונים הנכנסת (ingress)

באמצעות כתובת ה-IP החיצונית של תעבורת הנתונים הנכנסת (ingress), אפשר לקרוא לשירות Edge Microgateway מחוץ לאשכול.

  1. מאתרים את כתובת ה-IP החיצונית של בקר תעבורת הנתונים הנכנסת (ingress):

    kubectl get ing -o wide

    פלט לדוגמה:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. מעתיקים את הערך של ADDRESS לתעבורת הנתונים היוצאת (ingress) ומייצאים אותו למשתנה. שלך הם יכולים להגדיר את המשתנה באופן ידני:

    export GATEWAY_IP=external_ip

    לדוגמה:

    export GATEWAY_IP=35.238.249.62

    לחלופין, משתמשים בפקודה הזו כדי להגדיר אותה:

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. מוודאים שבוצע ייצוא של המשתנה. לדוגמה:

    echo $GATEWAY_IP

    פלט לדוגמה:

    35.238.249.62
    

שליחת קריאה ל-API

אחרי ששינויי ההגדרות נשלפים אל המיקרו-שער, ניתן: אפשר לנסות לשלוח קריאה ל-API. אתם משתמשים בכתובת ה-IP של בקר תעבורת הנתונים הנכנסת (ingress) (ששמרתם במשתנה GATEWAY_IP) לקרוא ל-API כי כתובת ה-IP הזו מאפשרת לקרוא לשרת ה-proxy מחוץ לאשכול Kubernetes. מיפוי מ-Ingress ל-Edge Microgateway נוצר כשפרסתם את Edge Microgateway. לאשכול.

  1. לשלוח קריאה ל-API ללא מפתח API. תופיע הודעת שגיאה כפי שמוצג למטה:

    curl $GATEWAY_IP:80/hello/

    הפלט אמור להיראות כך:

    {"error":"missing_authorization","error_description":"Missing Authorization
    header"}
    

    אם מופיעה ההודעה הזו, ייתכן שצריך להמתין עוד קצת זמן עד לסנכרון הושלם:

    {"message":"no match found for /hello/","status":404}
    

    כדי לבצע קריאות מוצלחות ל-API, אתם זקוקים למפתח ה-API.

  2. מקבלים את מפתח הצרכן מאפליקציית המפתחים שיצרתם. הערך הזה הוא מפתח ה-API שנדרש כדי להפעיל את שרת ה-proxy לבדיקה:

    curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP:80/hello/

    לדוגמה:

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/

    פלט:

    Hello world
    

    אם מופיע הכיתוב 'שלום עולם' התשובה היא שהגדרתם בהצלחה Edge Microgateway כדי לקרוא לשירות helloworld בתוך Kubernetes אשכול.

מה השלב הבא?

מידע נוסף זמין בקטע משימות הוספת יישומי פלאגין מותאמים אישית, הרחבת הפריסה, ביצוע שינויים בתצורה ומשימות אחרות שאולי תרצו לבצע.