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

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

مقدمة

يشرح هذا الموضوع كيفية تشغيل 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. حذف عملية نشر الخدمة التجريبية يمكنك إعادة تثبيته لاحقًا بعد تفعيل إدخال ملف جانبي:

     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!
    

حقن مدخل 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 التي تعمل على تمكين حقن العناصر الجانبية في بوابة Edge Microgateway:

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

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

    cat install/kubernetes/edgemicro-sidecar-injector.yaml | \
         ./install/kubernetes/webhook-patch-ca-bundle.sh > \
         install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    
  4. تثبيت الرد التلقائي على الويب لحقن طرف المدخل الجانبي لشبكة 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. تحقق من أن الرد التلقائي على الويب لمدخل الإجراء الجانبي لـ 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. تحقق من أن لوحة حقن السيارة الجانبية تعمل في مجموعتك. مساحة الاسم 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
    

إعداد بوابة 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. شغِّل الأمر التالي لتفعيل إدخال الردّ التلقائي على الويب للردّ التلقائي على الويب:

    kubectl label namespace default edgemicro-injection=enabled
  5. عرض حالة إدخال الرد التلقائي على الويب مرة أخرى تجدر الإشارة إلى أنّه قد تم الآن تفعيل هذه الميزة:

    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
    

تفعيل الخدمة التجريبية

الآن، أعد نشر خدمة الاختبار. سيتم إدخال بوابة 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-aware" الخادم الوكيل.

الحصول على عنوان IP للزيارات الواردة

باستخدام عنوان 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. في قسم "خوادم الوكيل لواجهة برمجة التطبيقات"، انقر على + خادم وكيل لواجهة برمجة التطبيقات وأضِف edgemicro-auth.

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

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

  1. اختَر التطبيقات في قائمة التنقل الجانبية.
  2. انقر على + تطبيق. ستظهر صفحة تفاصيل التطبيق للمطوّرين.
  3. املأ صفحة تطبيق المطوِّر على النحو التالي. عدم الحفظ حتى يتم توجيهك القيام بذلك.

    الاسم hello-world-app
    الاسم المعروض Edge Micro hello app
    المطوّر اختَر مطوِّرًا من القائمة المنسدلة.
  4. في قسم Credentials (بيانات الاعتماد)، انقر على + Product (+ منتج) واختَر 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.

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

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