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

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מבוא

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

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

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

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

הגדרת Edge Microgateway

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

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

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

    כאשר:

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

    • env: סביבה בארגון שלכם (כמו test או prod).

    • 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.

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

כך פורסים שירות בדיקה פשוט לאשכול. בקר תעבורת הנתונים הנכנסת לא מאפשר להפעיל את השירות מחוץ לאשכול. לאחר מכן צריך להגדיר את Edge Microgateway כך שיקרא לשירות כיעד שלו. בקר תעבורת הנתונים הנכנסת מאפשר גישה חיצונית לשירות 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 'תומך ב-microgateway'. כדי ליצור שרת proxy ל-microgateway-ware proxy היא דרישה סטנדרטית ל-Edge Microgateway.

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

קבלת כתובת ה-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. בוחרים את אותו הארגון שציינתם כשהגדרתם את Edge Microgateway.
  3. בתפריט הניווט שבצד, בוחרים פיתוח > ממשקי proxy ל-API.
  4. לוחצים על + שרת Proxy. האשף 'בניית שרת proxy' ייפתח.
  5. בדף האשף הראשון, בוחרים באפשרות הפוך שרת proxy (הנפוץ ביותר).
  6. לוחצים על הבא.
  7. בדף 'פרטים' באשף, הגדר באופן הבא. הקפידו למלא את הפרטים באשף בדיוק כפי שמוצג. מוודאים ששם שרת ה-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. מוודאים שסביבת test נבחרה.

  14. לוחצים על יצירה ופריסה.

יצירת מפתח

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

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

יצירת מוצר API

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

מידע נוסף על אפשרויות ההגדרה של מוצרים זמין במאמר מה צריך לדעת על הגדרות התצורה של מוצרים ב-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 המותאם למיקרו-שער בשם edgemicro_hello.

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

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

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

    שם hello-world-app
    שם לתצוגה Edge Micro hello app
    מפתח צריך לבחור את המפתח לבדיקה שיצרת, אחרת כל מפתח יוכל לעשות זאת.
  4. בקטע Credentials, לוחצים על + Product ובוחרים את המוצר שיצרתם: 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
    

    אם מופיעה התגובה Hello world, סימן ש-Edge Microgateway יקרא לשירות helloworld באשכול Kubernetes.

מה השלב הבא?

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