आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
परिचय
इस विषय में, Kubernetes क्लस्टर में Edge Microgateway को साइडकार प्रॉक्सी के तौर पर चलाने का तरीका बताया गया है. साइडकार डिप्लॉयमेंट के लिए, आपके पास दो विकल्प होते हैं: मैन्युअल और ऑटोमैटिक इंजेक्शन. इस विषय में, दोनों विकल्पों के बारे में बताया गया है.
ज़्यादा जानकारी के लिए, Kubernetes पर Edge Microgateway के बारे में जानकारी लेख पढ़ें.
शुरू करने से पहले
ज़रूरी शर्तें में बताए गए चरण पूरे करें.
टेस्ट सेवा डिप्लॉय करना
"hello" सेवा को डिप्लॉय करें और डिप्लॉयमेंट की पुष्टि करें:
सैंपल डिप्लॉय करें:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
पुष्टि करें कि सेवा चालू है. पॉड के चालू होने तक, आपको कुछ देर इंतज़ार करना पड़ सकता है:
kubectl get pods --namespace=default
आउटपुट का उदाहरण:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17mटेस्ट सेवा का डिप्लॉयमेंट मिटाएं. साइडकार इंजेक्शन की सुविधा चालू करने के बाद, इसे फिर से इंस्टॉल करें:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
मैन्युअल साइडकार इंजेक्शन का इस्तेमाल करना
साइडकार इंजेक्शन के दो विकल्पों में से, मैन्युअल साइडकार इंजेक्शन एक आसान और सीधा तरीका है. इसे एक ही kubectl कमांड से किया जा सकता है.
Edge Microgateway को कॉन्फ़िगर करना
यहां दिया गया निर्देश, आपके Apigee संगठन के लिए Edge Microgateway को कॉन्फ़िगर करता है. साथ ही, प्रॉक्सी edgemicro-auth को डिप्लॉय करता है.
यह कमांड चलाएं:
edgemicro configure -o [org] -e [env] -u [username]
कहां:
org: आपके Edge संगठन का नाम (आपके पास संगठन के एडमिन की भूमिका होनी चाहिए).env: आपके संगठन का कोई एनवायरमेंट, जैसे कि टेस्ट या प्रॉड.username: वह ईमेल पता जो आपके Apigee खाते से जुड़ा है.
उदाहरण
edgemicro configure -o myorg -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 को साइडकार के तौर पर इंजेक्ट करना
Edge Microgateway को साइडकार प्रॉक्सी के तौर पर किसी सर्विस पॉड में मैन्युअल तरीके से इंजेक्ट करने के लिए, यह कमांड चलाएं:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)
कहां:
your_org- यह वह Apigee संगठन है जिसे आपनेedgemicro configureकमांड में तय किया है.your_env- यह वह एनवायरमेंट है जिसे आपनेedgemicro configureकमांड में तय किया है.your_key- यहedgemicro configureकमांड से मिली कुंजी है.your_secret- यहedgemicro configureकमांड से मिला सीक्रेट है.config_file_path- यह Edge Micro कॉन्फ़िगरेशन फ़ाइल का पाथ है. यहedgemicro configureकमांड से मिलता है.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 -svc=samples/helloworld/helloworld.yaml)
कॉन्फ़िगरेशन की जांच करना
सेवा की डिप्लॉयमेंट की जांच करें:
kubectl get services -n default
आउटपुट का उदाहरण:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.15.254.163 <none> 8081:32401/TCP 56s kubernetes ClusterIP 10.15.240.1 <none> 443/TCP 41mअब, Edge Microgateway के साइडकार डिप्लॉयमेंट को टेस्ट किया जा सकता है. ज़्यादा जानकारी के लिए, प्रॉक्सी की जांच करें पर जाएं.
ऑटोमैटिक साइडकार इंजेक्शन का इस्तेमाल करना
यहां दिए गए चरणों में, अपने Kubernetes क्लस्टर के लिए साइडकार अपने-आप इंजेक्ट होने की सुविधा कॉन्फ़िगर की जाएगी. इस सेटअप की मदद से, Edge Microgateway को Kubernetes में साइडकार प्रॉक्सी के तौर पर इंजेक्ट किया जा सकता है.
साइडकार इंजेक्टर इंस्टॉल करना
ConfigMap इंस्टॉल करें. इससे Edge Microgateway के साइडकार इंजेक्शन की सुविधा चालू होती है:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
वेबहुक सेवा इंस्टॉल करने के लिए, यह स्क्रिप्ट चलाएं. साइडकार अपने-आप इंजेक्ट होने की सुविधा के लिए, वेबुक सेवा ज़रूरी है:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certsवेबबुक इंस्टॉलेशन फ़ाइल में CA बंडल जोड़ें. Kubernetes api-server, इस फ़ाइल का इस्तेमाल करके वेबहुक को चालू करता है:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yamlEdge Microgateway साइडकार इंजेक्टर वेबहुक इंस्टॉल करें:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
आउटपुट का उदाहरण:
service "edgemicro-sidecar-injector" created serviceaccount "edgemicro-sidecar-injector-service-account" created deployment "edgemicro-sidecar-injector" created mutatingwebhookconfiguration "edgemicro-sidecar-injector" createdपुष्टि करें कि Edge Microgateway साइडकार इंजेक्टर वेबहुक चल रहा है:
kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
आउटपुट का उदाहरण:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edgemicro-sidecar-injector 1 1 1 1 12mपुष्टि करें कि साइडकार इंजेक्शन पॉड, आपके क्लस्टर में चल रहा हो. नेमस्पेस
edgemicro-systemमें सिस्टम सेवाएं इंस्टॉल की जाती हैं. इनमें इनग्रेस कंट्रोलर, डिफ़ॉल्ट एचटीटीपी बैकएंड, और साइडकार इंजेक्टर शामिल हैं:kubectl get pods -n edgemicro-system
आउटपुट का उदाहरण:
NAME READY STATUS RESTARTS AGE default-http-backend-55c6c69b88-gfnfd 1/1 Running 0 1h edgemicro-ingress-controller-64444469bf-jhn8b 1/1 Running 3 1h edgemicro-sidecar-injector-7d95698fbf-cq84q 1/1 Running 0 3m
Edge Microgateway को कॉन्फ़िगर और इंजेक्ट करना
अगले चरण में, आपको एक इंटरैक्टिव स्क्रिप्ट चलाने के लिए कहा जाएगा. इससे Kubernetes नेमस्पेस से जुड़ा Edge Microgateway कॉन्फ़िगरेशन बनाया जा सकेगा. इसके बाद, कॉन्फ़िगरेशन को अपने Kubernetes क्लस्टर में इंजेक्ट करें.
यहां दी गई इंटरैक्टिव स्क्रिप्ट चलाएं और मांगे गए पैरामीटर उपलब्ध कराएं. इस कमांड से एक कॉन्फ़िगरेशन प्रोफ़ाइल जनरेट होती है. इसका इस्तेमाल अगले चरण में किया जाएगा.
./install/kubernetes/webhook-edgemicro-patch.sh
इनपुट पैरामीटर के बारे में जानकारी के लिए, रेफ़रंस देखें.
इनपुट के उदाहरण:
Namespace to deploy application [default]:Enter दबाएं.
Authenticate with OAuth Token ("n","Y") [N/y]n डालें.
Apigee username [required]:अपना Apigee उपयोगकर्ता नाम (ईमेल पता) डालें. उदाहरण के लिए:
jdoe@google.com.Apigee password [required]:Apigee का पासवर्ड डालें.
Apigee organization [required]:अपने Apigee संगठन का नाम डालें.
Apigee environment [required]:अपने संगठन के लिए एनवायरमेंट का नाम डालें. उदाहरण के लिए, "test".
Virtual Host [default]:Enter दबाएं.
Is this Private Cloud ("n","y") [N/y]:अगर आप पब्लिक क्लाउड पर हैं, तो n डालें.
Edgemicro Key. Press Enter to generate:Enter दबाएं.
Edgemicro Secret. Press Enter to generate:Enter दबाएं.
Edgemicro org-env-config.yaml. Press Enter to generate:Enter दबाएं.
आउटपुट का उदाहरण:
current nodejs version is v6.9.1 current edgemicro version is 2.5.25 config initialized to /Users/jdoe/.edgemicro/default.yaml Configure for Cloud ****************************************************************************************** Config file is Generated in /Users/jdoe/Work/GITHUB/microgateway_2.5.25_Darwin_x86_64/config directory. Please make changes as desired. *****************************************************************************************Do you agree to proceed("n","y") [N/y]:y डालें.
आउटपुट का उदाहरण:
Configuring Microgateway with key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84 secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0 config:~/.edgemicro/jdoe-test-config.yaml ******************************************************************************************************** kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml ********************************************************************************************************
आउटपुट की आखिरी लाइन में दी गई कमांड को चलाएं. यह
kubectlकमांड, जनरेट की गई Edge Microgateway कॉन्फ़िगरेशन प्रोफ़ाइल को Kubernetes में इंजेक्ट करती है:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
वेबहुक इंजेक्शन का स्टेटस देखें. ध्यान दें कि फ़िलहाल यह सुविधा चालू नहीं है:
kubectl get namespace -L edgemicro-injection
आउटपुट का उदाहरण:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d edgemicro-system Active 1d kube-public Active 1d kube-system Active 1dवेबबुक के लिए वेबबुक इंजेक्शन की सुविधा चालू करने के लिए, यह कमांड चलाएं:
kubectl label namespace default edgemicro-injection=enabled
वेबहुक इंजेक्शन का स्टेटस फिर से देखें. ध्यान दें कि अब यह सुविधा चालू हो गई है:
kubectl get namespace -L edgemicro-injection
आउटपुट का उदाहरण:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d enabled edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
टेस्ट सेवा को डिप्लॉय करना
अब टेस्ट सेवा को फिर से डिप्लॉय करें. Edge Microgateway को सेवा के पॉड में अपने-आप इंजेक्ट कर दिया जाएगा.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
पुष्टि करें कि Edge Microgateway को पॉड में टेस्ट सेवा के साथ इंजेक्ट किया गया था:
kubectl get pods --namespace=default --watch
आउटपुट का उदाहरण:
NAME READY STATUS RESTARTS AGE
helloworld-6987878fc4-pkw8h 0/2 PodInitializing 0 12s
helloworld-6987878fc4-pkw8h 2/2 Running 0 26s
जब स्टेटस Running में बदल जाए, तो कमांड से बाहर निकलने के लिए ctrl-c दबाएं.
अब, Edge Microgateway के अपने-आप साइडकार डिप्लॉयमेंट की जांच की जा सकती है. ज़्यादा जानकारी के लिए, प्रॉक्सी की जांच करें पर जाएं.
प्रॉक्सी की जांच करना
साइडकार डिप्लॉयमेंट की मदद से, आपकी सेवा के लिए एपीआई प्रॉक्सी अपने-आप बन जाती है. आपको "Edge Microgateway-aware" प्रॉक्सी बनाने की ज़रूरत नहीं है.
Ingress का आईपी पता पाना
इनग्रेस के लिए बाहरी आईपी का इस्तेमाल करके, क्लस्टर के बाहर से सेवा को कॉल किया जा सकता है.
Ingress कंट्रोलर का external आईपी पता पाएं:
kubectl get ing -o wide
आउटपुट का उदाहरण:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1mIngress के लिए
EXTERNAL-IPवैल्यू कॉपी करें और उसे किसी वैरिएबल में एक्सपोर्ट करें. मैन्युअल तरीके से वैरिएबल सेट करने के लिए:export GATEWAY_IP=external_ip
उदाहरण के लिए:
export GATEWAY_IP=35.238.249.62
इसके अलावा, इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
पुष्टि करें कि वैरिएबल एक्सपोर्ट किया गया हो. उदाहरण के लिए:
echo $GATEWAY_IP
आउटपुट का उदाहरण:
35.238.249.62सेवा को कॉल करें:
curl $GATEWAY_IP
आउटपुट:
{"error":"missing_authorization","error_description":"Missing Authorization header"}इसके बाद, आपको Edge पर एपीआई प्रॉडक्ट और डेवलपर ऐप्लिकेशन को कॉन्फ़िगर करके, अनुमति न होने की गड़बड़ी को ठीक करना होगा. इससे आपको मान्य एपीआई पासकोड मिल सकेगा. एपीआई कॉल के लिए, अनुमति देने वाले हेडर में कुंजी जोड़ने पर, कॉल पूरा हो जाएगा और आपको यह गड़बड़ी नहीं दिखेगी.
Apigee Edge पर कॉम्पोनेंट बनाना
इसके बाद, Apigee Edge पर एक एपीआई प्रॉडक्ट और डेवलपर ऐप्लिकेशन बनाएं.
एपीआई प्रॉडक्ट बनाना
- Apigee Edge में लॉग इन करें.
- साइड नेविगेशन मेन्यू में, पब्लिश करें > एपीआई प्रॉडक्ट चुनें.
- + एपीआई प्रॉडक्ट पर क्लिक करें. प्रॉडक्ट पेज दिखता है.
प्रॉडक्ट पेज पर यह जानकारी भरें. यहां नहीं दिए गए फ़ील्ड के लिए, डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जा सकता है. जब तक निर्देश न मिले, तब तक सेव न करें.
नाम hello-world-productडिसप्ले नेम Edge Micro hello productपरिवेश testपाथ सेक्शन में जाकर, + कस्टम रिसॉर्स पर क्लिक करें.
पाथ
/जोड़ें.+ कस्टम रिसॉर्स पर फिर से क्लिक करें और पाथ
/**जोड़ेंएपीआई प्रॉक्सी सेक्शन में, + एपीआई प्रॉक्सी पर क्लिक करें और edgemicro-auth जोड़ें.
एपीआई प्रॉडक्ट सेव करें.
डेवलपर ऐप्लिकेशन बनाना
- साइड नेविगेशन मेन्यू में, ऐप्लिकेशन को चुनें.
- + ऐप्लिकेशन पर क्लिक करें. इसके बाद, डेवलपर ऐप्लिकेशन की ज़्यादा जानकारी वाला पेज दिखेगा.
डेवलपर ऐप्लिकेशन पेज पर यह जानकारी भरें. जब तक निर्देश न मिले, तब तक सेव न करें.
नाम hello-world-appडिसप्ले नेम Edge Micro hello appडेवलपर ड्रॉपडाउन मेन्यू से कोई डेवलपर चुनें. क्रेडेंशियल सेक्शन में, + प्रॉडक्ट पर क्लिक करें. इसके बाद, अभी बनाया गया
hello-world-productचुनें.सेव करें पर क्लिक करें.
अब आपको डेवलपर के सभी ऐप्लिकेशन की सूची वाला पेज दिखेगा.
आपने अभी जो ऐप्लिकेशन बनाया है उसे चुनें. इसके बाद,
hello-world-appको चुनें.उपयोगकर्ता कुंजी के बगल में मौजूद, दिखाएं पर क्लिक करें.
उपयोगकर्ता कुंजी की वैल्यू कॉपी करें. यह वैल्यू, एपीआई पासकोड है. इसका इस्तेमाल,
helloworldसेवा को सुरक्षित एपीआई कॉल करने के लिए किया जाएगा.कुछ मिनट इंतज़ार करें. Apigee Edge में किए गए बदलावों को क्लस्टर में डिप्लॉय किए गए Edge Microgateway के इंस्टेंस के साथ सिंक होने में कुछ मिनट लगते हैं.
एपीआई को कॉल करना
कॉन्फ़िगरेशन में किए गए बदलावों को माइक्रोगेटवे में शामिल करने के बाद, ये टेस्ट किए जा सकते हैं.
एपीआई पासकोड के बिना एपीआई को कॉल करें. आपको गड़बड़ी का एक मैसेज मिलेगा. यह मैसेज यहां दिखाया गया है:
curl $GATEWAY_IP
अनुमानित आउटपुट:
{"error":"missing_authorization","error_description":"Missing Authorization header"}एपीआई कॉल करने के लिए, आपको एपीआई पासकोड की ज़रूरत होगी.
आपने जो डेवलपर ऐप्लिकेशन बनाया है उससे उपभोक्ता कुंजी पाएं. यह वैल्यू, टेस्ट प्रॉक्सी को कॉल करने के लिए ज़रूरी एपीआई कुंजी है:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP
उदाहरण के लिए:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
आउटपुट:
Hello world"नमस्ते, दुनिया के लोगों" वाला रिस्पॉन्स, पॉड पर डिप्लॉय की गई helloworld सेवा से मिलता है. उस सेवा को किया गया कॉल, सबसे पहले Edge Microgateway से होकर गुज़रा. यहां पुष्टि की गई. अगर आपको "Hello world" जवाब दिखता है, तो इसका मतलब है कि आपने Edge Microgateway को helloworld सेवा पॉड में साइडकार प्रॉक्सी के तौर पर काम करने के लिए कॉन्फ़िगर कर लिया है.
आगे क्या करना है?
कस्टम प्लगिन जोड़ने, डिप्लॉयमेंट को स्केल करने, कॉन्फ़िगरेशन में बदलाव करने, और अन्य टास्क के बारे में जानकारी पाने के लिए, टास्क सेक्शन देखें.