ทำให้ Edge Microgateway เป็นพร็อกซีไฟล์ช่วยเหลือ

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

บทนำ

หัวข้อนี้อธิบายวิธีเรียกใช้ Edge Microgateway ในคลัสเตอร์ Kubernetes เป็นพร็อกซีแบบ Sidecar คุณมี 2 ตัวเลือกสำหรับการติดตั้งใช้งาน Sidecar ได้แก่ การแทรกด้วยตนเองและการแทรกอัตโนมัติ หัวข้อนี้จะอธิบายทั้ง 2 ตัวเลือก

ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลเบื้องต้นเกี่ยวกับ Edge Microgateway ใน Kubernetes

ก่อนเริ่มต้น

ทำตามขั้นตอนที่อธิบายไว้ในข้อกำหนดเบื้องต้น

ติดตั้งใช้งานบริการทดสอบ

ติดตั้งใช้งานบริการ "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. ลบการทำให้บริการทดสอบใช้งาน คุณจะติดตั้งอีกครั้งในภายหลังหลังจากเปิดใช้ การแทรก Sidecar แล้ว

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

การใช้การแทรก Sidecar ด้วยตนเอง

ในตัวเลือกการแทรก Sidecar ทั้ง 2 แบบ การแทรก Sidecar ด้วยตนเองเป็นวิธีที่ง่ายและตรงไปตรงมามากกว่า และทำได้ด้วยคำสั่งเดียว kubectl

กำหนดค่า Edge Microgateway

คำสั่งต่อไปนี้จะกำหนดค่า Edge Microgateway สำหรับองค์กร Apigee และทำให้พร็อกซี 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 เป็น Sidecar

หากต้องการแทรก Edge Microgateway ลงในพ็อดบริการด้วยตนเองเป็นพร็อกซีแบบ Sidecar ให้เรียกใช้คำสั่งนี้

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 - Secret ที่แสดงผลจากคำสั่ง edgemicro configure
  • config_file_path - เส้นทางไปยังไฟล์การกำหนดค่า Edge Micro ที่แสดงจากคำสั่ง edgemicro configure
  • service_deployment_file - เส้นทางไปยังไฟล์การติดตั้งใช้งานของบริการที่พ็อดจะรับบริการ Sidecar ที่เกี่ยวข้อง ตัวอย่างเช่น 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. ตอนนี้คุณก็พร้อมที่จะทดสอบการติดตั้งใช้งาน Sidecar ของ Edge Microgateway แล้ว โปรดไปที่ ทดสอบพร็อกซีเพื่อดูขั้นตอนโดยละเอียด

การใช้การแทรก Sidecar อัตโนมัติ

ในขั้นตอนต่อไปนี้ คุณจะกำหนดค่าการแทรก Sidecar อัตโนมัติสำหรับคลัสเตอร์ Kubernetes การตั้งค่านี้ช่วยให้สามารถแทรก Edge Microgateway เป็นพร็อกซีแบบ Sidecar ลงใน Kubernetes ได้

ติดตั้งโปรแกรมฉีด Sidecar

  1. ติดตั้ง ConfigMap ที่เปิดใช้การแทรก Sidecar ของ Edge Microgateway

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
  2. เรียกใช้สคริปต์ต่อไปนี้เพื่อติดตั้งบริการ Webhook ต้องใช้บริการเว็บฮุคสำหรับการ แทรก Sidecar อัตโนมัติ

    ./install/kubernetes/webhook-create-signed-cert.sh \
        --service edgemicro-sidecar-injector \
        --namespace edgemicro-system \
        --secret sidecar-injector-certs
    
  3. เพิ่มชุดใบรับรอง CA ลงในไฟล์การติดตั้งเว็บฮุค Kubernetes api-server ใช้ไฟล์นี้เพื่อเรียกใช้ Webhook

    cat install/kubernetes/edgemicro-sidecar-injector.yaml | \
         ./install/kubernetes/webhook-patch-ca-bundle.sh > \
         install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    
  4. ติดตั้ง Webhook ของโปรแกรมแทรก Sidecar ของ 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. ตรวจสอบว่า Webhook ของโปรแกรมแทรก Sidecar ของ 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. ตรวจสอบว่าพ็อดการแทรก Sidecar ทำงานอยู่ในคลัสเตอร์ เนมสเปซ edgemicro-system คือตำแหน่งที่ติดตั้งบริการของระบบ ซึ่งรวมถึง ตัวควบคุม Ingress, Backend HTTP เริ่มต้น และตัวแทรก Sidecar

    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

