אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
מבוא
בקטע הזה נסביר איך להריץ את Edge Microgateway באשכול Kubernetes בתור שירות עצמאי.
מידע נוסף זמין במאמר סקירה כללית על שילוב Edge Microgateway עם Kubernetes.
לפני שמתחילים
מבצעים את השלבים שמפורטים בקטע דרישות מוקדמות.
הגדרת Edge Microgateway
הפקודה הבאה מגדירה את Edge Microgateway לארגון Apigee ומפרסת את שרת ה-proxy edgemicro-auth
.
מריצים את הפקודה הבאה:
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 כשירות
מריצים את הפקודה הבאה כדי לפרוס את 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 'עם תמיכה ב-microgateway'. יצירת שרת proxy 'עם תמיכה ב-microgateway' היא דרישות רגילה של Edge Microgateway.
מומלץ לקרוא גם את המאמר מה צריך לדעת על שרתים proxy שתומכים ב-Microgateway.
אחזור כתובת ה-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.
- בוחרים את אותו ארגון שציינתם קודם כשהגדרתם את Edge Microgateway.
- בתפריט הניווט הצדדי, בוחרים באפשרות Develop (פיתוח) > API Proxies (שרתי proxy ל-API).
- לוחצים על + שרת proxy. אשף היצירה של שרת proxy ייפתח.
- בדף הראשון של האשף, בוחרים באפשרות Reverse proxy (האפשרות הנפוצה ביותר).
- לוחצים על הבא.
בדף הפרטים של האשף, מגדירים את הפרטים הבאים. חשוב למלא את האשף בדיוק כפי שמוצג. חשוב לוודא ששם שרת ה-proxy כולל את הקידומת
edgemicro_
.- שם שרת ה-proxy: edgemicro_hello
נתיב הבסיס של שרת ה-proxy: /hello
ממשק API קיים:
http://<cluster_ip>:<port>
לדוגמה: http://10.55.254.255:8081
לוחצים על הבא.
בדף Security (אבטחה) של האשף, בוחרים באפשרות Pass through (none) (מעבר ישיר (ללא)).
לוחצים על הבא.
בדף Virtual Hosts (מארחים וירטואליים) באשף, מאשרים את הגדרות ברירת המחדל.
לוחצים על הבא.
בדף Build (יצירה) של האשף, בודקים את הגדרות שרת ה-proxy. מוודאים שנבחרה הסביבה test.
לוחצים על Build and Deploy.
יצירת מפתח
אפשר להשתמש בחשבון פיתוח קיים לצורך בדיקה, או ליצור חשבון חדש באופן הבא:
- בתפריט הניווט הצדדי, בוחרים באפשרות פרסום > מפתחים.
- לוחצים על + מפתח.
- ממלאים את תיבת הדו-שיח כדי ליצור מפתח חדש. אפשר להשתמש בכל שם או כתובת אימייל של מפתח שתרצו.
יצירת מוצר API
יוצרים מוצר API כפי שמתואר בהמשך. מוסיפים למוצר שני שרתים proxy: edgemicro-auth ו-edgemicro_hello.
מידע נוסף על אפשרויות ההגדרה של המוצר זמין במאמר מידע שחשוב לדעת על הגדרת המוצר ב-API.
- בתפריט הניווט הצדדי, בוחרים באפשרות פרסום > מוצרי API.
- לוחצים על + API Product. יופיע דף פרטי המוצר.
ממלאים את דף פרטי המוצר באופן הבא. אין ללחוץ על 'שמירה' עד שמקבלים הוראות לעשות זאת.
שם hello-world-product
שם לתצוגה Edge Micro hello product
סביבה test
גישה Public
סוג אישור המפתח Automatic
בחלק התחתון של הדף, לוחצים על + משאב מותאם אישית.
מגדירים את המשאב כ-
/
(קו נטוי אחד).בוחרים שוב באפשרות + משאב מותאם אישית ומוסיפים את הנתיב
/**
.בחלק התחתון של הדף, לוחצים על + שרת proxy ל-API.
בוחרים את שרת ה-proxy בשם edgemicro-auth.
לוחצים שוב על + שרת proxy ל-API.
בוחרים את שרת ה-proxy שמתאים ל-microgateway בשם edgemicro_hello.
לוחצים על שמירה.
יצירת אפליקציה למפתחים
- בתפריט הניווט הצדדי, בוחרים באפשרות פרסום > אפליקציות.
- לוחצים על + אפליקציה. יופיע הדף 'פרטי האפליקציה למפתחים'.
ממלאים את דף האפליקציה למפתחים באופן הבא. אין לשמור עד שמקבלים הוראה לעשות זאת.
שם hello-world-app
שם לתצוגה Edge Micro hello app
מפתח/ת בוחרים את מפתח הבדיקה שיצרתם, או כל מפתח אחר. בקטע Credentials (פרטי כניסה), לוחצים על + Product ובוחרים את המוצר שיצרתם:
hello-world-product.
לוחצים על שמירה.
חוזרים לדף שבו מפורטות כל האפליקציות של המפתחים.
בוחרים את האפליקציה שיצרתם,
hello-world-app
.לוחצים על Show לצד Consumer Key.
מעתיקים את הערך של מפתח הצרכן. הערך הזה הוא מפתח ה-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
אחרי ששינויי ההגדרה יישלפו ל-microgateway, תוכלו לנסות לבצע קריאה ל-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
אם מופיעה התגובה Hello world, סימן שהגדרתם את Edge Microgateway כדי לקרוא לשירות helloworld בתוך האשכולות של Kubernetes.
מה השלב הבא?
בקטע משימות מוסבר איך מוסיפים פלאגינים מותאמים אישית, משנים את קנה המידה של הפריסה, מבצעים שינויים בהגדרות ועוד.