شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
مقدمه
این مبحث نحوه اجرای Edge Microgateway را در یک کلاستر Kubernetes به عنوان یک سرویس مستقل توضیح میدهد.
برای اطلاعات بیشتر، به مرور کلی ادغام Edge Microgateway با Kubernetes مراجعه کنید.
قبل از اینکه شروع کنی
مراحل شرح داده شده در پیشنیازها را تکمیل کنید.
پیکربندی Edge Microgateway
دستور زیر Edge Microgateway را برای سازمان Apigee شما پیکربندی میکند و پروکسی 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 برای پروکسی سرویس
IP داخلی سرویس helloworld را دریافت کنید و آن را به عنوان هدف یک پروکسی "microgateway-aware" اضافه کنید. ایجاد یک پروکسی "microgateway-aware" یک الزام استاندارد Edge Microgateway است.
همچنین ببینید آنچه باید در مورد پروکسیهای سازگار با 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مقادیر برای سیستم شما متفاوت خواهد بود.
یک پروکسی آگاه از microgateway در Edge ایجاد کنید
- وارد رابط کاربری Edge شوید .
- همان سازمانی را انتخاب کنید که قبلاً هنگام پیکربندی Edge Microgateway مشخص کردهاید.
- در منوی ناوبری کناری، گزینه توسعه > پروکسیهای API را انتخاب کنید.
- روی + Proxy کلیک کنید. ویزارد ساخت پروکسی باز میشود.
- در صفحه اول ویزارد، گزینه Reverse proxy (رایجترین) را انتخاب کنید.
- روی بعدی کلیک کنید.
در صفحه جزئیات ویزارد، به صورت زیر پیکربندی کنید. حتماً ویزارد را دقیقاً مطابق شکل پر کنید. مطمئن شوید که نام پروکسی دارای پیشوند
edgemicro_باشد.- نام پروکسی: edgemicro_hello
مسیر پایه پروکسی: /hello
API موجود:
http://<cluster_ip>:<port>برای مثال: http://10.55.254.255:8081
روی بعدی کلیک کنید.
در صفحه امنیت ویزارد، گزینه عبور (بدون رمز) را انتخاب کنید.
روی بعدی کلیک کنید.
در صفحه میزبانهای مجازی ویزارد، مقادیر پیشفرض را بپذیرید.
روی بعدی کلیک کنید.
در صفحه ساخت ویزارد، تنظیمات پروکسی خود را بررسی کنید. مطمئن شوید که محیط آزمایشی انتخاب شده است.
روی ساخت و استقرار کلیک کنید.
ایجاد یک توسعهدهنده
میتوانید از یک توسعهدهندهی موجود برای آزمایش استفاده کنید، یا یک توسعهدهندهی جدید به شرح زیر ایجاد کنید:
- در منوی ناوبری کناری، گزینهی انتشار > توسعهدهندگان را انتخاب کنید.
- روی + توسعهدهنده کلیک کنید.
- برای ایجاد یک توسعهدهنده جدید، کادر محاورهای را پر کنید. میتوانید از هر نام/ایمیل توسعهدهندهای که مایلید استفاده کنید.
یک محصول API ایجاد کنید
یک محصول API مطابق توضیحات زیر ایجاد کنید. دو پروکسی به محصول اضافه خواهید کرد: edgemicro-auth و edgemicro_hello .
میتوانید اطلاعات بیشتر در مورد گزینههای پیکربندی محصول را در بخش «آنچه باید در مورد پیکربندی محصول API بدانید» مطالعه کنید.
- در منوی ناوبری کناری، گزینه انتشار > محصولات API را انتخاب کنید.
- روی + محصول API کلیک کنید. صفحه جزئیات محصول نمایش داده میشود.
صفحه جزئیات محصول را به شرح زیر پر کنید. تا زمانی که دستورالعمل ذخیره سازی داده نشده است، روی آن کلیک نکنید.
نام hello-world-productنام نمایشی Edge Micro hello productمحیط زیست testدسترسی Publicنوع تأیید کلید Automaticدر نیمه پایینی صفحه، روی + منبع سفارشی کلیک کنید.
منبع را روی
/(یک اسلش تکی) تنظیم کنید.دوباره + Custom Resource را انتخاب کنید و مسیر
/**را اضافه کنید.در قسمت پایین صفحه، روی + API Proxy کلیک کنید.
پروکسی با نام edgemicro-auth را انتخاب کنید.
دوباره روی + API Proxy کلیک کنید.
پروکسی microgateway-aware با نام edgemicro_hello را انتخاب کنید.
روی ذخیره کلیک کنید.
یک برنامه توسعهدهنده ایجاد کنید
- در منوی ناوبری کناری، گزینهی انتشار > برنامهها را انتخاب کنید.
- روی + برنامه کلیک کنید. صفحه جزئیات برنامه توسعهدهنده ظاهر میشود.
صفحه برنامه توسعهدهندگان را به شرح زیر پر کنید. تا زمانی که دستورالعملی برای ذخیره داده نشده، آن را ذخیره نکنید.
نام hello-world-appنام نمایشی Edge Micro hello appتوسعهدهنده توسعهدهنده آزمایشی که ایجاد کردهاید را انتخاب کنید، در غیر این صورت هر توسعهدهندهای مناسب خواهد بود. در بخش اعتبارنامهها، روی + محصول کلیک کنید و محصولی را که ایجاد کردهاید انتخاب کنید:
hello-world-product.روی ذخیره کلیک کنید.
شما به صفحهای که تمام برنامههای توسعهدهنده را فهرست میکند، برگشتهاید.
برنامهای که تازه ایجاد کردهاید،
hello-world-appرا انتخاب کنید.روی «نمایش» در کنار کلید مصرفکننده کلیک کنید.
مقدار Consumer Key را کپی کنید. این مقدار، کلید API است که برای برقراری تماسهای API امن به
/helloآن استفاده خواهید کرد.چند دقیقه صبر کنید. چند دقیقه طول میکشد تا تغییراتی که در Apigee Edge ایجاد کردهاید با نمونه Edge Microgateway مستقر در کلاستر همگامسازی شود.
پروکسی را تست کنید
آدرس IP ورودی را دریافت کنید
با استفاده از 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 کنید. میتوانید متغیر را به صورت دستی تنظیم کنید: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 به شما امکان میدهد پروکسی را از خارج از خوشه 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 مورد نیاز برای فراخوانی پروکسی آزمایشی است:
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 فراخوانی کند.
بعدش چی؟
برای اطلاعات بیشتر در مورد افزودن افزونههای سفارشی، مقیاسبندی استقرار، ایجاد تغییرات پیکربندی و سایر کارهایی که ممکن است بخواهید انجام دهید، به بخش وظایف مراجعه کنید.