ในขั้นตอนถัดไป คุณจะเรียกใช้สคริปต์แบบอินเทอร์แอกทีฟเพื่อสร้างการกำหนดค่า Edge Microgateway ที่เชื่อมโยงกับเนมสเปซ Kubernetes จากนั้นคุณจะแทรกการกำหนดค่าลงในคลัสเตอร์ 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. ดูสถานะการแทรก Webhook โปรดทราบว่าขณะนี้ยังไม่ได้เปิดใช้

    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. ดูสถานะการแทรก Webhook อีกครั้ง โปรดทราบว่าเมื่อเปิดใช้แล้ว

    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 เพื่อออกจากคำสั่ง

ตอนนี้คุณก็พร้อมทดสอบการติดตั้งใช้งาน Sidecar อัตโนมัติของ Edge Microgateway แล้ว โปรดไปที่ ทดสอบพร็อกซีเพื่อดูขั้นตอนโดยละเอียด

ทดสอบพร็อกซี

การติดตั้งใช้งาน Sidecar จะสร้างพร็อกซี API สำหรับบริการของคุณโดยอัตโนมัติ คุณไม่จำเป็นต้องสร้างพร็อกซีที่ "Edge Microgateway-aware"

รับที่อยู่ IP ของ Ingress

เมื่อมี IP ภายนอกสำหรับ Ingress คุณจะเรียกใช้บริการจากภายนอกคลัสเตอร์ได้

  1. รับที่อยู่ IP ภายนอกของตัวควบคุม Ingress โดยทำดังนี้

    kubectl get ing -o wide

    ตัวอย่างเอาต์พุต

    NAME      HOSTS     ADDRESS        PORTS     AGE
    gateway   *         35.238.13.54   80        1m
    
  2. คัดลอกEXTERNAL-IPค่าสำหรับ Ingress แล้วส่งออกไปยังตัวแปร คุณ ตั้งค่าตัวแปรด้วยตนเองได้โดยทำดังนี้

    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"}
    

    จากนั้นคุณจะแก้ไขข้อผิดพลาดเกี่ยวกับการให้สิทธิ์ที่ขาดหายไปโดยการกำหนดค่าผลิตภัณฑ์ API และแอปของนักพัฒนาแอป ใน Edge เพื่อให้คุณได้รับคีย์ API ที่ถูกต้อง เมื่อเพิ่มคีย์ลงในส่วนหัวการให้สิทธิ์ สำหรับการเรียก API การเรียกจะสำเร็จและคุณจะไม่เห็นข้อผิดพลาดนี้

สร้างคอมโพเนนต์ใน Apigee Edge

จากนั้นสร้างผลิตภัณฑ์ API และแอปของนักพัฒนาซอฟต์แวร์ใน Apigee Edge

