استقرار Edge Microgateway به عنوان سرویس

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

مقدمه

این مبحث نحوه اجرای Edge Microgateway را در یک خوشه Kubernetes به عنوان یک سرویس مستقل توضیح می دهد.

برای اطلاعات بیشتر، به نمای کلی ادغام Microgateway Edge با Kubernetes مراجعه کنید.

قبل از شروع

مراحل توضیح داده شده در پیش نیازها را کامل کنید.

Edge Microgateway را پیکربندی کنید

دستور زیر Edge Microgateway را برای سازمان Apigee شما پیکربندی می کند و پروکسی edgemicro-auth را مستقر می کند.

  1. دستور زیر را اجرا کنید:

    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 به عنوان یک سرویس

  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 را بدهد.

یک سرویس آزمایشی راه اندازی کنید

مراحل زیر یک سرویس آزمایشی ساده را در خوشه شما مستقر می کند. کنترلر Ingress اجازه نمی دهد که سرویس از خارج از کلاستر فراخوانی شود. بعداً، Edge Microgateway را برای فراخوانی سرویس به عنوان هدف خود پیکربندی خواهید کرد. کنترلر Ingress اجازه دسترسی خارجی به سرویس 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 را برای پروکسی برای سرویس پیکربندی کنید

IP داخلی سرویس helloworld را دریافت کنید و آن را به عنوان هدف یک پروکسی "microgateway-aware" اضافه کنید. ایجاد یک پروکسی "microgateway-aware" یک نیاز استاندارد Edge Microgateway است.

همچنین آنچه را که باید در مورد پروکسی های Microgateway-aware بدانید را ببینید.

IP داخلی سرویس تست را دریافت کنید

  1. IP و پورت داخلی Cluster را برای سرویس 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 . مقادیر برای سیستم شما متفاوت خواهد بود.

یک پروکسی با آگاهی از میکرو گیت ها در Edge ایجاد کنید

  1. وارد رابط کاربری Edge شوید.
  2. همان سازمانی را که قبلاً هنگام پیکربندی Edge Microgateway مشخص کرده بودید، انتخاب کنید.
  3. Develop > API Proxies را در منوی ناوبری کناری انتخاب کنید.
  4. روی + Proxy کلیک کنید. جادوگر Build a Proxy باز می شود.
  5. در اولین صفحه جادوگر، Reverse proxy (متداول ترین) را انتخاب کنید.
  6. روی Next کلیک کنید.
  7. در صفحه جزئیات ویزارد، به صورت زیر پیکربندی کنید. حتماً ویزارد را دقیقاً مطابق شکل پر کنید. مطمئن شوید که نام پروکسی دارای پیشوند edgemicro_ است.

    1. نام پروکسی: edgemicro_hello
    2. مسیر پایه پروکسی: /hello

    3. API موجود: http://<cluster_ip>:<port>

      به عنوان مثال: http://10.55.254.255:8081

  8. روی Next کلیک کنید.

  9. در صفحه امنیت جادوگر، Pass through (none) را انتخاب کنید.

  10. روی Next کلیک کنید.

  11. در صفحه میزبان های مجازی جادوگر، پیش فرض ها را بپذیرید.

  12. روی Next کلیک کنید.

  13. در صفحه ساخت جادوگر، تنظیمات پراکسی خود را بررسی کنید. مطمئن شوید که محیط تست انتخاب شده است.

  14. روی Build and Deploy کلیک کنید.

یک توسعه دهنده ایجاد کنید

می‌توانید از یک توسعه‌دهنده موجود برای آزمایش استفاده کنید، یا یک توسعه‌دهنده جدید به شرح زیر ایجاد کنید:

  1. در منوی ناوبری کناری ، Publish > Developers را انتخاب کنید.
  2. روی + Developer کلیک کنید.
  3. برای ایجاد یک توسعه دهنده جدید، کادر گفتگو را پر کنید. می توانید از هر نام یا ایمیل توسعه دهنده ای که می خواهید استفاده کنید.

یک محصول API ایجاد کنید

همانطور که در زیر توضیح داده شده است یک محصول API ایجاد کنید. شما دو پراکسی به محصول اضافه خواهید کرد: edgemicro-auth و edgemicro_hello .

می‌توانید درباره گزینه‌های پیکربندی محصول در آنچه باید درباره پیکربندی محصول API بدانید، اطلاعات بیشتری کسب کنید.

  1. انتشار > محصولات API را در منوی ناوبری کناری انتخاب کنید.
  2. روی + محصول API کلیک کنید. صفحه جزئیات محصول ظاهر می شود.
  3. صفحه مشخصات محصول را به صورت زیر پر کنید. تا زمانی که به شما دستور داده نشده است، روی ذخیره کلیک نکنید.

    نام hello-world-product
    نام نمایشی Edge Micro hello product
    محیط زیست test
    دسترسی داشته باشید Public
    نوع تأیید کلید Automatic
  4. در نیمه پایین صفحه، روی + منبع سفارشی کلیک کنید.

  5. منبع را روی / (یک اسلش) قرار دهید.

  6. دوباره + Custom Resource را انتخاب کنید و مسیر /** را اضافه کنید.

  7. در قسمت پایین صفحه، روی + API Proxy کلیک کنید.

  8. پروکسی با نام edgemicro-auth را انتخاب کنید.

  9. دوباره روی + API Proxy کلیک کنید.

  10. پروکسی microgateway-aware با نام edgemicro_hello را انتخاب کنید.

  11. روی ذخیره کلیک کنید.

یک برنامه توسعه دهنده ایجاد کنید

  1. انتشار > برنامه‌ها را در منوی ناوبری کناری انتخاب کنید.
  2. روی + برنامه کلیک کنید. صفحه Developer App Details ظاهر می شود.
  3. صفحه Developer App را به صورت زیر پر کنید. تا زمانی که دستور داده نشده است، ذخیره نکنید.

    نام hello-world-app
    نام نمایشی Edge Micro hello app
    توسعه دهنده توسعه دهنده آزمایشی را که ایجاد کرده اید انتخاب کنید وگرنه هر توسعه دهنده ای خوب خواهد بود.
  4. در قسمت Credentials روی + Product کلیک کنید و محصولی را که ایجاد کردید انتخاب کنید: hello-world-product.

  5. روی ذخیره کلیک کنید.

  6. شما به صفحه‌ای برگشته‌اید که همه برنامه‌های برنامه‌نویس را فهرست می‌کند.

  7. برنامه‌ای را که ایجاد کرده‌اید، hello-world-app را انتخاب کنید.

  8. روی نمایش در کنار کلید مصرف کننده کلیک کنید.

  9. مقدار Consumer Key را کپی کنید. این مقدار کلید API است که از آن برای برقراری تماس‌های امن API به /hello استفاده می‌کنید.

  10. چند دقیقه صبر کنید. چند دقیقه طول می کشد تا تغییراتی که در Apigee Edge ایجاد کرده اید با نمونه Edge Microgateway مستقر در خوشه همگام شود.

پروکسی را تست کنید

آدرس IP Ingress را دریافت کنید

با IP خارجی برای ورودی، می‌توانید با سرویس 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 به شما امکان می دهد پراکسی را از خارج از خوشه 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. کلید مصرف کننده را از برنامه Developer که ایجاد کرده اید دریافت کنید. این مقدار کلید 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 با موفقیت پیکربندی کرده اید.

بعدش چی؟

برای اطلاعات در مورد افزودن پلاگین های سفارشی، گسترش مقیاس، ایجاد تغییرات پیکربندی و سایر کارهایی که ممکن است بخواهید انجام دهید، به بخش Tasks مراجعه کنید.