درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
مقدمه
این موضوع توضیح میدهد که چگونه Edge Microgateway را در خوشه Kubernetes بهعنوان پراکسی جانبی اجرا کنید. برای استقرار خودروی جانبی دو گزینه دارید: تزریق دستی و تزریق خودکار. این موضوع هر دو گزینه را شرح میدهد.
برای اطلاعات بیشتر، مقدمهای بر Edge Microgateway در Kubernetes را ببینید.
قبلاز شروع
مراحل شرحدادهشده در پیشنیازها را تکمیل کنید.
پیادهسازی سرویس آزمایشی
سرویس «سلام» سادهای را مستقر کنید و استقرار را درستیسنجی کنید:
استقرار نمونه:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
تأیید کنید که سرویس درحال اجرا است. ممکن است لازم باشد چند لحظه صبر کنید تا واحد به حالت اجرا برسد:
kubectl get pods --namespace=default
برونداد نمونه:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17mاستقرار سرویس آزمایشی را حذف کنید. پساز فعال کردن تزریق سایدکار، آن را بعداً بازنصب خواهید کرد:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
استفاده از تزریق دستی خودروی جانبی
از بین دو گزینه تزریق خودروی جانبی، تزریق دستی خودروی جانبی روش سادهتر و سرراستتری است و میتوان آن را با یک فرمان kubectl انجام داد.
پیکربندی Edge Microgateway
فرمان زیر Edge Microgateway را برای سازمان Apigee شما پیکربندی میکند
و پراکسی edgemicro-auth را مستقر میکند.
فرمان زیر را اجرا کنید:
edgemicro configure -o [org] -e [env] -u [username]
مکان:
org: نام سازمان Edge شما (باید سرپرست سازمان باشید).env: محیطی در سازمان شما (مثل آزمایش یا تولید).
username: نشانی ایمیل منسوب به حساب Apigee شما.
مثال
edgemicro configure -o myorg -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 به غلاف سرویس بهعنوان پراکسی خودروی جانبی، این فرمان را اجرا کنید:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)
کجا:
your_org- سازمان Apigee که در فرمانedgemicro configureمشخص کردهاید.-
your_env- محیطی که در فرمانedgemicro configureمشخص کردهاید. your_key- کلید برگشتی از فرمانedgemicro configure.your_secret- رمز برگشتی از فرمانedgemicro configure.-
config_file_path- مسیر فایل پیکربندی Edge Micro که از فرمانedgemicro configureبرگردانده شده است. service_deployment_file- مسیر فایل استقرار سرویسی که غلاف آن سرویس همراه را دریافت خواهد کرد. برای مثال:samples/helloworld/helloworld.yaml.
برای مثال:
kubectl apply -f <(edgemicroctl -org=myorg -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/jdoe/.edgemicro/myorg-test-config.yaml -svc=samples/helloworld/helloworld.yaml)
آزمایش پیکربندی
استقرار سرویس را بررسی کنید:
kubectl get services -n default
برونداد نمونه:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.15.254.163 <none> 8081:32401/TCP 56s kubernetes ClusterIP 10.15.240.1 <none> 443/TCP 41mاکنون آمادهاید تا استقرار جانبی Edge Microgateway را آزمایش کنید. برای مراحل دقیق، به آزمایش کردن پراکسی بروید.
استفاده از تزریق خودکار خودرو جانبی
در مراحل بعدی، تزریق خودکار خودروی جانبی را برای خوشه Kubernetes خود پیکربندی خواهید کرد. این راهاندازی به Edge Microgateway اجازه میدهد بهعنوان پراکسی جانبی در Kubernetes تزریق شود.
نصب تزریقکننده خودروی جانبی
ConfigMap را که تزریق sidecar از Edge Microgateway را فعال میکند نصب کنید:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
دستورگان زیر را برای نصب سرویس وبقلاب اجرا کنید. سرویس وبقلاب برای تزریق خودکار خودروی جانبی لازم است:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certsبسته CA را به فایل نصب وبقلاب اضافه کنید. کارساز API Kubernetes از این فایل برای فراخوانی وبقلاب استفاده میکند:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yamlوبقلاب تزریقکننده همراه Edge Microgateway را نصب کنید:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
برونداد نمونه:
service "edgemicro-sidecar-injector" created serviceaccount "edgemicro-sidecar-injector-service-account" created deployment "edgemicro-sidecar-injector" created mutatingwebhookconfiguration "edgemicro-sidecar-injector" createdتأیید کنید که وبقلاب تزریقکننده Edge Microgateway sidecar درحال اجرا است:
kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
برونداد نمونه:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edgemicro-sidecar-injector 1 1 1 1 12mتأیید کنید که واحد تزریق sidecar در خوشه شما اجرا میشود. فضای نام
edgemicro-systemجایی است که خدمات سیستم نصب میشوند، ازجمله کنترلکننده Ingress، زیرینه HTTP پیشفرض، و تزریقکننده sidecar:kubectl get pods -n edgemicro-system
برونداد نمونه:
NAME READY STATUS RESTARTS AGE default-http-backend-55c6c69b88-gfnfd 1/1 Running 0 1h edgemicro-ingress-controller-64444469bf-jhn8b 1/1 Running 3 1h edgemicro-sidecar-injector-7d95698fbf-cq84q 1/1 Running 0 3m
پیکربندی و تزریق Edge Microgateway
در مرحله بعد، یک دستورگان تعاملی اجرا میکنید تا پیکربندی Edge Microgateway مرتبط با جاینام Kubernetes ایجاد کنید. سپس، پیکربندی را به خوشه Kubernetes تزریق میکنید.
دستورگان تعاملی زیر را اجرا کنید و پارامترهای درخواستشده را ارائه دهید. این فرمان نمایه پیکربندیای تولید میکند که در مرحله بعدی از آن استفاده خواهید کرد.
./install/kubernetes/webhook-edgemicro-patch.sh
برای اطلاعات درباره پارامترهای ورودی، مرجع را ببینید.
ورودیهای نمونه:
Namespace to deploy application [default]:کلید Enter را فشار دهید.
Authenticate with OAuth Token ("n","Y") [N/y]n را وارد کنید.
Apigee username [required]:نام کاربری Apigee (نشانی ایمیل) خود را وارد کنید. برای مثال:
jdoe@google.com.Apigee password [required]:گذرواژه Apigee خود را وارد کنید.
Apigee organization [required]:نام سازمان Apigee خود را وارد کنید.
Apigee environment [required]:نام محیطی برای سازمانتان وارد کنید. برای مثال «test».
Virtual Host [default]:کلید Enter را فشار دهید.
Is this Private Cloud ("n","y") [N/y]:اگر در «ابر عمومی» هستید، n را وارد کنید.
Edgemicro Key. Press Enter to generate:کلید Enter را فشار دهید.
Edgemicro Secret. Press Enter to generate:کلید Enter را فشار دهید.
Edgemicro org-env-config.yaml. Press Enter to generate:کلید Enter را فشار دهید.
برونداد نمونه:
current nodejs version is v6.9.1 current edgemicro version is 2.5.25 config initialized to /Users/jdoe/.edgemicro/default.yaml Configure for Cloud ****************************************************************************************** Config file is Generated in /Users/jdoe/Work/GITHUB/microgateway_2.5.25_Darwin_x86_64/config directory. Please make changes as desired. *****************************************************************************************Do you agree to proceed("n","y") [N/y]:y را وارد کنید.
برونداد نمونه:
Configuring Microgateway with key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84 secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0 config:~/.edgemicro/jdoe-test-config.yaml ******************************************************************************************************** kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml ********************************************************************************************************
فرمان ارائهشده در خط آخر برونداد را اجرا کنید. این فرمان
kubectlنمایه پیکربندی Edge Microgateway تولیدشده را به Kubernetes تزریق میکند:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
وضعیت تزریق وبقلاب را مشاهده کنید. توجه داشته باشید که درحالحاضر فعال نیست:
kubectl get namespace -L edgemicro-injection
برونداد نمونه:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d edgemicro-system Active 1d kube-public Active 1d kube-system Active 1dبرای فعال کردن تزریق وبقلاب برای وبقلاب، این فرمان را اجرا کنید:
kubectl label namespace default edgemicro-injection=enabled
وضعیت تزریق وبقلاب را دوباره مشاهده کنید. توجه داشته باشید که اکنون فعال است:
kubectl get namespace -L edgemicro-injection
برونداد نمونه:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d enabled edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
پیادهسازی سرویس آزمایش
اکنون، سرویس آزمایشی را دوباره مستقر کنید. Edge Microgateway بهطور خودکار به واحد سرویس تزریق خواهد شد.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
تأیید کنید که Edge Microgateway همراه با سرویس آزمایشی به واحد تزریق شده است:
kubectl get pods --namespace=default --watch
برونداد نمونه:
NAME READY STATUS RESTARTS AGE
helloworld-6987878fc4-pkw8h 0/2 PodInitializing 0 12s
helloworld-6987878fc4-pkw8h 2/2 Running 0 26s
وقتی وضعیت به Running تغییر کرد، برای خروج از فرمان، ctrl-c را فشار دهید.
اکنون آمادهاید تا استقرار خودکار «دستیار» Edge Microgateway را آزمایش کنید. برای مراحل دقیق، به آزمایش کردن پراکسی بروید.
آزمایش پراکسی
با استقرار «خودرو جانبی»، یک پراکسی API برای سرویس شما بهطور خودکار ایجاد میشود. نیازی به ایجاد پراکسی «سازگار با Edge Microgateway» ندارید.
دریافت نشانی IP ورودی
با «IP خارجی» برای «ورودی»، میتوانید سرویس را از خارج خوشه فراخوانی کنید.
نشانی IP خارجی کنترلکننده Ingress را دریافت کنید:
kubectl get ing -o wide
برونداد نمونه:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1mمقدار
EXTERNAL-IPرا برای Ingress کپی کنید و آن را به متغیری صادر کنید. میتوانید متغیر را بهصورت دستی تنظیم کنید:export GATEWAY_IP=external_ip
برای مثال:
export GATEWAY_IP=35.238.249.62
یا، از این فرمان برای تنظیم آن استفاده کنید:
export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
تأیید کنید که متغیر صادر شده است. برای مثال:
echo $GATEWAY_IP
برونداد نمونه:
35.238.249.62با سرویس تماس بگیرید:
curl $GATEWAY_IP
خروجی:
{"error":"missing_authorization","error_description":"Missing Authorization header"}در مرحله بعد، با پیکربندی محصول API و برنامه توسعهدهنده در Edge، خطای مجوز ازدسترفته را برطرف خواهید کرد تا بتوانید کلید API معتبری دریافت کنید. وقتی کلید را به سرایند مجوز برای فراخوانی API اضافه میکنید، فراخوانی موفق خواهد بود و این خطا را نخواهید دید.
ایجاد عناصر در Apigee Edge
سپس، در Apigee Edge، محصول API و برنامه توسعهدهنده ایجاد کنید.
ایجاد محصول API
- به سیستم Apigee Edge وارد شوید.
- در منو پیمایش کناری، انتشار > محصولات API را انتخاب کنید.
- روی + محصول API کلیک کنید. صفحه محصول ظاهر میشود.
«صفحه محصول» را بهصورت زیر تکمیل کنید. برای فیلدهایی که در زیر ذکر نشدهاند، میتوانید از مقادیر پیشفرض استفاده کنید. تا زمانی که دستورالعمل ذخیره کردن را دریافت نکردهاید، «ذخیره» نکنید.
نام hello-world-productنام نمایشی Edge Micro hello productمحیط testدر بخش «مسیر»، روی + منبع سفارشی کلیک کنید.
مسیر
/را اضافه کنید.دوباره روی + منبع سفارشی کلیک کنید و مسیر
/**را اضافه کنیددر بخش «پراکسیهای API»، روی + پراکسی API کلیک کنید و edgemicro-auth را اضافه کنید.
«محصول API» را ذخیره کنید.
ایجاد برنامه توسعهدهندگان
- برنامهها را در منو پیمایش کناری انتخاب کنید.
- روی + برنامه کلیک کنید. صفحه «جزئیات برنامه توسعهدهنده» ظاهر میشود.
صفحه «برنامه توسعهدهنده» را بهصورت زیر تکمیل کنید. تا زمانی که دستور داده نشده است «ذخیره» نکنید.
نام hello-world-appنام نمایشی Edge Micro hello appتوسعهدهنده توسعهدهندهای را از منوِ کرکرهای انتخاب کنید. در بخش «اطلاعات اعتباری»، روی + محصول کلیک کنید و
hello-world-productرا که بهتازگی ساختهاید انتخاب کنید.روی ذخیره کلیک کنید.
به صفحهای که همه برنامههای «توسعهدهنده» را فهرست میکند برمیگردید.
برنامهای را که بهتازگی ساختهاید،
hello-world-app، انتخاب کنید.روی نمایش در کنار کلید مصرفکننده کلیک کنید.
مقدار «کلید مصرفکننده» را کپی کنید. این مقدار کلید میانای برنامهسازی کاربردی است که برای انجام تماسهای ایمن با میانای برنامهسازی کاربردی به سرویس
helloworldاستفاده خواهید کرد.چند دقیقه صبر کنید. چند دقیقه طول میکشد تا تغییراتی که در Apigee Edge ایجاد کردهاید با نمونه Edge Microgateway که در خوشه مستقر شده است همگامسازی شود.
فراخوانی میانای برنامهسازی کاربردی
پساز اینکه تغییرات پیکربندی به ریزدروازه کشیده شد، میتوانید آزمایشهای زیر را انجام دهید.
میانای برنامهسازی کاربردی را بدون کلید میانای برنامهسازی کاربردی فراخوانی کنید. پیام خطایی دریافت خواهید کرد، همانطور که در زیر نشان داده شده است:
curl $GATEWAY_IP
برونداد موردانتظار:
{"error":"missing_authorization","error_description":"Missing Authorization header"}برای انجام موفقیتآمیز فراخوانیهای API، به کلید API نیاز دارید.
«کلید مصرفکننده» را از برنامه «توسعهدهنده» که ساختهاید دریافت کنید. این مقدار کلید API است که برای فراخوانی کارگزار آزمایشی نیاز دارید:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP
برای مثال:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
خروجی:
Hello worldپاسخ «سلام دنیا» توسط سرویس helloworld که در واحد مستقر شده است برگردانده میشود. تماس با آن سرویس ابتدا از Edge Microgateway عبور کرد، جایی که اصالتسنجی انجام شد. اگر پاسخ «سلام دنیا» را دیدید، یعنی Edge Microgateway را باموفقیت پیکربندی کردهاید تا بهعنوان پراکسی خودروی جانبی در غلاف سرویس helloworld عمل کند.
حالا چه میشود؟
برای کسب اطلاعات درباره افزودن افزایههای سفارشی، مقیاسبندی استقرار، ایجاد تغییرات پیکربندی، و سایر تکالیفی که ممکن است بخواهید انجام دهید، به بخش تکالیف مراجعه کنید.