एज माइक्रोगेटवे को साइडकार प्रॉक्सी के तौर पर डिप्लॉय करें

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

परिचय

इस विषय में, Kubernetes क्लस्टर में Edge Microgateway को साइडकार प्रॉक्सी के तौर पर चलाने का तरीका बताया गया है. साइडकार डिप्लॉयमेंट के लिए, आपके पास दो विकल्प होते हैं: मैन्युअल और ऑटोमैटिक इंजेक्शन. इस विषय में, दोनों विकल्पों के बारे में बताया गया है.

ज़्यादा जानकारी के लिए, Kubernetes पर Edge Microgateway के बारे में जानकारी लेख पढ़ें.

शुरू करने से पहले

ज़रूरी शर्तें में बताए गए चरण पूरे करें.

टेस्ट सेवा डिप्लॉय करना

"hello" सेवा को डिप्लॉय करें और डिप्लॉयमेंट की पुष्टि करें:

  1. सैंपल डिप्लॉय करें:

    kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
  2. पुष्टि करें कि सेवा चालू है. पॉड के चालू होने तक, आपको कुछ देर इंतज़ार करना पड़ सकता है:

    kubectl get pods --namespace=default

    आउटपुट का उदाहरण:

    NAME                          READY     STATUS    RESTARTS   AGE
    helloworld-569d6565f9-lwrrv   1/1       Running   0          17m
    
  3. टेस्ट सेवा का डिप्लॉयमेंट मिटाएं. साइडकार इंजेक्शन की सुविधा चालू करने के बाद, इसे फिर से इंस्टॉल करें:

     kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default

मैन्युअल साइडकार इंजेक्शन का इस्तेमाल करना

साइडकार इंजेक्शन के दो विकल्पों में से, मैन्युअल साइडकार इंजेक्शन एक आसान और सीधा तरीका है. इसे एक ही kubectl कमांड से किया जा सकता है.

Edge Microgateway को कॉन्फ़िगर करना

यहां दिया गया निर्देश, आपके Apigee संगठन के लिए Edge Microgateway को कॉन्फ़िगर करता है. साथ ही, प्रॉक्सी edgemicro-auth को डिप्लॉय करता है.

  1. यह कमांड चलाएं:

    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)

कॉन्फ़िगरेशन की जांच करना

  1. सेवा की डिप्लॉयमेंट की जांच करें:

    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
    
  2. अब, Edge Microgateway के साइडकार डिप्लॉयमेंट को टेस्ट किया जा सकता है. ज़्यादा जानकारी के लिए, प्रॉक्सी की जांच करें पर जाएं.

ऑटोमैटिक साइडकार इंजेक्शन का इस्तेमाल करना

यहां दिए गए चरणों में, अपने Kubernetes क्लस्टर के लिए साइडकार अपने-आप इंजेक्ट होने की सुविधा कॉन्फ़िगर की जाएगी. इस सेटअप की मदद से, Edge Microgateway को Kubernetes में साइडकार प्रॉक्सी के तौर पर इंजेक्ट किया जा सकता है.

