מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
מבוא
בנושא הזה נסביר איך להריץ את Edge Microgateway באשכול Kubernetes בתור שירות עצמאי.
מידע נוסף זמין במאמר סקירה כללית של Edge Microgateway עם Kubernetes.
לפני שמתחילים
מבצעים את השלבים שמתוארים בקטע דרישות מוקדמות.
הגדרת Microsoft Edge Microgateway
הפקודה הבאה מגדירה את Edge Microgateway לארגון שלכם ב-Apigee
ופורס את שרת ה-proxy edgemicro-auth
.
מריצים את הפקודה הבאה:
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 כשירות
מריצים את הפקודה הבאה כדי לפרוס את 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
צריך להעתיק את הקוד הבא ולהדביק אותו בטרמינל. הקוד מגדיר את בקר תעבורת הנתונים הנכנסת (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
.
פריסה של שירות
helloworld
לדוגמה. כי תעבורת הנתונים הנכנסת (ingress) לא יודעת על השירות הזה, לא ניתן לקרוא לשירות מחוץ לאשכול.kubectl apply -f samples/helloworld/helloworld-service.yaml
פלט לדוגמה:
service "helloworld" created deployment "helloworld" created
מומלץ לוודא שהפריסה הצליחה. חשוב לשים לב שאין כתובת 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 הפנימית של שירות הבדיקה.
מקבלים את כתובת ה-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
מעתיקים את הערכים של
CLUSTER-IP
ושלPORT
. לדוגמה, בתרחיש שלמעלה, הערכים האלה הם:10.55.254.255
ו-8081
. הערכים של המערכת תהיה שונה.
יצירת שרת proxy שתומך ב-microgateway ב-Edge
- מתחברים לממשק המשתמש של Edge.
- צריך לבחור את אותו הארגון שציינתם קודם כשהגדרתם Microsoft Edge Microgateway.
- בוחרים באפשרות פיתוח > ממשקי API ל-API בתפריט הניווט הצדדי.
- לוחצים על + Proxy. ייפתח האשף Build a Proxy.
- בדף האשף הראשון, בוחרים באפשרות שרת proxy הפוך (הכי נפוץ).
- לוחצים על הבא.
בדף Details של האשף, קובעים את ההגדרות הבאות. חשוב למלא את האשף בדיוק כפי שמוצג. חשוב לוודא ששם ה-Proxy כולל תחילית
edgemicro_
- שם שרת ה-proxy: edgemicro_hello
נתיב הבסיס של שרת ה-proxy: /hello
ממשק API קיים:
http://<cluster_ip>:<port>
לדוגמה: http://10.55.254.255:8081
לוחצים על הבא.
בדף 'אבטחה' באשף, בוחרים באפשרות מעבר (ללא).
לוחצים על הבא.
בדף 'מארחים וירטואליים' של האשף, מאשרים את ברירות המחדל.
לוחצים על הבא.
בדף Build באשף, בודקים את ההגדרות של שרת ה-proxy. צריך לוודא שהמאפיינים נבחרה סביבת הבדיקה.
לוחצים על Build and Deploy (יצירה ופריסה).
יצירת מפתח
אפשר להשתמש במפתח קיים לצורך בדיקה, או ליצור מפתח חדש באופן הבא:
- בוחרים באפשרות פרסום > מפתחים בתפריט הניווט הצדדי.
- לוחצים על + מפתח.
- ממלאים את תיבת הדו-שיח כדי ליצור מפתח חדש. אפשר להשתמש בכל מפתח השם/האימייל הרצוי.
יצירה של מוצר API
יוצרים מוצר API כמו שמתואר בהמשך. מוסיפים שני שרתי proxy מוצר: edgemicro-auth ו-edgemicro-auth.
אפשר לקרוא עוד על אפשרויות להגדרת מוצרים בקטע מה צריך לדעת על מוצר ה-API הגדרה אישית.
- בוחרים באפשרות פרסום > מוצרי API בתפריט הניווט הצדדי.
- לוחצים על + מוצר API. יופיע דף פרטי המוצר.
ממלאים את דף פרטי המוצר באופן הבא. לא ללחוץ על 'שמירה עד' קיבלת הוראה לעשות זאת.
שם hello-world-product
השם המוצג Edge Micro hello product
סביבה test
גישה Public
סוג האישור של המפתח Automatic
בחצי התחתון של הדף, לוחצים על + משאב מותאם אישית.
מגדירים את המשאב כ-
/
(קו נטוי יחיד).בוחרים שוב באפשרות + משאב מותאם אישית ומוסיפים את הנתיב
/**
.בחלק התחתון של הדף, לוחצים על + API Proxy.
בוחרים את שרת ה-Proxy שנקרא edgemicro-auth.
לוחצים שוב על + API Proxy.
בוחרים את שרת ה-proxy התואם ל-microgateway בשם edgemicro_hello.
לוחצים על שמירה.
יצירת אפליקציה למפתחים
- בוחרים באפשרות פרסום > אפליקציות בתפריט הניווט הצדדי.
- לוחצים על + אפליקציה. הדף 'פרטי האפליקציה למפתחים' יופיע.
ממלאים את דף האפליקציה למפתחים באופן הבא. אין לשמור עד לקבלת הוראה לעשות זאת.
שם hello-world-app
השם המוצג Edge Micro hello app
למפתחים יהיה עליך לבחור את מפתח הבדיקה שיצרת או מפתח כלשהו. בקטע 'פרטי כניסה', לוחצים על + מוצר ובוחרים את המוצר הרצוי. נוצר בתאריך:
hello-world-product.
לוחצים על שמירה.
חזרת לדף שבו מפורטות כל האפליקציות למפתחים.
בוחרים את האפליקציה שיצרתם,
hello-world-app
.לוחצים על הצגה לצד מפתח צרכן.
מעתיקים את הערך של מפתח הצרכן. הערך הזה הוא מפתח API שבו משתמשים כדי לבצע קריאות מאובטחות ל-API אל
/hello
.עליך להמתין מספר דקות. השינויים שביצעתם ב-Apigee מתעדכנים תוך כמה דקות Edge להסתנכרן עם המכונה של Edge Microgateway שנפרסה אשכול.
בדיקת שרת ה-proxy
איך מוצאים את כתובת ה-IP של תעבורת הנתונים הנכנסת (ingress)
באמצעות כתובת ה-IP החיצונית של תעבורת הנתונים הנכנסת (ingress), אפשר לקרוא לשירות Edge Microgateway מחוץ לאשכול.
מאתרים את כתובת ה-IP החיצונית של בקר תעבורת הנתונים הנכנסת (ingress):
kubectl get ing -o wide
פלט לדוגמה:
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37m
מעתיקים את הערך של
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:]")
מוודאים שבוצע ייצוא של המשתנה. לדוגמה:
echo $GATEWAY_IP
פלט לדוגמה:
35.238.249.62
שליחת קריאה ל-API
אחרי ששינויי ההגדרות נשלפים אל המיקרו-שער, ניתן:
אפשר לנסות לשלוח קריאה ל-API. אתם משתמשים בכתובת ה-IP של בקר תעבורת הנתונים הנכנסת (ingress) (ששמרתם במשתנה GATEWAY_IP
)
לקרוא ל-API כי כתובת ה-IP הזו מאפשרת לקרוא לשרת ה-proxy מחוץ לאשכול Kubernetes.
מיפוי מ-Ingress ל-Edge Microgateway נוצר כשפרסתם את Edge Microgateway.
לאשכול.
לשלוח קריאה ל-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.
מקבלים את מפתח הצרכן מאפליקציית המפתחים שיצרתם. הערך הזה הוא מפתח ה-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 אשכול.
מה השלב הבא?
מידע נוסף זמין בקטע משימות הוספת יישומי פלאגין מותאמים אישית, הרחבת הפריסה, ביצוע שינויים בתצורה ומשימות אחרות שאולי תרצו לבצע.