Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
परिचय
इस विषय में, Kubernetes क्लस्टर में Edge Microgateway को साइडकार प्रॉक्सी के तौर पर चलाने का तरीका बताया गया है. साइडकार डिप्लॉयमेंट के लिए आपके पास दो विकल्प हैं: मैन्युअल और ऑटोमैटिक इंजेक्शन. इस विषय में, दोनों विकल्पों के बारे में बताया गया है.
ज़्यादा जानकारी के लिए, Kubernetes पर Edge Microgateway के बारे में जानकारी देखें.
शुरू करने से पहले
ज़रूरी शर्तें में बताए गए चरण पूरे करें.
टेस्ट सेवा को डिप्लॉय करना
"नमस्ते" जैसी कोई आसान सेवा डिप्लॉय करें और डिप्लॉयमेंट की पुष्टि करें:
सैंपल को डिप्लॉय करें:
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 माइक्रोगेटवे कॉन्फ़िगर करना
यह कमांड, आपके 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
-edgemicro configure
कमांड से मिली Edge Micro कॉन्फ़िगरेशन फ़ाइल का पाथ.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
वेबहुक सेवा इंस्टॉल करने के लिए, नीचे दी गई स्क्रिप्ट को चलाएं. साइडकार को अपने-आप इंजेक्ट करने के लिए, webhook सेवा ज़रूरी है:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certs
वेबहुक इंस्टॉलेशन फ़ाइल में सीए बंडल जोड़ें. 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.yaml
Edge 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]:
अगर आपने Public Cloud का इस्तेमाल किया है, तो 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 का आईपी पता पाना
इंग्रेस के लिए बाहरी आईपी की मदद से, क्लस्टर के बाहर से सेवा को कॉल किया जा सकता है.
इन्ग्रेस कंट्रोलर का एक्सटर्नल आईपी पता पाएं:
kubectl get ing -o wide
आउटपुट का उदाहरण:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1m
Ingress के लिए
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
.उपभोक्ता कुंजी के बगल में मौजूद, दिखाएं पर क्लिक करें.
Consumer Key की वैल्यू कॉपी करें. यह वैल्यू,
helloworld
सेवा के लिए सुरक्षित एपीआई कॉल करने के लिए इस्तेमाल की जाने वाली एपीआई पासकोड है.कुछ मिनट इंतज़ार करें. Apigee Edge पर किए गए बदलावों को क्लस्टर में डिप्लॉय किए गए Edge माइक्रोगेटवे के इंस्टेंस के साथ सिंक होने में कुछ मिनट लगते हैं.
एपीआई को कॉल करना
कॉन्फ़िगरेशन में किए गए बदलावों को माइक्रोगेटकेट में खींचने के बाद, ये टेस्ट किए जा सकते हैं.
एपीआई पासकोड के बिना एपीआई को कॉल करें. आपको गड़बड़ी का मैसेज दिखेगा, जैसा कि यहां दिखाया गया है:
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 सेवा पॉड में साइडकार प्रॉक्सी के तौर पर काम करने के लिए कॉन्फ़िगर कर लिया है.
आगे क्या करना है?
कस्टम प्लग इन जोड़ने, डिप्लॉयमेंट को स्केल करने, कॉन्फ़िगरेशन में बदलाव करने, और अन्य टास्क के बारे में जानने के लिए, टास्क सेक्शन देखें.