สร้างผลิตภัณฑ์ API

  1. เข้าสู่ระบบ Apigee Edge
  2. เลือกเผยแพร่ > ผลิตภัณฑ์ API ในเมนูการนำทางด้านข้าง
  3. คลิก + ผลิตภัณฑ์ API หน้าผลิตภัณฑ์จะปรากฏขึ้น
  4. กรอกข้อมูลในหน้าสินค้าดังนี้ สำหรับช่องที่ไม่ได้ระบุไว้ด้านล่าง คุณ สามารถใช้ค่าเริ่มต้นได้ อย่าบันทึกจนกว่าจะได้รับคำสั่งให้บันทึก

    ชื่อ hello-world-product
    ชื่อที่แสดง Edge Micro hello product
    สภาพแวดล้อม test

  5. ในส่วนเส้นทาง ให้คลิก + ทรัพยากรที่กำหนดเอง

  6. เพิ่มเส้นทาง /

  7. คลิก + ทรัพยากรที่กำหนดเองอีกครั้ง แล้วเพิ่มเส้นทาง /**

  8. ในส่วนพร็อกซี API ให้คลิก + พร็อกซี API แล้วเพิ่ม edgemicro-auth

  9. บันทึกผลิตภัณฑ์ API

สร้างแอปนักพัฒนาซอฟต์แวร์

  1. เลือกแอปในเมนูการนำทางด้านข้าง
  2. คลิก + แอป หน้า "รายละเอียดแอปของนักพัฒนาแอป" จะปรากฏขึ้น
  3. กรอกข้อมูลในหน้าแอปสำหรับนักพัฒนาแอปดังนี้ อย่าบันทึกจนกว่าจะได้รับคำสั่งให้ บันทึก

    ชื่อ hello-world-app
    ชื่อที่แสดง Edge Micro hello app
    นักพัฒนาซอฟต์แวร์ เลือกนักพัฒนาแอปจากเมนูแบบเลื่อนลง
  4. ในส่วนข้อมูลเข้าสู่ระบบ ให้คลิก + ผลิตภัณฑ์ แล้วเลือก hello-world-product ที่คุณเพิ่งสร้าง

  5. คลิกบันทึก

  6. คุณจะกลับไปที่หน้าซึ่งแสดงรายการแอปสำหรับนักพัฒนาแอปทั้งหมด

  7. เลือกแอปที่คุณเพิ่งสร้าง hello-world-app

  8. คลิกแสดงข้างคีย์ผู้บริโภค

  9. คัดลอกค่าของคีย์ผู้ใช้ ค่านี้คือคีย์ API ที่คุณจะใช้เพื่อทำการเรียก API ที่ปลอดภัยไปยัง บริการ helloworld

  10. โปรดรอสักครู่ การเปลี่ยนแปลงที่คุณทำใน Apigee Edge จะใช้เวลา 2-3 นาทีในการซิงค์กับอินสแตนซ์ของ Edge Microgateway ที่ติดตั้งใช้งานใน คลัสเตอร์

เรียก API

หลังจากดึงการเปลี่ยนแปลงการกำหนดค่าลงใน Microgateway แล้ว คุณจะ ทำการทดสอบต่อไปนี้ได้

  1. เรียกใช้ API โดยไม่มีคีย์ API คุณจะได้รับข้อความแสดงข้อผิดพลาดดังที่แสดง ด้านล่าง

    curl $GATEWAY_IP

    ผลลัพธ์ที่คาดไว้

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

    คุณต้องมีคีย์ API เพื่อทำการเรียก API ให้สำเร็จ

  2. รับคีย์ผู้ใช้จากแอปนักพัฒนาซอฟต์แวร์ที่คุณสร้าง ค่านี้คือ คีย์ API ที่คุณต้องใช้เพื่อเรียกพร็อกซีทดสอบ

    curl -H 'x-api-key:your-edge-api-key'  $GATEWAY_IP

    เช่น

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP

    เอาต์พุต:

    Hello world
    

    บริการ helloworld ที่ติดตั้งใช้งานในพ็อดจะแสดงการตอบกลับ "Hello world" การเรียกใช้บริการนั้นจะผ่าน Edge Microgateway ก่อน ซึ่งจะมีการตรวจสอบสิทธิ์ หากเห็นการตอบกลับ "Hello world" แสดงว่าคุณกําหนดค่า Edge Microgateway ให้ทํางานเป็นพร็อกซีแบบ Sidecar ในพ็อดบริการ helloworld ได้สําเร็จ

ขั้นตอนต่อไปคืออะไร

ดูข้อมูลเกี่ยวกับการเพิ่มปลั๊กอินที่กำหนดเอง การปรับขนาดการติดตั้งใช้งาน การทำการเปลี่ยนแปลงการกำหนดค่า และงานอื่นๆ ที่คุณอาจต้องการทำได้ที่ส่วนงาน