شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
مقدمه
این مبحث نحوه اجرای Edge Microgateway را در خوشه Kubernetes به عنوان یک پراکسی sidecar توضیح میدهد. شما دو گزینه برای استقرار سایدکار دارید: تزریق دستی و خودکار. این موضوع هر دو گزینه را توضیح می دهد.
برای اطلاعات بیشتر، به معرفی 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 به عنوان یک sidecar proxy به یک سرویس پاد، این دستور را اجرا کنید:
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
- مسیر فایل استقرار سرویسی که pod آن سرویس sidecar همراه را دریافت می کند. به عنوان مثال: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 اجازه می دهد تا به عنوان یک پروکسی sidecar به Kubernetes تزریق شود.
انژکتور سایدکار را نصب کنید
ConfigMap را نصب کنید که تزریق کارگاه جانبی Edge Microgateway را فعال می کند:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
اسکریپت زیر را برای نصب سرویس webhook اجرا کنید. خدمات webhook برای تزریق خودکار سایدکار مورد نیاز است:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certs
بسته CA را به فایل نصب webhook اضافه کنید. سرور api 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
جایی است که سرویسهای سیستم از جمله کنترلر Ingress، پشتیبان HTTP پیشفرض و انژکتور sidecar نصب میشوند: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]:
یک نام محیط برای سازمان خود وارد کنید. به عنوان مثال "تست".
Virtual Host [default]:
Enter را فشار دهید.
Is this Private Cloud ("n","y") [N/y]:
اگر در Public Cloud هستید 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 هستید. برای مشاهده مراحل دقیق به تست پروکسی بروید.
پروکسی را تست کنید
با استقرار sidecar، یک پروکسی API برای سرویس شما به طور خودکار برای شما ایجاد می شود. شما نیازی به ایجاد پروکسی "Edge Microgateway-aware" ندارید.
آدرس IP Ingress را دریافت کنید
با IP خارجی برای ورودی، می توانید از خارج از خوشه با سرویس تماس بگیرید.
آدرس IP خارجی کنترلر Ingress را دریافت کنید:
kubectl get ing -o wide
خروجی نمونه:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1m
مقدار
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:]")
بررسی کنید که متغیر صادر شده است. به عنوان مثال:
echo $GATEWAY_IP
خروجی نمونه:
35.238.249.62
با سرویس تماس بگیرید:
curl $GATEWAY_IP
خروجی:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
در مرحله بعد، با پیکربندی یک محصول API و برنامه توسعه دهنده در Edge، خطای مجوز از دست رفته را برطرف خواهید کرد تا بتوانید یک کلید API معتبر دریافت کنید. هنگامی که کلید را به عنوان مجوز برای تماس API اضافه می کنید، تماس با موفقیت انجام می شود و این خطا را نخواهید دید.
کامپوننت ها را در Apigee Edge ایجاد کنید
بعد، یک محصول API و یک برنامه توسعه دهنده در Apigee Edge ایجاد کنید.
یک محصول API ایجاد کنید
- وارد Apigee Edge شوید.
- انتشار > محصولات API را در منوی ناوبری کناری انتخاب کنید.
- روی + محصول API کلیک کنید. صفحه محصول ظاهر می شود.
صفحه محصول را به صورت زیر پر کنید. برای فیلدهایی که در زیر ذکر نشده اند، می توانید از مقادیر پیش فرض استفاده کنید. تا زمانی که دستور داده نشده است، ذخیره نکنید.
نام hello-world-product
نام نمایشی Edge Micro hello product
محیط زیست test
در بخش Path، روی + Custom Resource کلیک کنید.
مسیر
/
را اضافه کنید.دوباره روی + Custom Resource کلیک کنید و مسیر
/**
را اضافه کنیددر بخش API Proxy، روی + API Proxy کلیک کنید و edgemicro-auth را اضافه کنید.
محصول API را ذخیره کنید.
یک برنامه توسعه دهنده ایجاد کنید
- برنامه ها را در منوی ناوبری کناری انتخاب کنید.
- روی + برنامه کلیک کنید. صفحه Developer App Details ظاهر می شود.
صفحه Developer App را به صورت زیر پر کنید. تا زمانی که دستور داده نشده است، ذخیره نکنید.
نام hello-world-app
نام نمایشی Edge Micro hello app
توسعه دهنده یک توسعه دهنده را از منوی کشویی انتخاب کنید. در قسمت Credentials، روی + Product کلیک کنید و
hello-world-product
که ایجاد کردید انتخاب کنید.روی ذخیره کلیک کنید.
شما به صفحهای برگشتهاید که همه برنامههای برنامهنویس را فهرست میکند.
برنامهای را که ایجاد کردهاید،
hello-world-app
را انتخاب کنید.روی نمایش در کنار کلید مصرف کننده کلیک کنید.
مقدار Consumer Key را کپی کنید. این مقدار کلید API است که از آن برای برقراری تماسهای امن API با سرویس
helloworld
استفاده میکنید.چند دقیقه صبر کنید. چند دقیقه طول می کشد تا تغییراتی که در Apigee Edge ایجاد کرده اید با نمونه Edge Microgateway مستقر در خوشه همگام شود.
با API تماس بگیرید
پس از اینکه تغییرات پیکربندی به داخل میکرو گیت وی کشیده شد، می توانید تست های زیر را انجام دهید.
API را بدون کلید API فراخوانی کنید. مانند تصویر زیر یک پیغام خطا دریافت خواهید کرد:
curl $GATEWAY_IP
خروجی مورد انتظار:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
برای برقراری تماس های موفق API، به کلید API نیاز دارید.
کلید مصرف کننده را از برنامه Developer که ایجاد کرده اید دریافت کنید. این مقدار کلید API است که برای فراخوانی پروکسی آزمایشی نیاز دارید:
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 را با موفقیت پیکربندی کرده اید تا به عنوان یک پروکسی sidecar در غلاف سرویس helloworld عمل کند.
بعدش چی؟
برای اطلاعات در مورد افزودن پلاگین های سفارشی، گسترش مقیاس، ایجاد تغییرات پیکربندی و سایر کارهایی که ممکن است بخواهید انجام دهید، به بخش Tasks مراجعه کنید.