Kubernetes ইন্টিগ্রেশন কাজ

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

একটি কাস্টম প্লাগইন যোগ করা হচ্ছে

আপনি কাস্টম প্লাগইন লিখে মাইক্রোগেটওয়েতে নতুন বৈশিষ্ট্য এবং ক্ষমতা যোগ করতে পারেন। কাস্টম প্লাগইনগুলি আপনাকে মাইক্রোগেটওয়ের মাধ্যমে প্রবাহিত অনুরোধ এবং প্রতিক্রিয়াগুলির সাথে প্রোগ্রাম্যাটিকভাবে ইন্টারঅ্যাক্ট করতে দেয়।

আপনার কুবারনেটস ক্লাস্টারে চলমান একটি এজ মাইক্রোগেটওয়ে ইন্সট্যান্সে কীভাবে প্লাগইনগুলি প্যাকেজ এবং স্থাপন করা যায় তা এই বিভাগটি ব্যাখ্যা করে।

এই বিভাগের বাকি অংশটি অনুমান করে যে আপনি একটি স্ট্যান্ডার্ড এজ মাইক্রোগেটওয়ে সেটআপের জন্য প্লাগইনগুলি লিখতে এবং কনফিগার করার সাথে পরিচিত৷ যদি না হয়, কাস্টম প্লাগইন বিকাশ দেখুন।

আপনার প্লাগইন(গুলি) প্যাকেজ করুন

কাস্টম প্লাগইন প্যাকেজ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. লিখুন এবং আপনার প্লাগইন পরীক্ষা করুন, নির্দেশাবলী অনুযায়ী একটি সাধারণ প্লাগইন লিখুন

  2. সঠিক ডিরেক্টরি কাঠামোতে আপনার প্লাগইন কোড রাখুন। প্লাগইন ডিরেক্টরি অবশ্যই একটি সেট কাঠামো অনুসরণ করবে। নিম্নলিখিত উদাহরণটি আপনাকে অবশ্যই অনুসরণ করতে হবে এমন কাঠামো দেখায়, যেখানে response-uppercase এবং request-headers হল কাস্টম প্লাগইন কোড ধারণকারী ফোল্ডারগুলির নাম (এই নামগুলি শুধুমাত্র উদাহরণ, আপনার ফোল্ডারের নামগুলি আলাদা হতে পারে):

    plugin
      |
      |-- plugins
        |
        |- response-uppercase
        |     |- index.js
        |     |- package.json
        |- request-headers
        |     | - index.js
              | - package.json
    
  3. cd plugin ফোল্ডারে।

  4. plugin ফোল্ডারে, পুরো plugins ফোল্ডার জিপ করুন:

    zip -r plugins.zip plugins/

একটি ডকার ইমেজ তৈরি করুন

  1. একই ডিরেক্টরিতে যেখানে জিপ ফাইলটি অবস্থিত, Dockerfile নামে একটি নতুন ফাইল তৈরি করুন।
  2. 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"]
    
  3. আপনার প্লাগইনগুলির সাথে একটি নতুন এজ মাইক্রোগেটওয়ে ডকার ইমেজ তৈরি করুন এবং ছবিটিকে আপনার ডকার রেজিস্ট্রিতে ঠেলে দিন। আপনি যে কোনো রেজিস্ট্রি ব্যবহার করতে পারেন, যেমন docker.io বা gcr.io :

    docker build -t edgemicroplugins .
    docker tag edgemicroplugins container-registry/your-project/edgemicroplugins
    docker push container-registry/your-project/edgemicroplugins
    

    যেমন:

    docker build -t edgemicroplugins .
    docker tag edgemicroplugins gcr.io/my-project/edgemicroplugins
    docker push   gcr.io/my-project/edgemicroplugins
    

