আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
কাস্টম প্লাগ-ইন যোগ করা
কাস্টম প্লাগ-ইন লিখে আপনি মাইক্রোগেটওয়েতে নতুন ফিচার ও কেপেবিলিটি যোগ করতে পারবেন। কাস্টম প্লাগ-ইন আপনাকে মাইক্রোগেটওয়ের মাধ্যমে প্রবাহিত হওয়া অনুরোধ ও উত্তরের সাথে প্রোগ্রাম্যাটিকভাবে ইন্টার্যাক্ট করতে দেয়।
এই বিভাগে আপনার Kubernetes ক্লাস্টারে রান করা Edge Microgateway ইনস্ট্যান্সে কীভাবে প্লাগ-ইন প্যাকেজ ও ডিপ্লয় করতে হয় তা ব্যাখ্যা করা হয়েছে।
এই বিভাগের বাকি অংশ ধরে নেয় যে আপনি স্ট্যান্ডার্ড Edge Microgateway সেট-আপের জন্য প্লাগ-ইন লেখা ও কনফিগার করার ব্যাপারে পরিচিত। তা না হলে, কাস্টম প্লাগ-ইন ডেভেলপ করুন দেখুন।
আপনার প্লাগ-ইন প্যাকেজ করা
কাস্টম প্লাগ-ইন প্যাকেজ করতে, এইসব ধাপ অনুসরণ করুন:
একটি সাধারণ প্লাগ-ইন লেখা নিবন্ধে দেওয়া নির্দেশাবলী অনুযায়ী আপনার প্লাগ-ইন লিখুন ও পরীক্ষা করুন।
সঠিক ডিরেক্টরি স্ট্রাকচারে আপনার প্লাগ-ইন কোড রাখুন। প্লাগ-ইন ডিরেক্টরিকে একটি নির্দিষ্ট স্ট্রাকচার মেনে চলতে হবে। নিচের উদাহরণে সেই স্ট্রাকচার দেখানো হয়েছে যা আপনাকে অনুসরণ করতে হবে, যেখানে
response-uppercaseওrequest-headersহল কাস্টম প্লাগ-ইন কোড থাকা ফোল্ডারের নাম (এই নামগুলি শুধুমাত্র উদাহরণ, আপনার ফোল্ডারের নাম আলাদা হতে পারে):plugin | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.jsoncdথেকেpluginফোল্ডারে।pluginফোল্ডারে, সম্পূর্ণpluginsফোল্ডার জিপ করুন:zip -r plugins.zip plugins/
Docker ইমেজ তৈরি করা
- জিপ ফাইলটি যেখানে আছে সেই একই ডিরেক্টরিতে,
Dockerfileনামে একটি নতুন ফাইল তৈরি করুন। Dockerfile-এ নিম্নলিখিত কোড যোগ করুন এবং ফাইলটি সেভ করুন:FROM gcr.io/apigee-microgateway/edgemicro:latest RUN apt-get install unzip COPY plugins.zip /opt/apigee/ RUN chown apigee:apigee /opt/apigee/plugins.zip RUN su - apigee -c "unzip /opt/apigee/plugins.zip -d /opt/apigee" EXPOSE 8000 EXPOSE 8443 ENTRYPOINT ["entrypoint"]আপনার প্লাগ-ইন সহ একটি নতুন Edge Microgateway Docker ছবি তৈরি করুন এবং আপনার Docker রেজিস্ট্রিতে ছবিটি পুশ করুন। আপনি যেকোনও রেজিস্ট্রি ব্যবহার করতে পারেন, যেমন
docker.ioবাgcr.io:docker build -t edgemicroplugins .docker tag edgemicroplugins container-registry/your-project/edgemicropluginsdocker push container-registry/your-project/edgemicropluginsযেমন:
docker build -t edgemicroplugins .docker tag edgemicroplugins gcr.io/my-project/edgemicropluginsdocker push gcr.io/my-project/edgemicroplugins
Edge Microgateway কনফিগারেশন আপডেট করা
আপনার Edge Microgateway কনফিগারেশন ফাইলে প্লাগ-ইন যোগ করুন। আপনি এখানে কনফিগারেশন ফাইল খুঁজে পাবেন:
$HOME/.edgemicro/org-env-config.yaml
যেমন:
$HOME/.edgemicro/myorg-test-config.yaml
নিচে দেওয়া নমুনা কনফিগারেশনে, কাস্টম প্লাগ-ইন response-uppercase যোগ করা হয়েছে।
ডিফল্ট হিসেবে oauth প্লাগ-ইন আগে থেকেই ছিল।
edgemicro:
...
plugins:
sequence:
- oauth
- response-uppercase
আপনার Kubernetes ক্লাস্টার আপডেট করা
শেষ ধাপ হল আপনার Kubernetes ক্লাস্টারে কনফিগারেশন পরিবর্তন প্রয়োগ করা। আপনি কন্টেনার রেজিস্ট্রি থেকে যে প্লাগ-ইন কোড পুশ করেছেন, Kubernetes সেটি সহ নতুন ইমেজ পুল করবে এবং নতুন তৈরি করা পডের জন্য ব্যবহার করবে।
আপনি যদি পরিষেবা হিসেবে Edge Microgateway ডেপ্লয় করে থাকেন
আপডেট করা Edge Microgateway কনফিগারেশন ইনজেক্ট করতে edgemicroctl কমান্ড ব্যবহার করুন:
নতুন ছবি দিয়ে Edge Microgateway ডেপ্লয়মেন্ট আপডেট করুন। যেমন:
kubectl apply -f <(edgemicroctl -org=your_organization -env=your_environment -key=configuration_key -sec=configuration_secret -conf=config_file_path -img=container-registry/your_project_name/image_name:latest)
কোথায়:
your_organization-edgemicro configureকমান্ডে আপনার উল্লেখ করা Apigee সংস্থা।your_environment-edgemicro configureকমান্ডে আপনার উল্লেখ করা এনভায়রনমেন্ট।configuration_key-edgemicro configureকমান্ড থেকে ফিরে আসা কী।configuration_secret-edgemicro configureকমান্ড থেকে ফেরত আসা সিক্রেট।config_file_path-edgemicro configureকমান্ড থেকে Edge Micro কনফিগারেশন ফাইলের পাথ রিটার্ন করা হয়েছে।container-registry- আপনি যে Docker রেজিস্ট্রি থেকে ছবিটি পুশ করেছেন। যেমন,gcr.ioবাdocker.io.your_project_name- Docker ইমেজ পুশ করা Docker রিপোজিটরির প্রোজেক্টের নাম।image_name- আপনার পুশ করা Docker ইমেজের নাম।
উদাহরণ:
kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=f2d2eaa52b758493d00cec656e574ac947bee1d701c5c5f3295e5eaa39a3b -sec=0c38cda3fac6c59152f15657052ba1728f8003c1a763cf08da2a -conf=/Users/jdoe/.edgemicro/apigeesearch-test-config.yaml -img=gcr.io/jdoe-project/edgemicroplugins:latest)
প্লাগ-ইন পরীক্ষা করুন। আপনি প্রত্যাশিত আচরণ পাচ্ছেন কিনা তা দেখতে API কল করুন। যেমন, "response uppercase" প্লাগ-ইনের ক্ষেত্রে, উত্তরের টেক্সটটি সম্পূর্ণ বড় হাতের অক্ষরে রূপান্তরিত হয়, যেমনটি নিচে দেখানো হয়েছে:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
আউটপুট:
HELLO WORLD
নতুন কনফিগারেশন ম্যানুয়ালি ইনজেক্ট করা
ম্যানুয়াল ইনজেকশন হল একটি সহজ পদ্ধতি, যেখানে আপনি কমান্ড লাইন থেকে নতুন কনফিগারেশন ইনজেক্ট করেন।
নিম্নলিখিত কমান্ডটি এক্সিকিউট করুন:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -img=container-registry/your_project_name/image_name:latest -svc=service_deployment_file)
কোথায়:
your_org-edgemicro configureকমান্ডে আপনার উল্লেখ করা Apigee সংস্থা।your_env-edgemicro configureকমান্ডে আপনার উল্লেখ করা এনভায়রনমেন্ট।your_key-edgemicro configureকমান্ড থেকে ফিরে আসা কী।your_secret-edgemicro configureকমান্ড থেকে ফেরত আসা সিক্রেট।config_file_path-edgemicro configureকমান্ড থেকে Edge Micro কনফিগারেশন ফাইলের পাথ রিটার্ন করা হয়েছে।container-registry- আপনি যে Docker রেজিস্ট্রি থেকে ছবিটি পুশ করেছেন। যেমন,gcr.ioবাdocker.io.your_project_name- Docker ইমেজ পুশ করা Docker রিপোজিটরির প্রোজেক্টের নাম।image_name- আপনার পুশ করা Docker ইমেজের নাম।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 -img=gcr.io/myproject/edgemicroplugins:latest -svc=samples/helloworld/helloworld.yaml)
প্লাগ-ইন পরীক্ষা করুন। আপনি প্রত্যাশিত আচরণ পাচ্ছেন কিনা তা দেখতে পরিষেবা API-তে কল করুন। যেমন, "response uppercase" প্লাগ-ইনের জন্য, উত্তর টেক্সটকে সম্পূর্ণ বড় হাতের অক্ষরে পরিবর্তন করা হয়, যেমন নিচে দেখানো হয়েছে:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
আউটপুট:
HELLO WORLD
Edge Microgateway কনফিগারেশনে পরিবর্তন করা
কিছু ক্ষেত্রে, আপনাকে Edge Microgateway কনফিগারেশন পরিবর্তন করতে হতে পারে। যেমন, আপনি Edge Microgateway-তে নতুন প্লাগ-ইন যোগ করতে বা কনফিগারেশন প্যারামিটার পরিবর্তন করতে চাইতে পারেন। এই বিভাগে Kubernetes-এ রান করা Edge Microgateway-তে কীভাবে কনফিগারেশন পরিবর্তন করতে ও প্রয়োগ করতে হয় তা ব্যাখ্যা করা হয়েছে।
নিচে দেখানো
secret.yaml-এর মতো একটি কনফিগারেশন ফাইল তৈরি করুন:apiVersion: v1 kind: Secret metadata: name: mgwsecret type: Opaque data: mgorg: EDGEMICRO_ORG mgenv: EDGEMICRO_ENV mgkey: EDGEMICRO_KEY mgsecret: EDGEMICRO_SECRET mgconfig: EDGEMICRO_CONFIGEDGEMICRO_ORG,EDGEMICRO_ENV,EDGEMICRO_KEY,EDGEMICRO_SECRET-এর base64 এনকোড করা ভ্যালু উল্লেখ করুন:echo -n "your-org" | base64 | tr -d '\n'echo -n "your-org-env" | base64 | tr -d '\n'echo -n "your-mg-key" | base64 | tr -d '\n'echo -n "your-mg-secret" | base64 | tr -d '\n'আপনার সংস্থা ও পরিবেশের জন্য Edge Microgateway কনফিগারেশন ফাইলে পরিবর্তন করুন:
$HOME/.edgemicro/your_org-your_env-config.yaml
কনফিগারেশন ফাইলের কন্টেন্ট দুবার Base64 এনকোড করুন:
cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64 | tr -d '\n'
আপনার পরিষেবা যে নেমস্পেসে চলছে সেখানে Kubernetes-এ পরিবর্তন প্রয়োগ করুন।
kubectl apply -f secret.yaml -n
আগে থেকে থাকা মাইক্রোগেটওয়ে পড এইসব নতুন পরিবর্তন অটোমেটিক গ্রহণ করে না; তবে, নতুন পড পরিবর্তনগুলি পাবে। আপনি আগে থেকে থাকা পড মুছে দিতে পারেন যাতে ডেপ্লয়মেন্ট একটি নতুন পড তৈরি করে যা পরিবর্তনটি গ্রহণ করে।
পরিষেবার উদাহরণ
নিম্নলিখিত উদাহরণ থেকে কীভাবে নতুন
পড পান।
kubectl get pods
আউটপুটের উদাহরণ:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-g7nrg 1/1 Running 0 19h helloworld-6987878fc4-cltc2 1/1 Running 0 1dedge-microgatewayপড মুছে দিন।kubectl delete pod edge-microgateway-57ccc7776b-g7nrg
আউটপুটের উদাহরণ:
pod "edge-microgateway-57ccc7776b-g7nrg" deletedআবার পড পান। একটি নতুন পড স্পিন-আপ হয় এবং আপনার কনফিগারেশন সংক্রান্ত পরিবর্তন পায়।
kubectl get pods
আউটপুটের উদাহরণ:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-7f6tc 1/1 Running 0 5s helloworld-6987878fc4-cltc2 1/1 Running 0 1d
আপনার ডিপ্লয়মেন্ট স্কেল করা
এই বিভাগে ব্যাখ্যা করা হয়েছে যে কীভাবে আপনি Kubernetes স্কেলিং সংক্রান্ত নীতি ব্যবহার করে আপনার ডিপ্লয়মেন্ট স্কেল করতে পারবেন।
পরিষেবা ডিপ্লয়মেন্ট স্কেল করা
ডেপ্লয়মেন্ট চেক করুন:
kubectl get deployments
আউটপুটের উদাহরণ:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edge-microgateway 1 1 1 1 18h helloworld 1 1 1 1 1dআউটপুট থেকে বোঝা যাচ্ছে যে একটি রেপ্লিকা ডেপ্লয় করা হয়েছে।
১ থেকে শুরু করে যতগুলি রেপ্লিকা চান ততগুলি পর্যন্ত ডেপ্লয়মেন্ট স্কেল করুন। এই উদাহরণে,
edge-microgatewayপরিষেবা স্কেল করা হয়েছে।kubectl scale deployment edge-microgateway --replicas=2
(ঐচ্ছিক) আপনি অটোস্কেলিং ব্যবহার করতে চাইলে, এই কমান্ডটি ব্যবহার করুন:
kubectl autoscale deployment edge-microgateway --cpu-percent=50 --min=1 --max=10
স্কেলিং চালু আছে কিনা তা যাচাই করতে ডিপ্লয়মেন্ট চেক করুন:
kubectl get deployments
আউটপুটের উদাহরণ:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edge-microgateway 2 2 2 2 18h helloworld 1 1 1 1 1dদুটি রেপ্লিকা যোগ করার জন্য স্টেট পরিবর্তন করা হয়েছে।
পড চেক করুন:
kubectl get pods
আউটপুটের উদাহরণ:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-g7nrg 1/1 Running 0 18h edge-microgateway-57ccc7776b-rvfz4 1/1 Running 0 41s helloworld-6987878fc4-cltc2 1/1 Running 0 1dআউটপুটে দেখা যাচ্ছে যে দুটি রেপ্লিকাই রানিং স্টেটে আছে।
একাধিক Edge Microgateway কনফিগারেশনের জন্য নেমস্পেস ব্যবহার করা
আপনার Kubernetes ক্লাস্টারে Edge Microgateway পরিষেবার একাধিক ইনস্ট্যান্স ডেপ্লয় ও কনফিগার করতে পারবেন। এই ব্যবহারের ক্ষেত্রে, আপনি প্রতিটি মাইক্রোগেটওয়ে ইনস্ট্যান্সকে তার নিজস্ব প্লাগ-ইন ও প্যারামিটার সেট দিয়ে কনফিগার করতে পারবেন। যেমন:
- Edge Microgateway Service A-এর জন্য শুধুমাত্র স্পাইক অ্যারেস্ট প্লাগ-ইন প্রয়োজন।
- Edge Microgateway Service B-এর কোটা ও OAuth প্লাগ-ইন প্রয়োজন, তবে স্পাইক অ্যারেস্ট প্রয়োজন নেই।
এই ব্যবহারিক ক্ষেত্রটি সমাধান করতে, Kubernetes নেমস্পেস ব্যবহার করুন। যেমন, আপনি
নেমস্পেস foo-এ Edge Microgateway পরিষেবা A এবং
নেমস্পেস bar-এ Edge Microgateway পরিষেবা B ডেপ্লয় করতে পারেন।
নিচের উদাহরণে, OrgA সংস্থার মধ্যে কনফিগার করা Edge Microgateway, -n বিকল্প ব্যবহার করে
foo নেমস্পেসে পরিষেবা হিসেবে ডেপ্লয় করা হয়েছে:
kubectl apply -f <(edgemicroctl -org=myorgA -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/joed/.edgemicro/orgA-test-config.yaml -svc=samples/helloworld/helloworld.yaml) -n foo
একইভাবে, নিম্নলিখিত উদাহরণে, -n বিকল্প ব্যবহার করে, OrgB সংস্থায় কনফিগার করা Edge Microgateway
bar নেমস্পেসে পরিষেবা হিসেবে ডেপ্লয় করা হয়েছে:
kubectl apply -f <(edgemicroctl -org=myorgB -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/joed/.edgemicro/orgB-test-config.yaml -svc=samples/helloworld/helloworld.yaml) -n bar