আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
ভূমিকা
এই টপিকে ব্যাখ্যা করা হয়েছে কিভাবে একটি Kubernetes ক্লাস্টারে Edge Microgateway-কে একটি স্বতন্ত্র পরিষেবা হিসেবে চালানো যায়।
আরও তথ্যের জন্য, “Integrate Edge Microgateway with Kubernetes overview” দেখুন।
শুরু করার আগে
পূর্বশর্ত অংশে বর্ণিত ধাপগুলো সম্পূর্ণ করুন।
এজ মাইক্রোগেটওয়ে কনফিগার করুন
নিম্নলিখিত কমান্ডটি আপনার Apigee অর্গানাইজেশনের জন্য Edge Microgateway কনফিগার করে এবং edgemicro-auth প্রক্সিটি স্থাপন করে।
নিম্নলিখিত কমান্ডটি চালান:
edgemicro configure -o [org] -e [env] -u [username]
কোথায়:
org: আপনার Edge অর্গানাইজেশনের নাম (আপনাকে অবশ্যই একজন অর্গ অ্যাডমিনিস্ট্রেটর হতে হবে)।env: আপনার প্রতিষ্ঠানের একটি পরিবেশ (যেমন test বা prod)।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!
এজ মাইক্রোগেটওয়েকে একটি পরিষেবা হিসাবে স্থাপন করুন
আপনার 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সার্ভিসে বাহ্যিক অ্যাক্সেসের অনুমতি দেওয়ার জন্য ইনগ্রেস কন্ট্রোলারকে সেট আপ করে। আপনার টার্মিনালে কমান্ডটি পেস্ট করার পর এন্টার চাপার প্রয়োজন হতে পারে: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" createdইনগ্রেস কন্ট্রোলারটি এখন
edge-microgatewayসার্ভিসে বাহ্যিক অ্যাক্সেসের অনুমতি দেওয়ার জন্য কনফিগার করা হয়েছে।
একটি টেস্ট সার্ভিস ডিপ্লয় করুন
নিম্নলিখিত ধাপগুলো আপনার ক্লাস্টারে একটি সাধারণ টেস্ট সার্ভিস স্থাপন করে। ইনগ্রেস কন্ট্রোলার ক্লাস্টারের বাইরে থেকে সার্ভিসটিকে কল করার অনুমতি দেয় না। পরবর্তীতে, আপনি এজ মাইক্রোগেটওয়েকে তার টার্গেট হিসেবে সার্ভিসটিকে কল করার জন্য কনফিগার করবেন। ইনগ্রেস কন্ট্রোলার edge-microgateway সার্ভিসে বাইরের অ্যাক্সেসের অনুমতি দেয়।
নমুনা
helloworldসার্ভিসটি ডিপ্লয় করুন। যেহেতু Ingress এই সার্ভিসটি সম্পর্কে জানে না, তাই ক্লাস্টারের বাইরে থেকে সার্ভিসটিকে কল করা যাবে না।kubectl apply -f samples/helloworld/helloworld-service.yaml
উদাহরণ আউটপুট:
service "helloworld" created deployment "helloworld" createdডেপ্লয়মেন্ট সফল হয়েছে কিনা তা যাচাই করুন। লক্ষ্য করুন যে
helloworldসার্ভিসটির কোনো এক্সটার্নাল আইপি নেই। পরবর্তী ধাপগুলোতে, আপনি সার্ভিসটির ইন্টারনাল আইপি অ্যাক্সেস করার জন্য Edge Microgateway কনফিগার করবেন।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 সার্ভিসের অভ্যন্তরীণ আইপিটি নিন এবং এটিকে একটি 'microgateway-aware' প্রক্সির টার্গেট হিসেবে যুক্ত করুন। একটি 'microgateway-aware' প্রক্সি তৈরি করা Edge Microgateway-এর একটি স্ট্যান্ডার্ড আবশ্যকতা।
আরও দেখুন মাইক্রোগেটওয়ে-অ্যাওয়্যার প্রক্সি সম্পর্কে আপনার যা জানা প্রয়োজন ।
টেস্ট সার্ভিসের জন্য অভ্যন্তরীণ আইপি সংগ্রহ করুন।
helloworldসার্ভিসের জন্য অভ্যন্তরীণ ক্লাস্টার আইপি এবং পোর্ট সংগ্রহ করুন: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-তে লগ ইন করুন ।
- সেই একই সংস্থাটি নির্বাচন করুন যা আপনি পূর্বে এজ মাইক্রোগেটওয়ে কনফিগার করার সময় নির্দিষ্ট করেছিলেন।
- সাইড নেভিগেশন মেনু থেকে Develop > API Proxys নির্বাচন করুন।
- + প্রক্সি-তে ক্লিক করুন। বিল্ড এ প্রক্সি উইজার্ডটি খুলে যাবে।
- উইজার্ডের প্রথম পৃষ্ঠায়, রিভার্স প্রক্সি (সবচেয়ে প্রচলিত) নির্বাচন করুন।
- পরবর্তী ধাপে যান।
উইজার্ডের Details পৃষ্ঠায়, নিম্নলিখিতভাবে কনফিগার করুন। উইজার্ডটি ঠিক যেমন দেখানো হয়েছে সেভাবেই পূরণ করতে ভুলবেন না। নিশ্চিত করুন যে প্রক্সি নামের শুরুতে
edgemicro_প্রিফিক্সটি রয়েছে।- প্রক্সি নাম: edgemicro_hello
প্রক্সি বেস পাথ: /hello
বিদ্যমান এপিআই:
http://<cluster_ip>:<port>উদাহরণস্বরূপ: http://10.55.254.255:8081
পরবর্তী ধাপে যান।
উইজার্ডের নিরাপত্তা পৃষ্ঠায়, পাস থ্রু (কোনোটিই নয়) নির্বাচন করুন।
পরবর্তী ধাপে যান।
উইজার্ডের ভার্চুয়াল হোস্ট পেজে ডিফল্টগুলো গ্রহণ করুন।
পরবর্তী ধাপে যান।
উইজার্ডের বিল্ড পেজে আপনার প্রক্সি সেটিংস পর্যালোচনা করুন। নিশ্চিত করুন যে টেস্ট এনভায়রনমেন্টটি নির্বাচিত আছে।
বিল্ড এবং ডিপ্লয়-এ ক্লিক করুন।
একজন ডেভেলপার তৈরি করুন
আপনি টেস্টিংয়ের জন্য একজন বিদ্যমান ডেভেলপারকে ব্যবহার করতে পারেন, অথবা নিম্নোক্তভাবে একজন নতুন ডেভেলপার তৈরি করতে পারেন:
- সাইড নেভিগেশন মেনু থেকে পাবলিশ > ডেভেলপারস নির্বাচন করুন।
- ক্লিক করুন + ডেভেলপার।
- নতুন ডেভেলপার তৈরি করতে ডায়ালগ বক্সটি পূরণ করুন। আপনি আপনার ইচ্ছামতো যেকোনো ডেভেলপার নাম/ইমেল ব্যবহার করতে পারেন।
একটি এপিআই পণ্য তৈরি করুন
নিচে বর্ণিত পদ্ধতি অনুযায়ী একটি এপিআই প্রোডাক্ট তৈরি করুন। আপনাকে প্রোডাক্টটিতে দুটি প্রক্সি যোগ করতে হবে: edgemicro-auth এবং edgemicro_hello ।
এপিআই প্রোডাক্ট কনফিগারেশন সম্পর্কে আপনার যা জানা দরকার, সেই অংশে আপনি প্রোডাক্ট কনফিগারেশন অপশনগুলো সম্পর্কে আরও পড়তে পারেন।
- সাইড নেভিগেশন মেনু থেকে Publish > API Products নির্বাচন করুন।
- + API Product-এ ক্লিক করুন। পণ্যের বিস্তারিত পৃষ্ঠাটি প্রদর্শিত হবে।
পণ্যের বিবরণ পৃষ্ঠাটি নিম্নরূপভাবে পূরণ করুন। নির্দেশ না দেওয়া পর্যন্ত সংরক্ষণ (Save) বোতামে ক্লিক করবেন না।
নাম hello-world-productপ্রদর্শনের নাম Edge Micro hello productপরিবেশ testঅ্যাক্সেস Publicমূল অনুমোদনের ধরণ Automaticপৃষ্ঠার নিচের অংশে, + কাস্টম রিসোর্স-এ ক্লিক করুন।
রিসোর্সটিকে
/(একক স্ল্যাশ) হিসেবে সেট করুন।আবার + কাস্টম রিসোর্স নির্বাচন করুন এবং
/**পাথটি যোগ করুন।পেজের নিচের অংশে, + API Proxy-তে ক্লিক করুন।
edgemicro-auth নামের প্রক্সিটি নির্বাচন করুন।
আবার + API Proxy-তে ক্লিক করুন।
edgemicro_hello নামের মাইক্রোগেটওয়ে-সচেতন প্রক্সিটি নির্বাচন করুন।
সংরক্ষণ করুন- এ ক্লিক করুন।
একটি ডেভেলপার অ্যাপ তৈরি করুন
- সাইড নেভিগেশন মেনু থেকে পাবলিশ > অ্যাপস নির্বাচন করুন।
- + অ্যাপে ক্লিক করুন। ডেভেলপার অ্যাপের বিবরণ পৃষ্ঠাটি প্রদর্শিত হবে।
ডেভেলপার অ্যাপ পৃষ্ঠাটি নিম্নরূপভাবে পূরণ করুন। নির্দেশ না দেওয়া পর্যন্ত সেভ করবেন না।
নাম hello-world-appপ্রদর্শনের নাম Edge Micro hello appডেভেলপার আপনার তৈরি করা টেস্ট ডেভেলপারকে নির্বাচন করুন, অথবা যেকোনো ডেভেলপার হলেও চলবে। ক্রেডেনশিয়ালস বিভাগে, + প্রোডাক্ট-এ ক্লিক করুন এবং আপনার তৈরি করা প্রোডাক্টটি নির্বাচন করুন:
hello-world-product.সংরক্ষণ করুন- এ ক্লিক করুন।
আপনি সেই পৃষ্ঠায় ফিরে এসেছেন যেখানে সমস্ত ডেভেলপার অ্যাপের তালিকা রয়েছে।
আপনি এইমাত্র তৈরি করা অ্যাপটি,
hello-world-app, নির্বাচন করুন।কনজিউমার কী-এর পাশে থাকা 'দেখাও'- তে ক্লিক করুন।
কনজিউমার কী-এর মানটি কপি করুন। এই মানটিই হলো এপিআই কী , যা ব্যবহার করে আপনি
/helloতে সুরক্ষিত এপিআই কল করবেন।কয়েক মিনিট অপেক্ষা করুন। Apigee Edge-এ আপনার করা পরিবর্তনগুলো ক্লাস্টারে স্থাপন করা Edge Microgateway-এর ইনস্ট্যান্সের সাথে সিঙ্ক হতে কয়েক মিনিট সময় লাগে।
প্রক্সি পরীক্ষা করুন
ইনগ্রেস আইপি ঠিকানাটি পান
ইনগ্রেসের এক্সটার্নাল আইপি ব্যবহার করে, আপনি ক্লাস্টারের বাইরে থেকে এজ মাইক্রোগেটওয়ে সার্ভিসকে কল করতে পারেন।
ইনগ্রেস কন্ট্রোলারের এক্সটার্নাল আইপি অ্যাড্রেসটি নিন:
kubectl get ing -o wide
উদাহরণ আউটপুট:
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37mইনগ্রেসের
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) কল করার চেষ্টা করতে পারেন। এপিআই কল করার জন্য আপনি ইনগ্রেস কন্ট্রোলার আইপি (Ingress controller IP) ব্যবহার করবেন (যেটি আপনি GATEWAY_IP ভেরিয়েবলে সংরক্ষণ করেছেন), কারণ এই আইপি আপনাকে কুবারনেটিস ক্লাস্টারের বাইরে থেকে প্রক্সি কল করার সুযোগ দেয়। ক্লাস্টারে এজ মাইক্রোগেটওয়ে (Edge Microgateway) স্থাপন করার সময় ইনগ্রেস থেকে এজ মাইক্রোগেটওয়ের ম্যাপিংটি তৈরি করা হয়েছিল।
এপিআই কী ছাড়া এপিআই কল করলে আপনি একটি এরর মেসেজ পাবেন, যা নিচে দেখানো হলো:
curl $GATEWAY_IP:80/hello/
প্রত্যাশিত আউটপুট:
{"error":"missing_authorization","error_description":"Missing Authorization header"}আপনি যদি এই বার্তাটি দেখেন, তাহলে সিঙ্ক সম্পন্ন হওয়া পর্যন্ত আপনাকে আরও কিছুক্ষণ অপেক্ষা করতে হতে পারে:
{"message":"no match found for /hello/","status":404}সফলভাবে এপিআই কল করার জন্য আপনার এপিআই কী প্রয়োজন।
আপনার তৈরি করা ডেভেলপার অ্যাপ থেকে কনজিউমার কী (Consumer key) নিন। এই ভ্যালুটিই হলো এপিআই কী (API key), যা আপনার টেস্ট প্রক্সি কল করার জন্য প্রয়োজন হবে:
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 সফলভাবে কনফিগার করেছেন।
এরপর কী?
কাস্টম প্লাগইন যোগ করা, ডেপ্লয়মেন্টের পরিধি বাড়ানো, কনফিগারেশন পরিবর্তন করা এবং আপনার সম্পাদন করতে ইচ্ছুক এমন অন্যান্য কাজ সম্পর্কে তথ্যের জন্য টাস্কস (Tasks) বিভাগটি দেখুন।