আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
ভূমিকা
এই বিষয়ে Kubernetes ক্লাস্টারে Edge Microgateway কীভাবে স্ট্যান্ডঅ্যালোন পরিষেবা হিসেবে রান করাতে হয় তা ব্যাখ্যা করা হয়েছে।
আরও তথ্যের জন্য, Kubernetes ওভারভিউয়ের সাথে Edge Microgateway ইন্টিগ্রেট করা দেখুন।
শুরু করার আগে
পূর্বশর্ত বিভাগে উল্লেখ করা ধাপগুলি সম্পূর্ণ করুন।
Edge Microgateway কনফিগার করা
নিম্নলিখিত কমান্ড আপনার Apigee সংস্থার জন্য Edge Microgateway কনফিগার করে
এবং প্রক্সি edgemicro-auth ডেপ্লয় করে।
নিম্নলিখিত কমান্ডটি এক্সিকিউট করুন:
edgemicro configure -o [org] -e [env] -u [username]
যেখানে:
org: আপনার Edge সংস্থার নাম (আপনাকে অবশ্যই সংস্থার অ্যাডমিনিস্ট্রেটর হতে হবে)।env: আপনার সংস্থার কোনও এনভায়রনমেন্ট (যেমন, টেস্ট বা প্রোডাকশন)।username: আপনার Apigee অ্যাকাউন্টের সাথে যুক্ত ইমেল আইডি।
উদাহরণ
edgemicro configure -o docs -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 ডেপ্লয় করা
আপনার Kubernetes ক্লাস্টারে Edge Microgateway-কে পরিষেবা হিসেবে ডেপ্লয় করতে, নিম্নলিখিত কমান্ডটি এক্সিকিউট করুন:
kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key -sec=edgemicro-secret -conf=file path of org-env-config.yaml)
কোথায়:
org-edgemicro configureকমান্ডে আপনার উল্লেখ করা Apigee সংস্থা।env-edgemicro configureকমান্ডে আপনার উল্লেখ করা এনভায়রনমেন্ট।edgemicro-key-edgemicro configureকমান্ড থেকে ফিরে আসা কী।edgemicro-secret-edgemicro configureকমান্ড থেকে ফেরত আসা সিক্রেট।file path of org-env-config.yaml-edgemicro configureকমান্ড থেকে Edge Micro কনফিগারেশন ফাইলের পাথ রিটার্ন করা হয়েছে।
যেমন:
kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)
আউটপুটের উদাহরণ:
config/myorg-test-config.yaml) service "edge-microgateway" created deployment "edge-microgateway" created secret "mgwsecret" createdনিচে দেওয়া কোডটি আপনার টার্মিনালে কপি ও পেস্ট করুন।
edge-microgatewayপরিষেবায় এক্সটার্নাল অ্যাক্সেস দেওয়ার জন্য কোডটি Ingress কন্ট্রোলার সেট-আপ করে। আপনার টার্মিনালে কমান্ড পেস্ট করার পরে আপনাকে Enter টিপতে হতে পারে:cat <<EOF | kubectl apply -f - apiVersion: extensions/v1beta1 kind: Ingress metadata: name: edge-microgateway-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - http: paths: - path: / backend: serviceName: edge-microgateway servicePort: 8000 EOFসফল হলে, আপনি এই আউটপুট দেখতে পাবেন:
ingress "edge-microgateway-ingress" createdIngress কন্ট্রোলার এখন
edge-microgatewayপরিষেবায় এক্সটার্নাল অ্যাক্সেস দেওয়ার জন্য কনফিগার করা হয়েছে।
টেস্ট পরিষেবা ডেপ্লয় করা
নিচের ধাপগুলি আপনার ক্লাস্টারে একটি সাধারণ টেস্ট পরিষেবা ডেপ্লয় করে।
ইনগ্রেস কন্ট্রোলার ক্লাস্টারের বাইরে থেকে পরিষেবা কল করার অনুমতি দেয় না।
পরে, আপনি Edge Microgateway কনফিগার করে পরিষেবাটিকে টার্গেট হিসেবে কল করবেন।
Ingress কন্ট্রোলার edge-microgateway পরিষেবায় বাইরের অ্যাক্সেস দেয়।
নমুনা
helloworldপরিষেবা ডেপ্লয় করুন। Ingress এই পরিষেবা সম্পর্কে কিছু জানে না বলে, ক্লাস্টারের বাইরে থেকে এই পরিষেবা কল করা যাবে না।kubectl apply -f samples/helloworld/helloworld-service.yaml
আউটপুটের উদাহরণ:
service "helloworld" created deployment "helloworld" createdডিপ্লয়মেন্ট সফল হয়েছে কিনা তা যাচাই করুন। মনে রাখবেন,
helloworldপরিষেবার কোনও এক্সটার্নাল IP নেই। নিম্নলিখিত ধাপে, আপনি Edge Microgateway কনফিগার করে পরিষেবার ইন্টার্নাল IP অ্যাক্সেস করবেন।kubectl get services -n default
আউটপুটের উদাহরণ:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE edge-microgateway NodePort 10.35.247.222 <none> 8000:32000/TCP 12m helloworld NodePort 10.35.245.103 <none> 8081:30294/TCP 47s kubernetes ClusterIP 10.35.240.1 <none> 443/TCP 47m
পরিষেবার জন্য প্রক্সি হিসেবে Edge Microgateway কনফিগার করা
helloworld পরিষেবার জন্য ইন্টার্নাল IP পান এবং "মাইক্রোগেটওয়ে-অ্যাওয়ার" প্রক্সির টার্গেট হিসেবে এটি যোগ করুন।
"মাইক্রোগেটওয়ে-অ্যাওয়ার" প্রক্সি তৈরি করা হল
Edge মাইক্রোগেটওয়ের একটি সাধারণ প্রয়োজনীয়তা।
এছাড়াও, মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি সম্পর্কে আপনার যা জানা প্রয়োজন দেখুন।
টেস্ট পরিষেবার জন্য ইন্টার্নাল IP পান
helloworldপরিষেবার জন্য ইন্টার্নাল ক্লাস্টার IP ও পোর্ট পান:kubectl get services helloworld
আউটপুটের উদাহরণ:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.55.254.255 <none> 8081:30329/TCP 3mCLUSTER-IPওPORT-এর ভ্যালু কপি করুন। যেমন, উপরের উদাহরণে, এই ভ্যালুগুলি হল:10.55.254.255এবং8081. আপনার সিস্টেমের ভ্যালু আলাদা হবে।
Edge-এ মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি তৈরি করা
- Edge UI-তে লগ-ইন করুন।
- আপনি Edge Microgateway কনফিগার করার সময় যে সংস্থা উল্লেখ করেছিলেন, সেটিই বেছে নিন।
- সাইড নেভিগেশন মেনু থেকে ডেভেলপ করুন > API প্রক্সি বিকল্প বেছে নিন।
- + প্রক্সি বিকল্পে ক্লিক করুন। 'প্রক্সি তৈরি করুন' উইজার্ড খুলে যায়।
- প্রথম উইজার্ড পৃষ্ঠায়, রিভার্স প্রক্সি (সবচেয়ে সাধারণ) বিকল্প বেছে নিন।
- পরবর্তী বিকল্পে ক্লিক করুন।
উইজার্ডের 'বিবরণ' পৃষ্ঠায়, নিম্নলিখিতভাবে কনফিগার করুন। নিশ্চিত করুন যে উইজার্ডে যেমন দেখানো হয়েছে ঠিক তেমনভাবেই পূরণ করেছেন। প্রক্সি নামের আগে
edgemicro_আছে কিনা দেখুন।- প্রক্সির নাম: edgemicro_hello
প্রক্সি বেস পাথ: /hello
আগে থেকে থাকা API:
http://<cluster_ip>:<port>যেমন: http://10.55.254.255:8081
পরবর্তী বিকল্পে ক্লিক করুন।
উইজার্ডের 'নিরাপত্তা' পৃষ্ঠায়, পাস থ্রু (কোনওটি নয়) বিকল্প বেছে নিন।
পরবর্তী বিকল্পে ক্লিক করুন।
উইজার্ডের ভার্চুয়াল হোস্ট পৃষ্ঠায়, ডিফল্ট মান গ্রহণ করুন।
পরবর্তী বিকল্পে ক্লিক করুন।
উইজার্ডের 'বিল্ড' পৃষ্ঠায়, আপনার প্রক্সি সেটিংস পর্যালোচনা করুন। টেস্ট এনভায়রনমেন্ট বেছে নেওয়া হয়েছে কিনা তা দেখে নিন।
বিল্ড ও ডেপ্লয় করুন বিকল্পে ক্লিক করুন।
ডেভেলপার তৈরি করা
আপনি পরীক্ষার জন্য আগে থেকে থাকা কোনও ডেভেলপার ব্যবহার করতে পারেন অথবা নিচে উল্লেখ করা ধাপগুলি অনুসরণ করে নতুন ডেভেলপার তৈরি করতে পারেন:
- সাইড নেভিগেশন মেনু থেকে প্রকাশ করুন > ডেভেলপার বিকল্প বেছে নিন।
- + ডেভেলপার বিকল্পে ক্লিক করুন।
- নতুন ডেভেলপার তৈরি করতে ডায়ালগ পূরণ করুন। আপনি নিজের ইচ্ছামতো যেকোনও ডেভেলপার নাম/ইমেল ব্যবহার করতে পারেন।
API প্রোডাক্ট তৈরি করা
নিচে যেভাবে বর্ণনা করা হয়েছে সেইভাবে API প্রোডাক্ট তৈরি করুন। আপনি প্রোডাক্টে দুটি প্রক্সি যোগ করবেন: edgemicro-auth এবং edgemicro_hello.
আপনি API প্রোডাক্ট কনফিগারেশন সম্পর্কে যা যা জানা প্রয়োজন কনফিগারেশন থেকে প্রোডাক্ট কনফিগারেশন বিকল্প সম্পর্কে আরও জানতে পারবেন।
- সাইড নেভিগেশন মেনুতে প্রকাশ করুন > API প্রোডাক্ট বিকল্প বেছে নিন।
- + API প্রোডাক্ট বিকল্পে ক্লিক করুন। প্রোডাক্টের বিবরণ পৃষ্ঠা দেখা যাবে।
নিচে উল্লেখ করা পদ্ধতি অনুযায়ী প্রোডাক্টের বিবরণের পৃষ্ঠা পূরণ করুন। নির্দেশ না দেওয়া পর্যন্ত সেভ করবেন না।
নাম hello-world-productযে নাম দেখানো হবে Edge Micro hello productপরিবেশ testঅ্যাক্সেস Publicচাবি অনুমোদনের ধরন Automaticপৃষ্ঠার নিচের দিকে, + কাস্টম রিসোর্স বিকল্পে ক্লিক করুন।
/(একটি স্ল্যাশ) হিসেবে রিসোর্স সেট করুন।আবার + কাস্টম রিসোর্স বেছে নিন এবং পাথ
/**যোগ করুন।পৃষ্ঠার নিচের দিকে, + API প্রক্সি বিকল্পে ক্লিক করুন।
edgemicro-auth নামের প্রক্সি বেছে নিন।
আবার + API Proxy বিকল্পে ক্লিক করুন।
edgemicro_hello নামের মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি বেছে নিন।
সেভ করুন বিকল্পে ক্লিক করুন।
Developer অ্যাপ তৈরি করা
- সাইড নেভিগেশন মেনু থেকে প্রকাশ করুন > অ্যাপ বিকল্প বেছে নিন।
- + অ্যাপ বিকল্পে ক্লিক করুন। ডেভেলপার অ্যাপের বিবরণ পৃষ্ঠা দেখা যাবে।
নিম্নলিখিত তথ্য দিয়ে ডেভেলপার অ্যাপ পৃষ্ঠা পূরণ করুন। নির্দেশ না পাওয়া পর্যন্ত সেভ করবেন না ।
নাম hello-world-appযে নাম দেখানো হবে Edge Micro hello appডেভেলপার আপনার তৈরি করা টেস্ট ডেভেলপার বেছে নিন অথবা যেকোনও ডেভেলপার বেছে নিলেই চলবে। 'ক্রেডেনশিয়াল' বিভাগে, + প্রোডাক্ট বিকল্পে ক্লিক করুন এবং আপনার তৈরি করা প্রোডাক্ট বেছে নিন:
hello-world-product.সেভ করুন বিকল্পে ক্লিক করুন।
আপনি এখন সেই পৃষ্ঠায় আছেন যেখানে সব ডেভেলপার অ্যাপের তালিকা দেখানো হয়।
আপনি যে অ্যাপটি তৈরি করেছেন,
hello-world-appসেটি বেছে নিন।কনজিউমার কী-এর পাশে দেখুন বিকল্পে ক্লিক করুন।
কনজিউমার কী-এর ভ্যালু কপি করুন। এই ভ্যালু হল API কী যা আপনি
/hello-এ সুরক্ষিত API কল করার জন্য ব্যবহার করবেন।কয়েক মিনিট অপেক্ষা করুন। Apigee Edge-এ আপনার করা পরিবর্তনগুলি ক্লাস্টারে ডেপ্লয় করা Edge Microgateway-এর ইনস্ট্যান্সের সাথে সিঙ্ক হতে কয়েক মিনিট সময় লাগে।
প্রক্সি পরীক্ষা করুন
Ingress IP অ্যাড্রেস পাওয়া
ইনগ্রেসের এক্সটার্নাল IP-এর সাহায্যে, আপনি ক্লাস্টারের বাইরে থেকে Edge Microgateway পরিষেবা কল করতে পারবেন।
Ingress কন্ট্রোলারের এক্সটার্নাল IP অ্যাড্রেস পান:
kubectl get ing -o wide
আউটপুটের উদাহরণ:
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37mIngress-এর জন্য
ADDRESSভ্যালু কপি করে একটি ভেরিয়েবলে এক্সপোর্ট করুন। আপনি ম্যানুয়ালি ভেরিয়েবল সেট করতে পারবেন:export GATEWAY_IP=external_ip
যেমন:
export GATEWAY_IP=35.238.249.62
অথবা, আপনার জন্য এটি সেট করতে এই কমান্ড ব্যবহার করুন:
export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
ভেরিয়েবল এক্সপোর্ট করা হয়েছে কিনা তা যাচাই করুন। যেমন:
echo $GATEWAY_IP
আউটপুটের উদাহরণ:
35.238.249.62
API কল করা
কনফিগারেশন সংক্রান্ত পরিবর্তনগুলি মাইক্রোগেটওয়েতে পুল করা হয়ে গেলে, আপনি
API কল করার চেষ্টা করতে পারবেন। আপনি API কল করার জন্য Ingress কন্ট্রোলার IP (যা আপনি GATEWAY_IP
ভেরিয়েবলে সেভ করেছেন) ব্যবহার করেন কারণ এই IP আপনাকে Kubernetes ক্লাস্টারের বাইরে থেকে প্রক্সি কল করতে দেয়। আপনি ক্লাস্টারে Edge Microgateway ডেপ্লয় করার
সময়, Ingress থেকে Edge Microgateway-তে
ম্যাপিং তৈরি করা হয়েছিল।
API key ছাড়াই API কল করুন। আপনি একটি সমস্যার মেসেজ পাবেন, যেমনটি নিচে দেখানো হয়েছে:
curl $GATEWAY_IP:80/hello/
প্রত্যাশিত আউটপুট:
{"error":"missing_authorization","error_description":"Missing Authorization header"}আপনি এই মেসেজটি দেখতে পেলে, সিঙ্ক সম্পূর্ণ না হওয়া পর্যন্ত আপনাকে আরও কিছুক্ষণ অপেক্ষা করতে হতে পারে:
{"message":"no match found for /hello/","status":404}সফলভাবে API কল করতে, আপনার API কী প্রয়োজন।
আপনার তৈরি করা ডেভেলপার অ্যাপ থেকে কনজিউমার কী পান। এই ভ্যালু হল API কী যা আপনাকে টেস্ট প্রক্সি কল করার জন্য প্রয়োজন:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP:80/hello/
যেমন:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/
আউটপুট:
Hello worldআপনি যদি "Hello world" উত্তরটি দেখতে পান, তাহলে আপনি Kubernetes ক্লাস্টারের মধ্যে helloworld পরিষেবা কল করার জন্য Edge Microgateway সফলভাবে কনফিগার করেছেন।
এরপরে কী?
কাস্টম প্লাগ-ইন যোগ করা, ডিপ্লয়মেন্ট স্কেল করা, কনফিগারেশনে পরিবর্তন করা এবং আপনি করতে চান এমন অন্যান্য টাস্ক সম্পর্কে তথ্য পেতে টাস্ক বিভাগটি দেখুন।