نشر Edge Microgateway كخادم وكيل جانبي

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

مقدمة

يوضّح هذا الموضوع كيفية تشغيل Edge Microgateway في مجموعة Kubernetes بصفتها خادم وكيل تابعًا. يتوفّر لك خياران لنشر الوحدات الجانبية: ميزة التلقائية واليدوية. يوضّح هذا الموضوع كلا الخيارَين.

لمزيد من المعلومات، يُرجى الاطّلاع على مقدّمة عن بوابة Edge Microgateway على Kubernetes.

قبل البدء

أكمِل الخطوات الموضّحة في المتطلّبات الأساسية.

نشر خدمة اختبارية

يمكنك نشر خدمة "مرحبًا" بسيطة والتحقّق من عملية النشر:

  1. نشر العيّنة:

    kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
  2. تأكَّد من أنّ الخدمة قيد التشغيل. قد تحتاج إلى الانتظار لبضع لحظات إلى أن يتم بدء تشغيل الحِزمة:

    kubectl get pods --namespace=default

    مثال على الإخراج:

    NAME                          READY     STATUS    RESTARTS   AGE
    helloworld-569d6565f9-lwrrv   1/1       Running   0          17m
    
  3. حذف عملية نشر الخدمة الاختبارية ستعيد تثبيته لاحقًا بعد تفعيل ميزة "حقن Sidecar":

     kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default

استخدام ميزة "حقن المحتوى الجانبي" يدويًا

من بين خيارَي إدراج إعلانات على جانب الصفحة، يُعدّ إدراج إعلانات على جانب الصفحة يدويًا هو الأسلوب الأكثر بساطة ومباشرة، ويمكن تنفيذه باستخدام أمر kubectl واحد.

ضبط إعدادات Edge Microgateway

يضبط الأمر التالي بوابة Edge Microgateway لمؤسستك على Apigee ويُنشئ الخادم الوكيل edgemicro-auth.

  1. نفِّذ الأمر التالي:

    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)

اختبار الإعدادات

  1. التحقّق من عمليات نشر الخدمة:

    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
    
  2. أنت الآن جاهز لاختبار عملية نشر "الوحدة الجانبية" لـ Edge Microgateway. انتقِل إلى اختبار الخادم الوكيل للاطّلاع على الخطوات التفصيلية.

استخدام ميزة "إدراج ملف جانبي" التلقائية

في الخطوات التالية، ستضبط ميزة "إدراج الوحدات الجانبية" التلقائية لشدَّة مجموعة Kubernetes. يتيح هذا الإعداد إدخال Edge Microgateway كوكيل جانبي في Kubernetes.

