يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. معلومات
المقدّمة
يشرح هذا الموضوع كيفية تشغيل Edge Microgateway في مجموعة Kubenetes كخادم وكيل للسيارة الجانبية. لديك خياران لنشر السيارة الجانبية: الحقن اليدوي والتلقائي. يصف هذا الموضوع كلا الخيارين.
لمزيد من المعلومات، اطّلِع على مقالة مقدمة عن Edge Microgateway على Kubernetes.
قبل البدء
أكمِل الخطوات الموضّحة في قسم المتطلّبات الأساسية.
نشر خدمة اختبار
انشر خدمة "مرحبًا" البسيطة وتحقَّق من عملية النشر:
نشر العيّنة:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
تأكَّد من أنّ الخدمة قيد التشغيل. قد تحتاج إلى الانتظار بضع لحظات حتى تدور اللوحة إلى حالة التشغيل:
kubectl get pods --namespace=default
مثال على الإخراج:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17m
حذف نشر خدمة الاختبار بعد تمكين ميزة "إدخال السيارة"، عليك إعادة تثبيتها:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
استخدام الحقن الجانبي اليدوي
ومن بين خيارَي الحقن الجانبي، يعتبر الحقن الجانبي اليدوي هو النهج الأبسط والأكثر سهولة، ويمكن تنفيذه باستخدام أمر kubectl
واحد.
إعداد Edge Microgateway
يعمل الأمر التالي على ضبط Edge Microgateway لمؤسستك Apigee ونشر الخادم الوكيل edgemicro-auth
.
نفِّذ الأمر التالي:
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)
اختبار الإعدادات
التحقّق من عمليات نشر الخدمة:
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
الآن، أصبحت جاهزًا لاختبار نشر الجهاز الجانبي لـ Edge Microgateway. يمكنك الانتقال إلى اختبار الخادم الوكيل للاطّلاع على الخطوات التفصيلية.
استخدام الحقن الجانبي التلقائي
في الخطوات التالية، عليك ضبط ميزة الحقن الجانبي التلقائي لمجموعة Kubernetes. يسمح هذا الإعداد بإدخال Edge Microgateway كخادم وكيل جانبي في Kubernetes.
تركيب أداة الحقن الجانبي
ثبّت ConfigMap التي تمكّن الجانبي من مسار Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
نفِّذ النص البرمجي التالي لتثبيت خدمة الردّ التلقائي على الويب. تكون خدمة الرد التلقائي على الويب مطلوبة لحقن الجهاز الجانبي التلقائي:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certs
أضِف حزمة CA إلى ملف تثبيت الرد التلقائي على الويب. يستخدم خادم واجهة برمجة تطبيقات Kubernetes هذا الملف لاستدعاء الرد التلقائي على الويب:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
تثبيت الرد التلقائي على الويب الذي يخصّ الحقن الجانبي في 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
تحقَّق من تشغيل الرد التلقائي على الويب الذي يخصّ الحقن الجانبي في 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
تحقق من أن كبسولة الحقن الجانبية تعمل في مجموعتك. مساحة الاسم
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.
شغِّل النص البرمجي التفاعلي التالي وأدخِل المعلمات المطلوبة. ينشئ الأمر ملفًا شخصيًا للتهيئة ستستخدمه في الخطوة التالية.
./install/kubernetes/webhook-edgemicro-patch.sh
للحصول على معلومات عن مَعلمات الإدخال، اطّلِع على المرجع.
أمثلة على الإدخالات:
Namespace to deploy application [default]:
اضغط على Enter.
Authenticate with OAuth Token ("n","Y") [N/y]
أدخِل n.
Apigee username [required]:
أدخِل اسم مستخدم Apigee (عنوان البريد الإلكتروني). مثلاً:
jdoe@google.com
Apigee password [required]:
أدخِل كلمة مرور Apigee.
Apigee organization [required]:
أدخِل اسم مؤسسة Apigee.
Apigee environment [required]:
أدخِل اسم بيئة لمؤسستك. على سبيل المثال، "test".
Virtual Host [default]:
اضغط على Enter.
Is this Private Cloud ("n","y") [N/y]:
أدخِل n إذا كنت مشتركًا في السحابة الإلكترونية العامة.
Edgemicro Key. Press Enter to generate:
اضغط على Enter.
Edgemicro Secret. Press Enter to generate:
اضغط على Enter.
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. *****************************************************************************************
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 ********************************************************************************************************
نفِّذ الأمر الوارد في السطر الأخير من الإخراج. يُدخل الأمر
kubectl
هذا الملف الشخصي لإعدادات Edge Microgateway الذي تم إنشاؤه في Kubernetes:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
عرض حالة حقن الرد التلقائي على الويب. يُرجى ملاحظة أنّه غير مفعَّل حاليًا:
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
شغِّل هذا الأمر لتفعيل حقن الردّ التلقائي على الويب في الرد التلقائي على الويب:
kubectl label namespace default edgemicro-injection=enabled
عرض حالة حقن الرد التلقائي على الويب مرة أخرى. تجدر الإشارة إلى أنّه قد تم تفعيلها الآن:
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 الخارجي للإدخال، يمكنك طلب الخدمة من خارج المجموعة.
احصل على عنوان IP الخارجي لوحدة تحكُّم الدخول:
kubectl get ing -o wide
مثال على الإخراج:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1m
انسخ قيمة
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:]")
تحقَّق من تصدير المتغيّر. مثلاً:
echo $GATEWAY_IP
مثال على الإخراج:
35.238.249.62
اتصل بالخدمة:
curl $GATEWAY_IP
إخراج:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
بعد ذلك، يمكنك معالجة خطأ التفويض غير المتوفّر من خلال إعداد منتج لواجهة برمجة التطبيقات وتطبيق مطوّر على Edge بحيث يمكنك الحصول على مفتاح واجهة برمجة تطبيقات صالح. وعندما تضيف المفتاح إلى عنوان التفويض لاستدعاء واجهة برمجة التطبيقات، سينجح الطلب، ولن يظهر لك هذا الخطأ.
إنشاء مكوّنات في Apigee Edge
بعد ذلك، عليك إنشاء منتج لواجهة برمجة التطبيقات وتطبيق مطوّر على Apigee Edge.
إنشاء منتج واجهة برمجة التطبيقات
- سجِّل الدخول إلى Apigee Edge.
- اختر نشر > منتجات واجهة برمجة التطبيقات في قائمة التنقّل الجانبية.
- انقر على + منتج واجهة برمجة التطبيقات. ستظهر صفحة المنتج.
املأ صفحة المنتج على النحو التالي. بالنسبة إلى الحقول غير المذكورة أدناه، يمكنك استخدام القيم الافتراضية. يُرجى عدم الحفظ إلا بعد أن يُطلب منك ذلك.
الاسم hello-world-product
الاسم المعروض Edge Micro hello product
البيئة test
في قسم "المسار"، انقر على + مورد مخصّص.
أضِف المسار
/
.انقر على + مورد مخصّص مرة أخرى وأضِف المسار
/**
في قسم "الخوادم الوكيلة لواجهة برمجة التطبيقات"، انقر على + الخادم الوكيل لواجهة برمجة التطبيقات وأضِف edgemicro-auth.
احفظ منتج واجهة برمجة التطبيقات.
إنشاء تطبيق مطوِّر
- اختَر التطبيقات في قائمة التنقّل الجانبية.
- انقر على + تطبيق، وستظهر صفحة تفاصيل تطبيق المطوِّر.
املأ صفحة تطبيق المطوِّر على النحو التالي. لا تقم بالحفظ حتى يُطلب منك القيام بذلك.
الاسم hello-world-app
الاسم المعروض Edge Micro hello app
المطوّر اختَر مطوّر برامج من القائمة المنسدلة. في قسم "بيانات الاعتماد"، انقر على + منتج واختَر
hello-world-product
الذي أنشأته للتو.انقر على حفظ.
لقد عدت إلى الصفحة التي تسرد جميع تطبيقات المطوّرين.
اختَر التطبيق الذي أنشأته للتو،
hello-world-app
.انقر على عرض بجانب مفتاح المستهلك.
انسخ قيمة مفتاح العميل. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي ستستخدمه لإجراء طلبات بيانات آمنة من واجهة برمجة التطبيقات إلى خدمة
helloworld
.يُرجى الانتظار بضع دقائق. تستغرق التغييرات التي أجريتها على Apigee Edge بضع دقائق لمزامنتها مع مثيل Edge Microgateway الذي تم نشره في المجموعة.
استدعاء واجهة برمجة التطبيقات
بعد سحب تغييرات التكوين إلى البوابة المصغَّرة، يمكنك إجراء الاختبارات التالية.
يمكنك استدعاء واجهة برمجة التطبيقات بدون مفتاح واجهة برمجة التطبيقات. ستظهر لك رسالة خطأ كما هو موضّح أدناه:
curl $GATEWAY_IP
الناتج المتوقع:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
لإجراء طلبات بيانات من واجهة برمجة التطبيقات بنجاح، يجب أن يتوفّر لديك مفتاح واجهة برمجة التطبيقات.
احصل على مفتاح المستهلك من تطبيق "المطوّر" الذي أنشأته. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي تحتاجه لاستدعاء الخادم الوكيل للاختبار:
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.
ما هي الخطوات التالية؟
راجع قسم المهام للحصول على معلومات حول إضافة مكونات إضافية مخصصة وتوسيع نطاق النشر وإجراء تغييرات على التهيئة والمهام الأخرى التي قد ترغب في تنفيذها.