আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
একটি কাস্টম প্লাগইন যোগ করা হচ্ছে
আপনি কাস্টম প্লাগইন লিখে মাইক্রোগেটওয়েতে নতুন বৈশিষ্ট্য এবং ক্ষমতা যোগ করতে পারেন। কাস্টম প্লাগইনগুলি আপনাকে মাইক্রোগেটওয়ের মাধ্যমে প্রবাহিত অনুরোধ এবং প্রতিক্রিয়াগুলির সাথে প্রোগ্রাম্যাটিকভাবে ইন্টারঅ্যাক্ট করতে দেয়।
আপনার কুবারনেটস ক্লাস্টারে চলমান একটি এজ মাইক্রোগেটওয়ে ইন্সট্যান্সে কীভাবে প্লাগইনগুলি প্যাকেজ এবং স্থাপন করা যায় তা এই বিভাগটি ব্যাখ্যা করে।
এই বিভাগের বাকি অংশটি অনুমান করে যে আপনি একটি স্ট্যান্ডার্ড এজ মাইক্রোগেটওয়ে সেটআপের জন্য প্লাগইনগুলি লিখতে এবং কনফিগার করার সাথে পরিচিত৷ যদি না হয়, কাস্টম প্লাগইন বিকাশ দেখুন।
আপনার প্লাগইন(গুলি) প্যাকেজ করুন
কাস্টম প্লাগইন প্যাকেজ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
লিখুন এবং আপনার প্লাগইন পরীক্ষা করুন, নির্দেশাবলী অনুযায়ী একটি সাধারণ প্লাগইন লিখুন ।
সঠিক ডিরেক্টরি কাঠামোতে আপনার প্লাগইন কোড রাখুন। প্লাগইন ডিরেক্টরি অবশ্যই একটি সেট কাঠামো অনুসরণ করবে। নিম্নলিখিত উদাহরণটি আপনাকে অবশ্যই অনুসরণ করতে হবে এমন কাঠামো দেখায়, যেখানে
response-uppercaseএবংrequest-headersহল কাস্টম প্লাগইন কোড ধারণকারী ফোল্ডারগুলির নাম (এই নামগুলি শুধুমাত্র উদাহরণ, আপনার ফোল্ডারের নামগুলি আলাদা হতে পারে):plugin | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.jsoncdpluginফোল্ডারে।pluginফোল্ডারে, পুরোpluginsফোল্ডার জিপ করুন:zip -r plugins.zip plugins/
একটি ডকার ইমেজ তৈরি করুন
- একই ডিরেক্টরিতে যেখানে জিপ ফাইলটি অবস্থিত,
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"]আপনার প্লাগইনগুলির সাথে একটি নতুন এজ মাইক্রোগেটওয়ে ডকার ইমেজ তৈরি করুন এবং ছবিটিকে আপনার ডকার রেজিস্ট্রিতে ঠেলে দিন। আপনি যে কোনো রেজিস্ট্রি ব্যবহার করতে পারেন, যেমন
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
এজ মাইক্রোগেটওয়ে কনফিগারেশন আপডেট করুন
আপনার এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে প্লাগইন যোগ করুন। আপনি এখানে কনফিগার ফাইল খুঁজে পেতে পারেন:
$HOME/.edgemicro/org-env-config.yaml
যেমন:
$HOME/.edgemicro/myorg-test-config.yaml
নিম্নলিখিত নমুনা কনফিগারেশনে, কাস্টম প্লাগইন response-uppercase যোগ করা হয়েছে। oauth প্লাগইনটি ডিফল্টরূপে আগে থেকেই ছিল।
edgemicro:
...
plugins:
sequence:
- oauth
- response-uppercase
আপনার Kubernetes ক্লাস্টার আপডেট করুন
চূড়ান্ত পদক্ষেপ হল কনফিগারেশন পরিবর্তনটি আপনার কুবারনেটস ক্লাস্টারে প্রয়োগ করা। কুবারনেটস প্লাগইন কোডের সাথে নতুন চিত্রটি টেনে আনবে যা আপনি কন্টেইনার রেজিস্ট্রিতে ঠেলে দিয়েছেন এবং নতুন তৈরি করা পডের জন্য এটি ব্যবহার করবেন।
আপনি যদি এজ মাইক্রোগেটওয়েকে একটি পরিষেবা হিসাবে স্থাপন করেন
আপডেটেড এজ মাইক্রোগেটওয়ে কনফিগারেশন ইনজেক্ট করতে edgemicroctl কমান্ডটি ব্যবহার করুন:
নতুন চিত্রের সাথে এজ মাইক্রোগেটওয়ে স্থাপনা আপডেট করুন। যেমন:
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- Apigee সংগঠনটি আপনিedgemicro configureকমান্ডে উল্লেখ করেছেন। -
your_environment-edgemicro configureকমান্ডে আপনি যে পরিবেশ নির্দিষ্ট করেছেন। -
configuration_key- কীটিedgemicro configureকমান্ড থেকে ফিরে এসেছে। -
configuration_secret-edgemicro configureকমান্ড থেকে গোপনটি ফিরে এসেছে। -
config_file_path- এজ মাইক্রো কনফিগারেশন ফাইলের পাথedgemicro configureকমান্ড থেকে ফিরে এসেছে। -
container-registry- ডকার রেজিস্ট্রি যেখানে আপনি ছবিটি পুশ করেছেন। উদাহরণস্বরূপ,gcr.ioবাdocker.io। -
your_project_name- ডকার রিপোজিটরির জন্য প্রকল্পের নাম যেখানে আপনি ডকার ইমেজটি পুশ করেছেন। -
image_name- আপনি যে ডকার ইমেজটি পুশ করেছেন তার নাম।
উদাহরণ:
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-কে কল করুন। উদাহরণস্বরূপ, "প্রতিক্রিয়া বড় হাতের" প্লাগইনের জন্য, প্রতিক্রিয়া পাঠ্যটি সমস্ত বড় হাতের অক্ষরে রূপান্তরিত হয়, যেমনটি নীচে দেখানো হয়েছে:
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- Apigee প্রতিষ্ঠানটি আপনিedgemicro configureকমান্ডে উল্লেখ করেছেন। -
your_env-edgemicro configureকমান্ডে আপনি যে পরিবেশ নির্দিষ্ট করেছেন। -
your_key- কীটিedgemicro configureকমান্ড থেকে ফিরে এসেছে। -
your_secret- গোপনটিedgemicro configureকমান্ড থেকে ফিরে এসেছে। -
config_file_path- এজ মাইক্রো কনফিগারেশন ফাইলের পাথedgemicro configureকমান্ড থেকে ফিরে এসেছে। -
container-registry- ডকার রেজিস্ট্রি যেখানে আপনি ছবিটি পুশ করেছেন। উদাহরণস্বরূপ,gcr.ioবাdocker.io। -
your_project_name- ডকার রিপোজিটরির জন্য প্রকল্পের নাম যেখানে আপনি ডকার ইমেজটি পুশ করেছেন। -
image_name- আপনি যে ডকার ইমেজটি পুশ করেছেন তার নাম। -
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 এ কল করুন। উদাহরণস্বরূপ, "প্রতিক্রিয়া বড় হাতের" প্লাগইনের জন্য, প্রতিক্রিয়া পাঠ্যটি সমস্ত বড় হাতের অক্ষরে রূপান্তরিত হয়, যেমনটি নীচে দেখানো হয়েছে:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
আউটপুট:
HELLO WORLD
এজ মাইক্রোগেটওয়ে কনফিগারেশন পরিবর্তন করা হচ্ছে
কিছু ক্ষেত্রে, আপনাকে আপনার এজ মাইক্রোগেটওয়ে কনফিগারেশন পরিবর্তন করতে হতে পারে। উদাহরণস্বরূপ, আপনি এজ মাইক্রোগেটওয়েতে একটি নতুন প্লাগইন যোগ করতে বা একটি কনফিগারেশন প্যারামিটার পরিবর্তন করতে চাইতে পারেন। 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'আপনার প্রতিষ্ঠান এবং পরিবেশের জন্য এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে আপনার পরিবর্তন করুন:
$HOME/.edgemicro/your_org-your_env-config.yaml
Base64 কনফিগার ফাইলের বিষয়বস্তুর দ্বিগুণ এনকোড করুন:
cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64 | tr -d '\n'
যে নামস্থানে আপনার পরিষেবা চলছে সেখানে কুবারনেটে পরিবর্তনগুলি প্রয়োগ করুন৷
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
আপনার স্থাপনার স্কেলিং
এই বিভাগটি ব্যাখ্যা করে যে আপনি কীভাবে আপনার স্থাপনার পরিমাপ করতে কুবারনেটস স্কেলিং নীতিগুলি ব্যবহার করতে পারেন।
একটি পরিষেবা স্থাপনার স্কেলিং
স্থাপনা পরীক্ষা করুন:
kubectl get deployments
উদাহরণ আউটপুট:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edge-microgateway 1 1 1 1 18h helloworld 1 1 1 1 1dআউটপুট নির্দেশ করে যে একটি প্রতিরূপ স্থাপন করা হয়েছে।
স্থাপনার স্কেল 1 থেকে যতগুলো প্রতিলিপি আপনি চান। এই উদাহরণে,
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আউটপুট দেখায় যে উভয় প্রতিলিপি চলমান অবস্থায় রয়েছে।
একাধিক এজ মাইক্রোগেটওয়ে কনফিগারেশনের জন্য নামস্থান ব্যবহার করুন
আপনি আপনার কুবারনেটস ক্লাস্টারে এজ মাইক্রোগেটওয়ে পরিষেবাগুলির একাধিক উদাহরণ স্থাপন এবং কনফিগার করতে পারেন। এই ব্যবহারের কেসটি আপনাকে প্রতিটি মাইক্রোগেটওয়ে ইনস্ট্যান্সকে তার নিজস্ব সেট প্লাগইন এবং পরামিতিগুলির সাথে কনফিগার করতে দেয়। যেমন:
- এজ মাইক্রোগেটওয়ে সার্ভিস A-এর জন্য শুধুমাত্র স্পাইক অ্যারেস্ট প্লাগইন প্রয়োজন।
- Edge Microgateway Service B-এর জন্য কোটা এবং oauth প্লাগইন প্রয়োজন, কিন্তু স্পাইক অ্যারেস্ট নয়।
এই ব্যবহারের ক্ষেত্রে সমাধান করতে, Kubernetes নামস্থান ব্যবহার করুন। উদাহরণস্বরূপ, আপনি নামস্থান foo এ Edge Microgateway Service A , এবং Edge Microgateway Service B নামস্থান bar স্থাপন করতে পারেন।
নিম্নলিখিত উদাহরণে, OrgA এ কনফিগার করা এজ মাইক্রোগেটওয়ে -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
একইভাবে, নিম্নলিখিত উদাহরণে, OrgB সংস্থায় কনফিগার করা এজ মাইক্রোগেটওয়ে -n বিকল্পটি ব্যবহার করে নেমস্পেস 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