साइडकार इंजेक्टर इंस्टॉल करना

  1. ConfigMap इंस्टॉल करें. इससे Edge Microgateway के साइडकार इंजेक्शन की सुविधा चालू होती है:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
  2. वेबहुक सेवा इंस्टॉल करने के लिए, यह स्क्रिप्ट चलाएं. साइडकार अपने-आप इंजेक्ट होने की सुविधा के लिए, वेबुक सेवा ज़रूरी है:

    ./install/kubernetes/webhook-create-signed-cert.sh \
        --service edgemicro-sidecar-injector \
        --namespace edgemicro-system \
        --secret sidecar-injector-certs
    
  3. वेबबुक इंस्टॉलेशन फ़ाइल में 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.yaml
    
  4. 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
    
  5. पुष्टि करें कि 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
    
  6. पुष्टि करें कि साइडकार इंजेक्शन पॉड, आपके क्लस्टर में चल रहा हो. नेमस्पेस 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 क्लस्टर में इंजेक्ट करें.

  1. यहां दी गई इंटरैक्टिव स्क्रिप्ट चलाएं और मांगे गए पैरामीटर उपलब्ध कराएं. इस कमांड से एक कॉन्फ़िगरेशन प्रोफ़ाइल जनरेट होती है. इसका इस्तेमाल अगले चरण में किया जाएगा.

    ./install/kubernetes/webhook-edgemicro-patch.sh

    इनपुट पैरामीटर के बारे में जानकारी के लिए, रेफ़रंस देखें.

    इनपुट के उदाहरण:

    1. Namespace to deploy application [default]:

      Enter दबाएं.

    2. Authenticate with OAuth Token ("n","Y") [N/y]

      n डालें.

    3. Apigee username [required]:

      अपना Apigee उपयोगकर्ता नाम (ईमेल पता) डालें. उदाहरण के लिए: jdoe@google.com.

    4. Apigee password [required]:

      Apigee का पासवर्ड डालें.

    5. Apigee organization [required]:

      अपने Apigee संगठन का नाम डालें.

    6. Apigee environment [required]:

      अपने संगठन के लिए एनवायरमेंट का नाम डालें. उदाहरण के लिए, "test".

    7. Virtual Host [default]:

      Enter दबाएं.

    8. Is this Private Cloud ("n","y") [N/y]:

      अगर आप पब्लिक क्लाउड पर हैं, तो n डालें.

    9. Edgemicro Key. Press Enter to generate:

      Enter दबाएं.

    10. Edgemicro Secret. Press Enter to generate:

      Enter दबाएं.

    11. 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.
      *****************************************************************************************
      
    12. 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
      ********************************************************************************************************
      
  2. आउटपुट की आखिरी लाइन में दी गई कमांड को चलाएं. यह kubectl कमांड, जनरेट की गई Edge Microgateway कॉन्फ़िगरेशन प्रोफ़ाइल को Kubernetes में इंजेक्ट करती है:

    kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
  3. वेबहुक इंजेक्शन का स्टेटस देखें. ध्यान दें कि फ़िलहाल यह सुविधा चालू नहीं है:

    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
    
  4. वेबबुक के लिए वेबबुक इंजेक्शन की सुविधा चालू करने के लिए, यह कमांड चलाएं:

    kubectl label namespace default edgemicro-injection=enabled
  5. वेबहुक इंजेक्शन का स्टेटस फिर से देखें. ध्यान दें कि अब यह सुविधा चालू हो गई है:

    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 का आईपी पता पाना

इनग्रेस के लिए बाहरी आईपी का इस्तेमाल करके, क्लस्टर के बाहर से सेवा को कॉल किया जा सकता है.

  1. Ingress कंट्रोलर का external आईपी पता पाएं:

    kubectl get ing -o wide

    आउटपुट का उदाहरण:

    NAME      HOSTS     ADDRESS        PORTS     AGE
    gateway   *         35.238.13.54   80        1m
    
  2. 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:]")
  3. पुष्टि करें कि वैरिएबल एक्सपोर्ट किया गया हो. उदाहरण के लिए:

    echo $GATEWAY_IP

    आउटपुट का उदाहरण:

    35.238.249.62
    
  4. सेवा को कॉल करें:

    curl $GATEWAY_IP

    आउटपुट:

    {"error":"missing_authorization","error_description":"Missing Authorization header"}
    

    इसके बाद, आपको Edge पर एपीआई प्रॉडक्ट और डेवलपर ऐप्लिकेशन को कॉन्फ़िगर करके, अनुमति न होने की गड़बड़ी को ठीक करना होगा. इससे आपको मान्य एपीआई पासकोड मिल सकेगा. एपीआई कॉल के लिए, अनुमति देने वाले हेडर में कुंजी जोड़ने पर, कॉल पूरा हो जाएगा और आपको यह गड़बड़ी नहीं दिखेगी.

Apigee Edge पर कॉम्पोनेंट बनाना

इसके बाद, Apigee Edge पर एक एपीआई प्रॉडक्ट और डेवलपर ऐप्लिकेशन बनाएं.