এজ মাইক্রোগেটওয়ে কনফিগারেশন আপডেট করুন

  1. আপনার এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে প্লাগইন যোগ করুন। আপনি এখানে কনফিগার ফাইল খুঁজে পেতে পারেন:

    $HOME/.edgemicro/org-env-config.yaml
    

    যেমন:

    $HOME/.edgemicro/myorg-test-config.yaml

নিম্নলিখিত নমুনা কনফিগারেশনে, কাস্টম প্লাগইন response-uppercase যোগ করা হয়েছে। oauth প্লাগইনটি ডিফল্টরূপে আগে থেকেই ছিল।

  edgemicro:
    ...
    plugins:
      sequence:
        - oauth
        - response-uppercase

আপনার Kubernetes ক্লাস্টার আপডেট করুন

চূড়ান্ত পদক্ষেপ হল কনফিগারেশন পরিবর্তনটি আপনার কুবারনেটস ক্লাস্টারে প্রয়োগ করা। কুবারনেটস প্লাগইন কোডের সাথে নতুন চিত্রটি টেনে আনবে যা আপনি কন্টেইনার রেজিস্ট্রিতে ঠেলে দিয়েছেন এবং নতুন তৈরি করা পডের জন্য এটি ব্যবহার করবেন।

আপনি যদি এজ মাইক্রোগেটওয়েকে একটি পরিষেবা হিসাবে স্থাপন করেন

আপডেটেড এজ মাইক্রোগেটওয়ে কনফিগারেশন ইনজেক্ট করতে edgemicroctl কমান্ডটি ব্যবহার করুন:

  1. নতুন চিত্রের সাথে এজ মাইক্রোগেটওয়ে স্থাপনা আপডেট করুন। যেমন:

    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)
  2. প্লাগইন পরীক্ষা করুন। আপনি প্রত্যাশিত আচরণ পান কিনা দেখতে API-কে কল করুন। উদাহরণস্বরূপ, "প্রতিক্রিয়া বড় হাতের" প্লাগইনের জন্য, প্রতিক্রিয়া পাঠ্যটি সমস্ত বড় হাতের অক্ষরে রূপান্তরিত হয়, যেমনটি নীচে দেখানো হয়েছে:

    curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'

    আউটপুট:

    HELLO WORLD
    
নতুন কনফিগারেশনটি ম্যানুয়ালি ইনজেকশন করা হচ্ছে

ম্যানুয়াল ইনজেকশন হল একটি সরল পদ্ধতি, যেখানে আপনি কমান্ড লাইন থেকে নতুন কনফিগারেশন ইনজেক্ট করেন।

  1. নিম্নলিখিত কমান্ডটি চালান:

    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)
  2. প্লাগইন পরীক্ষা করুন। আপনি প্রত্যাশিত আচরণ পান কিনা তা দেখতে পরিষেবা API এ কল করুন। উদাহরণস্বরূপ, "প্রতিক্রিয়া বড় হাতের" প্লাগইনের জন্য, প্রতিক্রিয়া পাঠ্যটি সমস্ত বড় হাতের অক্ষরে রূপান্তরিত হয়, যেমনটি নীচে দেখানো হয়েছে:

    curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'

    আউটপুট:

    HELLO WORLD
    

এজ মাইক্রোগেটওয়ে কনফিগারেশন পরিবর্তন করা হচ্ছে

কিছু ক্ষেত্রে, আপনাকে আপনার এজ মাইক্রোগেটওয়ে কনফিগারেশন পরিবর্তন করতে হতে পারে। উদাহরণস্বরূপ, আপনি এজ মাইক্রোগেটওয়েতে একটি নতুন প্লাগইন যোগ করতে বা একটি কনফিগারেশন প্যারামিটার পরিবর্তন করতে চাইতে পারেন। Kubernetes-এ চলমান Edge Microgateway-এ কনফিগারেশন পরিবর্তনগুলি কীভাবে করতে এবং প্রয়োগ করতে হয় তা এই বিভাগটি ব্যাখ্যা করে।

  1. নীচে দেখানো হিসাবে একটি কনফিগারেশন ফাইল 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_CONFIG
    
  2. EDGEMICRO_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'
    
  3. আপনার প্রতিষ্ঠান এবং পরিবেশের জন্য এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে আপনার পরিবর্তন করুন:

    $HOME/.edgemicro/your_org-your_env-config.yaml
  4. Base64 কনফিগার ফাইলের বিষয়বস্তুর দ্বিগুণ এনকোড করুন:

    cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64  | tr -d '\n'
  5. যে নামস্থানে আপনার পরিষেবা চলছে সেখানে কুবারনেটে পরিবর্তনগুলি প্রয়োগ করুন৷

    kubectl apply -f secret.yaml -n 

