مستقر کردن Edge Microgateway به‌عنوان سرویس

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

مقدمه

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

برای اطلاعات بیشتر، یکپارچه‌سازی Edge Microgateway با نمای کلی 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. تأیید کنید که استقرار موفقیت‌آمیز بوده است. توجه داشته باشید که برای سرویس helloworld نشانی IP خارجی وجود ندارد. در مراحل بعدی، 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 را دریافت کنید و آن را به‌عنوان هدف کارگزار «آگاه از ریزدروازه» اضافه کنید. ایجاد پراکسی «آگاه از میکروگیت‌وی» یکی از شرایط استاندارد Edge Microgateway است.

همچنین آنچه باید درباره پراکسی‌های آگاه از Microgateway بدانید را ببینید.

دریافت پروتکل اینترنتی داخلی برای سرویس آزمایشی

  1. درگاه و «پروتکل اینترنتی خوشه» داخلی را برای سرویس 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. در منو پیمایش کناری، توسعه > پراکسی‌های API را انتخاب کنید.
  4. روی + پراکسی کلیک کنید. «دستیار ساختن پراکسی» باز می‌شود.
  5. در اولین صفحه دستیار، پراکسی معکوس (رایج‌ترین) را انتخاب کنید.
  6. روی بعدی کلیک کنید.
  7. در صفحه «جزئیات» دستیار، به‌صورت زیر پیکربندی کنید. مطمئن شوید که جادوگر را دقیقاً همان‌طور که نشان داده شده است پر کنید. مطمئن شوید نام پراکسی پیشوند edgemicro_ را داشته باشد.

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

    3. میانای برنامه‌سازی کاربردی موجود: http://<cluster_ip>:<port>

      برای مثال: http://10.55.254.255:8081

  8. روی بعدی کلیک کنید.

  9. در صفحه «امنیت» دستیار، عبور (هیچ‌کدام) را انتخاب کنید.

  10. روی بعدی کلیک کنید.

  11. در صفحه «میزبانان مجازی» در دستیار، پیش‌فرض‌ها را بپذیرید.

  12. روی بعدی کلیک کنید.

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

  14. روی ساختن و پیاده‌سازی کلیک کنید.

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

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

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

ایجاد محصول میانای برنامه‌سازی کاربردی

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

می‌توانید درباره گزینه‌های پیکربندی محصول در آنچه باید درباره پیکربندی «محصول API» بدانید بیشتر بخوانید.

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

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

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

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

  7. در بخش پایین صفحه، روی + API Proxy کلیک کنید.

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

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

  10. پراکسی آگاه از میکرودروازه به‌نام edgemicro_hello را انتخاب کنید.

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

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

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

    نام hello-world-app
    نام نمایشی Edge Micro hello app
    توسعه‌دهنده توسعه‌دهنده آزمایشی را که ساخته‌اید انتخاب کنید یا هر توسعه‌دهنده‌ای خوب است.
  4. در بخش «اطلاعات اعتباری»، روی + محصول کلیک کنید و محصولی را که ساخته‌اید انتخاب کنید: hello-world-product.

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

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

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

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

  9. مقدار «کلید مصرف‌کننده» را کپی کنید. این مقدار کلید میانای برنامه‌سازی کاربردی است که برای برقراری تماس‌های ایمن با «میانای برنامه‌سازی کاربردی» /hello استفاده خواهید کرد.

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

آزمایش پراکسی

دریافت نشانی IP ورودی

با «IP خارجی» برای «ورودی»، می‌توانید سرویس «ریزدروازه لبه» را از خارج خوشه فراخوانی کنید.

  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 را امتحان کنید. از نشانی IP کنترل‌کننده Ingress (که در متغیر GATEWAY_IP ذخیره کرده‌اید برای فراخوانی API استفاده می‌کنید زیرا این نشانی IP به شما امکان می‌دهد کارگزار را از خارج از خوشه Kubernetes فراخوانی کنید. وقتی Edge Microgateway را در خوشه مستقر کردید، نگاشت از Ingress به Edge Microgateway ایجاد شد.

  1. میانای برنامه‌سازی کاربردی را بدون کلید میانای برنامه‌سازی کاربردی فراخوانی کنید. پیام خطایی دریافت خواهید کرد، همان‌طور که در زیر نشان داده شده است:

    curl $GATEWAY_IP:80/hello/

    برونداد موردانتظار:

    {"error":"missing_authorization","error_description":"Missing Authorization
    header"}
    

    اگر این پیام را دیدید، ممکن است لازم باشد کمی بیشتر صبر کنید تا همگام‌سازی تکمیل شود:

    {"message":"no match found for /hello/","status":404}
    

    برای انجام موفقیت‌آمیز فراخوانی‌های API، به کلید API نیاز دارید.

  2. «کلید مصرف‌کننده» را از برنامه «توسعه‌دهنده» که ساخته‌اید دریافت کنید. این مقدار کلید 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
    

    اگر پاسخ «سلام دنیا» را دیدید، یعنی Edge Microgateway را با موفقیت پیکربندی کرده‌اید تا سرویس helloworld را در خوشه Kubernetes فراخوانی کند.

حالا چه می‌شود؟

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