एपीआई प्रॉडक्ट बनाना

  1. Apigee Edge में लॉग इन करें.
  2. साइड नेविगेशन मेन्यू में, पब्लिश करें > एपीआई प्रॉडक्ट चुनें.
  3. + एपीआई प्रॉडक्ट पर क्लिक करें. प्रॉडक्ट पेज दिखता है.
  4. प्रॉडक्ट पेज पर यह जानकारी भरें. यहां नहीं दिए गए फ़ील्ड के लिए, डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जा सकता है. जब तक निर्देश न मिले, तब तक सेव न करें.

    नाम hello-world-product
    डिसप्ले नेम Edge Micro hello product
    परिवेश test

  5. पाथ सेक्शन में जाकर, + कस्टम रिसॉर्स पर क्लिक करें.

  6. पाथ / जोड़ें.

  7. + कस्टम रिसॉर्स पर फिर से क्लिक करें और पाथ /** जोड़ें

  8. एपीआई प्रॉक्सी सेक्शन में, + एपीआई प्रॉक्सी पर क्लिक करें और edgemicro-auth जोड़ें.

  9. एपीआई प्रॉडक्ट सेव करें.

डेवलपर ऐप्लिकेशन बनाना

  1. साइड नेविगेशन मेन्यू में, ऐप्लिकेशन को चुनें.
  2. + ऐप्लिकेशन पर क्लिक करें. इसके बाद, डेवलपर ऐप्लिकेशन की ज़्यादा जानकारी वाला पेज दिखेगा.
  3. डेवलपर ऐप्लिकेशन पेज पर यह जानकारी भरें. जब तक निर्देश न मिले, तब तक सेव न करें.

    नाम hello-world-app
    डिसप्ले नेम Edge Micro hello app
    डेवलपर ड्रॉपडाउन मेन्यू से कोई डेवलपर चुनें.
  4. क्रेडेंशियल सेक्शन में, + प्रॉडक्ट पर क्लिक करें. इसके बाद, अभी बनाया गया hello-world-product चुनें.

  5. सेव करें पर क्लिक करें.

  6. अब आपको डेवलपर के सभी ऐप्लिकेशन की सूची वाला पेज दिखेगा.

  7. आपने अभी जो ऐप्लिकेशन बनाया है उसे चुनें. इसके बाद, hello-world-app को चुनें.

  8. उपयोगकर्ता कुंजी के बगल में मौजूद, दिखाएं पर क्लिक करें.

  9. उपयोगकर्ता कुंजी की वैल्यू कॉपी करें. यह वैल्यू, एपीआई पासकोड है. इसका इस्तेमाल, helloworld सेवा को सुरक्षित एपीआई कॉल करने के लिए किया जाएगा.

  10. कुछ मिनट इंतज़ार करें. Apigee Edge में किए गए बदलावों को क्लस्टर में डिप्लॉय किए गए Edge Microgateway के इंस्टेंस के साथ सिंक होने में कुछ मिनट लगते हैं.

एपीआई को कॉल करना

कॉन्फ़िगरेशन में किए गए बदलावों को माइक्रोगेटवे में शामिल करने के बाद, ये टेस्ट किए जा सकते हैं.

  1. एपीआई पासकोड के बिना एपीआई को कॉल करें. आपको गड़बड़ी का एक मैसेज मिलेगा. यह मैसेज यहां दिखाया गया है:

    curl $GATEWAY_IP

    अनुमानित आउटपुट:

    {"error":"missing_authorization","error_description":"Missing Authorization
    header"}
    

    एपीआई कॉल करने के लिए, आपको एपीआई पासकोड की ज़रूरत होगी.

  2. आपने जो डेवलपर ऐप्लिकेशन बनाया है उससे उपभोक्ता कुंजी पाएं. यह वैल्यू, टेस्ट प्रॉक्सी को कॉल करने के लिए ज़रूरी एपीआई कुंजी है:

    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 सेवा पॉड में साइडकार प्रॉक्सी के तौर पर काम करने के लिए कॉन्फ़िगर कर लिया है.

आगे क्या करना है?

कस्टम प्लगिन जोड़ने, डिप्लॉयमेंट को स्केल करने, कॉन्फ़िगरेशन में बदलाव करने, और अन्य टास्क के बारे में जानकारी पाने के लिए, टास्क सेक्शन देखें.