এই নতুন পরিবর্তনগুলি বিদ্যমান মাইক্রোগেটওয়ে পড দ্বারা স্বয়ংক্রিয়ভাবে নেওয়া হয় না; তবে, নতুন পড পরিবর্তনগুলি পাবে। আপনি বিদ্যমান পড মুছে ফেলতে পারেন যাতে স্থাপনা একটি নতুন পড তৈরি করে যা পরিবর্তনটি গ্রহণ করে।

পরিষেবা উদাহরণ

নিম্নলিখিত উদাহরণটি ব্যাখ্যা করে কিভাবে একটি নতুন দিয়ে একটি পরিষেবা স্থাপনা আপডেট করতে হয়

  1. শুঁটি পান।

    kubectl get pods

    উদাহরণ আউটপুট:

    NAME                                 READY     STATUS    RESTARTS   AGE
    edge-microgateway-57ccc7776b-g7nrg   1/1       Running   0          19h
    helloworld-6987878fc4-cltc2          1/1       Running   0          1d
    
  2. edge-microgateway পড মুছুন।

    kubectl delete pod edge-microgateway-57ccc7776b-g7nrg

    উদাহরণ আউটপুট:

    pod "edge-microgateway-57ccc7776b-g7nrg" deleted
    
  3. আবার শুঁটি পান। একটি নতুন পড স্পিন আপ এবং আপনার কনফিগারেশন পরিবর্তন পায়.

    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
    

আপনার স্থাপনার স্কেলিং

এই বিভাগটি ব্যাখ্যা করে যে আপনি কীভাবে আপনার স্থাপনার পরিমাপ করতে কুবারনেটস স্কেলিং নীতিগুলি ব্যবহার করতে পারেন।

একটি পরিষেবা স্থাপনার স্কেলিং

  1. স্থাপনা পরীক্ষা করুন:

    kubectl get deployments

    উদাহরণ আউটপুট:

    NAME                DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    edge-microgateway   1         1         1            1           18h
    helloworld          1         1         1            1           1d
    

    আউটপুট নির্দেশ করে যে একটি প্রতিরূপ স্থাপন করা হয়েছে।

  2. স্থাপনার স্কেল 1 থেকে যতগুলো প্রতিলিপি আপনি চান। এই উদাহরণে, edge-microgateway পরিষেবাটি স্কেল করা হয়েছে।

    kubectl scale deployment edge-microgateway --replicas=2
  3. (ঐচ্ছিক) আপনি যদি অটোস্কেলিং ব্যবহার করতে চান তবে এই কমান্ডটি ব্যবহার করুন:

    kubectl autoscale deployment edge-microgateway --cpu-percent=50 --min=1 --max=10
  4. স্কেলিং সক্ষম হয়েছে যাচাই করতে স্থাপনাগুলি পরীক্ষা করুন:

    kubectl get deployments

    উদাহরণ আউটপুট:

    NAME                DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    edge-microgateway   2         2         2            2           18h
    helloworld          1         1         1            1           1d
    

    রাজ্য দুটি প্রতিলিপি অন্তর্ভুক্ত করার জন্য পরিবর্তন করা হয়েছে.

  5. শুঁটি পরীক্ষা করুন:

    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