تركيب حاقن جانبي

  1. ثبِّت ConfigMap الذي يتيح حقن Sidecar في Edge Microgateway:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
  2. نفِّذ النص البرمجي التالي لتثبيت خدمة webhook. يجب استخدام خدمة webhook من أجل إدراج المحتوى الجانبي تلقائيًا:

    ./install/kubernetes/webhook-create-signed-cert.sh \
        --service edgemicro-sidecar-injector \
        --namespace edgemicro-system \
        --secret sidecar-injector-certs
    
  3. أضِف حِزمة CA إلى ملف تثبيت وحدات الردّ التلقائي على الويب. يستخدم خادم Kubernetes api-server هذا الملف لتشغيل رابط البيانات في واجهة برمجة التطبيقات:

    cat install/kubernetes/edgemicro-sidecar-injector.yaml | \
         ./install/kubernetes/webhook-patch-ca-bundle.sh > \
         install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    
  4. ثبِّت رمز مخطّط عمل Injector webhook لتطبيق Sidecar في 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
    
  5. تأكَّد من أنّ رمز webhook الخاص بحقن البيانات في العنصر الجانبي لخدمة Edge Microgateway قيد التشغيل:

    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
    
  6. تأكَّد من أنّ وحدة pod الخاصة بحقن الوحدات الجانبية تعمل في مجموعتك. مساحة الاسم edgemicro-system هي المكان الذي يتم فيه تثبيت خدمات النظام، بما في ذلك عنصر التحكّم في الدخول ووحدة الدعم الخلفية التلقائية لبروتوكول HTTP ومحقِّق الحقن الجانبي:

    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.

  1. شغِّل النص البرمجي التفاعلي التالي وقدِّم المَعلمات المطلوبة. يُنشئ الأمر ملفًا شخصيًا للضبط ستستخدمه في الخطوة التالية.

    ./install/kubernetes/webhook-edgemicro-patch.sh

    للحصول على معلومات عن مَعلمات الإدخال، يُرجى الاطّلاع على المرجع.

    أمثلة على الإدخالات:

    1. Namespace to deploy application [default]:

      اضغط على Enter.

    2. Authenticate with OAuth Token ("n","Y") [N/y]

      أدخِل n.

    3. Apigee username [required]:

      أدخِل اسم المستخدم في Apigee (عنوان البريد الإلكتروني). على سبيل المثال: jdoe@google.com.

    4. Apigee password [required]:

      أدخِل كلمة مرور Apigee.

    5. Apigee organization [required]:

      أدخِل اسم مؤسسة Apigee.

    6. Apigee environment [required]:

      أدخِل اسم بيئة لمؤسستك. على سبيل المثال، "اختبار".

    7. Virtual Host [default]:

      اضغط على Enter.

    8. Is this Private Cloud ("n","y") [N/y]:

      أدخِل n إذا كنت تستخدم Public Cloud.

    9. Edgemicro Key. Press Enter to generate:

      اضغط على Enter.

    10. Edgemicro Secret. Press Enter to generate:

      اضغط على Enter.

    11. 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.
      *****************************************************************************************
      
    12. 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
      ********************************************************************************************************
      
  2. نفِّذ الأمر الوارد في السطر الأخير من الإخراج. يُستخدَم الأمر kubectl هذا لإدخال ملف الضبط الذي تم إنشاؤه لـ Edge Microgateway في Kubernetes:

    kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
  3. عرض حالة إدراج وحدات الربط لطلبات البحث يُرجى العلم أنّ هذه الميزة غير مفعّلة حاليًا:

    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
    
  4. نفِّذ الأمر التالي لتفعيل ميزة "إدراج رابط webhook" للرابط الخارجي:

    kubectl label namespace default edgemicro-injection=enabled
  5. اطّلِع على حالة حقن وحدات الربط من خلال عناوين URL مرة أخرى. يُرجى العِلم أنّه تم تفعيله الآن:

    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. انتقِل إلى اختبار الخادم الوكيل للاطّلاع على الخطوات التفصيلية.

اختبار الخادم الوكيل

من خلال نشر التطبيق المصاحب، يتم تلقائيًا إنشاء خادم وكيل لواجهة برمجة التطبيقات لخدمتك. ليس عليك إنشاء خادم وكيل "متوافق مع بوابة Edge Microgateway".

الحصول على عنوان IP لتطبيق Ingress

باستخدام عنوان IP الخارجي لمسار الإدخال، يمكنك الاتصال بالخدمة من خارج المجموعة.

  1. احصل على عنوان IP الخارجي لوحدة تحكّم الدخول:

    kubectl get ing -o wide

    مثال على الإخراج:

    NAME      HOSTS     ADDRESS        PORTS     AGE
    gateway   *         35.238.13.54   80        1m
    
  2. انسخ قيمة 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:]")
  3. تأكَّد من تصدير المتغيّر. على سبيل المثال:

    echo $GATEWAY_IP

    مثال على الإخراج:

    35.238.249.62
    
  4. اتّبِع الخطوات التالية للاتصال بالخدمة:

    curl $GATEWAY_IP

    إخراج:

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

    بعد ذلك، عليك حلّ خطأ التفويض غير المتوفّر من خلال ضبط منتج واجهة برمجة التطبيقات وتطبيق المطوّر على Edge حتى تتمكّن من الحصول على مفتاح واجهة برمجة تطبيقات صالح. عند إضافة المفتاح إلى ملف تعريف ملف شخصي لطلب البيانات من واجهة برمجة التطبيقات، سيُقبل الطلب ولن يظهر لك هذا الخطأ.

