نشر 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. أضِف حزمة مرجع التصديق إلى ملف تثبيت الرد التلقائي على الويب. يستخدم خادم واجهة برمجة تطبيقات Kubernetes هذا الملف لاستدعاء الرد التلقائي على الويب:

    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
    

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

    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
    

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

الآن، عليك إعادة نشر خدمة الاختبار. سيتم حقن 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-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 للإدخال وصدِّرها إلى متغيّر. يمكنك تعيين المتغير يدويًا:

    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. في قسم "بيانات الاعتماد"، انقر على + منتج واختَر 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
    

    يتم عرض استجابة "Hello world" من خلال خدمة helloworld التي تم نشرها في المجموعة. ومرَّت المكالمة إلى هذه الخدمة عبر Edge Microgateway أولاً، حيث تم إجراء المصادقة. إذا شاهدت استجابة "Hello world"، يعني ذلك أنّك نجحت في ضبط Edge Microgateway ليعمل كخادم وكيل جانبي في مجموعة خدمة helloworld.

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

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