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

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

परिचय

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

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

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

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

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

"नमस्ते" जैसी कोई आसान सेवा डिप्लॉय करें और डिप्लॉयमेंट की पुष्टि करें:

  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 माइक्रोगेटवे कॉन्फ़िगर करना

यह कमांड, आपके 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 - 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)

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

  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. वेबहुक सेवा इंस्टॉल करने के लिए, नीचे दी गई स्क्रिप्ट को चलाएं. साइडकार को अपने-आप इंजेक्ट करने के लिए, webhook सेवा ज़रूरी है:

    ./install/kubernetes/webhook-create-signed-cert.sh \
        --service edgemicro-sidecar-injector \
        --namespace edgemicro-system \
        --secret sidecar-injector-certs
    
  3. वेबहुक इंस्टॉलेशन फ़ाइल में सीए बंडल जोड़ें. 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]:

      अगर आपने Public Cloud का इस्तेमाल किया है, तो 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. इन्ग्रेस कंट्रोलर का एक्सटर्नल आईपी पता पाएं:

    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. Consumer Key की वैल्यू कॉपी करें. यह वैल्यू, helloworld सेवा के लिए सुरक्षित एपीआई कॉल करने के लिए इस्तेमाल की जाने वाली एपीआई पासकोड है.

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

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

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

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

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

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