إنشاء مكوّنات على Apigee Edge

بعد ذلك، أنشئ منتج واجهة برمجة تطبيقات وتطبيق مطوّر على Apigee Edge.

إنشاء منتج لواجهة برمجة التطبيقات

  1. سجِّل الدخول إلى Apigee Edge.
  2. انقر على النشر > منتجات واجهة برمجة التطبيقات في قائمة التنقّل الجانبية.
  3. انقر على + منتج واجهة برمجة التطبيقات. تظهر صفحة المنتج.
  4. املأ صفحة المنتج كما يلي. بالنسبة إلى الحقول التي لم تتم الإشارة إليها أدناه، يمكنك استخدام القيم التلقائية. لا تحفظ التغييرات إلى أن يُطلب منك ذلك.

    الاسم hello-world-product
    الاسم المعروض Edge Micro hello product
    البيئة test

  5. في قسم "المسار"، انقر على + مورد مخصّص.

  6. أضِف المسار /.

  7. انقر على + مورد مخصّص مرة أخرى وأضِف المسار /**.

  8. في قسم "خوادم وكيل واجهة برمجة التطبيقات" (API Proxies)، انقر على + خادم وكيل لواجهة برمجة التطبيقات (API Proxy) وأضِف edgemicro-auth.

  9. احفظ المنتج في واجهة برمجة التطبيقات.

إنشاء تطبيق مطوّر

  1. انقر على التطبيقات في قائمة التنقّل الجانبية.
  2. انقر على + تطبيق. ستظهر صفحة "تفاصيل تطبيق المطوّر".
  3. املأ صفحة "تطبيق المطوّر" على النحو التالي. لا تحفظ التغييرات إلى أن يُطلب منك إجراء ذلك.

    الاسم hello-world-app
    الاسم المعروض Edge Micro hello app
    المطوّر اختَر مطوّرًا من القائمة المنسدلة.
  4. في قسم "بيانات الاعتماد"، انقر على + منتج واختَر hello-world-product الذي أنشأته للتو.

  5. انقر على حفظ.

  6. ستعود إلى الصفحة التي تسرد جميع تطبيقات المطوّرين.

  7. اختَر التطبيق الذي أنشأته للتو، hello-world-app.

  8. انقر على إظهار بجانب مفتاح المستهلك.

  9. انسخ قيمة مفتاح العميل. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي ستستخدمه لإجراء طلبات آمنة لواجهة برمجة التطبيقات من أجل خدمة helloworld.

  10. يُرجى الانتظار لبضع دقائق. تستغرق التغييرات التي أجريتها على Apigee Edge بضع دقائق لمزامنتها مع مثيل Edge Microgateway الذي تم نشره في السلسلة العميقة.

استدعاء واجهة برمجة التطبيقات

بعد سحب تغييرات الضبط إلى بوابة التطبيقات المصغّرة، يمكنك إجراء الاختبارات التالية.

  1. استدعاء واجهة برمجة التطبيقات بدون مفتاح واجهة برمجة التطبيقات ستظهر لك رسالة خطأ، كما هو موضّح أدناه:

    curl $GATEWAY_IP

    الناتج المتوقّع:

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

    لإجراء طلبات بيانات ناجحة من واجهة برمجة التطبيقات، تحتاج إلى مفتاح واجهة برمجة التطبيقات.

  2. احصل على مفتاح المستهلك من تطبيق المطوّر الذي أنشأته. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي تحتاجه لاستدعاء الخادم الوكيل للاختبار:

    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.

ما هي الخطوات التالية؟

راجِع قسم المهام للحصول على معلومات عن إضافة مكوّنات إضافية مخصّصة وتوسيع نطاق عمليات النشر وإجراء تغييرات على الإعدادات وغيرها من المهام التي قد تريد تنفيذها.