ทำให้ Edge Microgateway เป็นบริการ

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

เกริ่นนำ

หัวข้อนี้จะอธิบายวิธีเรียกใช้ Edge Microgateway ในคลัสเตอร์ Kubernetes เป็นบริการสแตนด์อโลน

สำหรับข้อมูลเพิ่มเติม โปรดดูที่การผสานรวม Edge Microgateway กับภาพรวม Kubernetes

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

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

กำหนดค่า Edge Microgateway

คำสั่งต่อไปนี้กำหนดค่า Edge Microgateway สำหรับองค์กร Apigee และทำให้พร็อกซี edgemicro-auth ใช้งานได้

  1. เรียกใช้คำสั่งต่อไปนี้

    edgemicro configure -o [org] -e [env] -u [username]

    โดยที่

    • org: ชื่อองค์กร Edge ของคุณ (คุณต้องเป็นผู้ดูแลระบบองค์กร)

    • env: สภาพแวดล้อมในองค์กรของคุณ (เช่น การทดสอบหรือเวอร์ชันที่ใช้งานจริง)

    • username: อีเมลที่เชื่อมโยงกับบัญชี Apigee

    ตัวอย่าง

    edgemicro configure -o docs -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 เป็นบริการที่ใช้ได้

  1. ใช้คำสั่งต่อไปนี้เพื่อทำให้ Edge Microgateway เป็นบริการในคลัสเตอร์ Kubernetes ของคุณ

    kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key
    -sec=edgemicro-secret -conf=file path of org-env-config.yaml)

    ที่ไหน

    • org - องค์กร Apigee ที่คุณระบุไว้ในคำสั่ง edgemicro configure
    • env - สภาพแวดล้อมที่คุณระบุในคำสั่ง edgemicro configure
    • edgemicro-key - คีย์ที่แสดงผลจากคำสั่ง edgemicro configure
    • edgemicro-secret - ข้อมูลลับที่แสดงผลจากคำสั่ง edgemicro configure
    • file path of org-env-config.yaml - เส้นทางไปยังไฟล์การกำหนดค่า Edge Micro ที่ส่งคืนจากคำสั่ง edgemicro configure

    เช่น

    kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)

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

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. คัดลอกและวางโค้ดต่อไปนี้ลงในเครื่องชำระเงิน โค้ดจะตั้งค่าตัวควบคุมข้อมูลขาเข้าเพื่ออนุญาตการเข้าถึงบริการ edge-microgateway จากภายนอก คุณอาจต้องกด Enter หลังจากวางคำสั่งในเทอร์มินัลแล้ว

    cat <<EOF | kubectl apply -f -
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: edge-microgateway-ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - http:
          paths:
          - path: /
            backend:
              serviceName: edge-microgateway
              servicePort: 8000
    EOF
    

    เมื่อประสบความสำเร็จ คุณจะเห็นผลลัพธ์นี้:

    ingress "edge-microgateway-ingress" created
    

    ตอนนี้มีการกําหนดค่าตัวควบคุมข้อมูลขาเข้าให้อนุญาตการเข้าถึงบริการ edge-microgateway จากภายนอกแล้ว

ทำให้บริการทดสอบใช้งานได้

ขั้นตอนต่อไปนี้ทำให้บริการทดสอบแบบง่ายใช้งานได้ในคลัสเตอร์ ตัวควบคุมข้อมูลขาเข้าไม่อนุญาตให้เรียกใช้บริการจากภายนอกคลัสเตอร์ จากนั้นคุณจะกำหนดค่า Edge Microgateway ให้เรียกใช้บริการเป็นเป้าหมาย ตัวควบคุมข้อมูลขาเข้าอนุญาตให้บุคคลภายนอกเข้าถึงบริการ edge-microgateway

  1. ทำให้บริการ helloworld ตัวอย่างใช้งานได้ เนื่องจากข้อมูลขาเข้าไม่ทราบเกี่ยวกับบริการนี้ จึงไม่สามารถเรียกใช้บริการจากนอกคลัสเตอร์ได้

    kubectl apply -f samples/helloworld/helloworld-service.yaml

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

    service "helloworld" created deployment "helloworld" created
    
  2. ยืนยันว่าการติดตั้งใช้งานสําเร็จ โปรดทราบว่าไม่มี IP ภายนอกสำหรับบริการ helloworld ในขั้นตอนต่อไปนี้ คุณจะต้องกำหนดค่า Edge Microgateway เพื่อเข้าถึง IP ภายในของบริการ

    kubectl get services -n default

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

    NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    edge-microgateway   NodePort    10.35.247.222   <none>        8000:32000/TCP   12m
    helloworld          NodePort    10.35.245.103   <none>        8081:30294/TCP   47s
    kubernetes          ClusterIP   10.35.240.1     <none>        443/TCP          47m
    

กำหนดค่า Edge Microgateway เพื่อพร็อกซีสำหรับบริการ

รับ IP ภายในสำหรับบริการ helloworld แล้วเพิ่มเป็นเป้าหมายของพร็อกซี "microgateway-aware" การสร้างพร็อกซี "microgateway-aware" เป็นข้อกำหนดมาตรฐานของ Edge Microgateway

โปรดดูสิ่งที่คุณต้องทราบเกี่ยวกับพร็อกซีที่รับรู้ถึง Microgateway

รับ IP ภายในสำหรับบริการทดสอบ

  1. รับพอร์ตและ IP คลัสเตอร์ภายในสำหรับบริการ helloworld ดังนี้

    kubectl get services helloworld

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

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. คัดลอกค่าของ CLUSTER-IP และ PORT เช่น ในตัวอย่างข้างต้น ค่าเหล่านี้คือ 10.55.254.255 และ 8081 ค่าในระบบของคุณจะแตกต่างออกไป

สร้างพร็อกซี microgateway-Aware บน Edge

  1. เข้าสู่ระบบ Edge UI
  2. เลือกองค์กรเดียวกับที่คุณระบุไว้ก่อนหน้านี้เมื่อกำหนดค่า Edge Microgateway
  3. เลือกพัฒนา > พร็อกซี API ในเมนูการนำทางด้านข้าง
  4. คลิก + พร็อกซี วิซาร์ดสร้างพร็อกซีจะเปิดขึ้น
  5. ในหน้าวิซาร์ดแรก ให้เลือกพร็อกซีแบบย้อนกลับ (ใช้กันโดยทั่วไป)
  6. คลิกถัดไป
  7. ในหน้ารายละเอียดของวิซาร์ด ให้กำหนดค่าดังนี้ อย่าลืมกรอกข้อมูล ในวิซาร์ดตามที่แสดง ตรวจสอบว่าชื่อพร็อกซีมีคำนำหน้า edgemicro_

    1. ชื่อพร็อกซี: edgemicro_hello
    2. เส้นทางฐานพร็อกซี: /hello

    3. API ที่มีอยู่: http://<cluster_ip>:<port>

      เช่น http://10.55.254.255:8081

  8. คลิกถัดไป

  9. ในหน้าความปลอดภัยของวิซาร์ด ให้เลือกผ่าน (ไม่มี)

  10. คลิกถัดไป

  11. ในหน้าโฮสต์เสมือนของวิซาร์ด ให้ยอมรับค่าเริ่มต้น

  12. คลิกถัดไป

  13. ในหน้าบิลด์ของวิซาร์ด ให้ตรวจสอบการตั้งค่าพร็อกซี ตรวจสอบว่าได้เลือกสภาพแวดล้อมการทดสอบแล้ว

  14. คลิกสร้างและทำให้ใช้งานได้

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

คุณจะใช้นักพัฒนาซอฟต์แวร์ที่มีอยู่สำหรับการทดสอบได้ หรือจะสร้างใหม่โดยทำดังนี้

  1. เลือกเผยแพร่ > นักพัฒนาซอฟต์แวร์ในเมนูการนำทางด้านข้าง
  2. คลิก + นักพัฒนาซอฟต์แวร์
  3. กรอกข้อมูลในกล่องโต้ตอบเพื่อสร้างนักพัฒนาซอฟต์แวร์ใหม่ คุณสามารถใช้ชื่อ/อีเมลนักพัฒนาซอฟต์แวร์ใดก็ได้ตามต้องการ

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

สร้างผลิตภัณฑ์ API ตามที่อธิบายไว้ด้านล่าง คุณจะเพิ่มพร็อกซี 2 รายการไปยังผลิตภัณฑ์ ได้แก่ edgemicro-auth และ edgemicro_hello

อ่านข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการกำหนดค่าผลิตภัณฑ์ได้ในสิ่งที่คุณต้องทราบเกี่ยวกับการกำหนดค่าผลิตภัณฑ์ API

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

    ชื่อ hello-world-product
    ชื่อที่แสดง Edge Micro hello product
    สภาพแวดล้อม test
    สิทธิ์เข้าถึง Public
    ประเภทการอนุมัติคีย์ Automatic
  4. ที่ครึ่งล่างของหน้า ให้คลิก + ทรัพยากรที่กำหนดเอง

  5. ตั้งค่าทรัพยากรเป็น / (เครื่องหมายทับ)

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

  7. ในส่วนด้านล่างของหน้า ให้คลิก + พร็อกซี API

  8. เลือกพร็อกซีชื่อ edgemicro-auth

  9. คลิก + พร็อกซี API อีกครั้ง

  10. เลือกพร็อกซี microgateway-Aware ชื่อ edgemicro_hello

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

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

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

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

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

  6. คุณกลับมาที่หน้าที่แสดงแอปนักพัฒนาซอฟต์แวร์ทั้งหมด

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

  8. คลิกแสดงข้างคีย์ผู้ใช้

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

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

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

รับที่อยู่ IP ขาเข้า

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

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

    kubectl get ing -o wide

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

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. คัดลอกค่า ADDRESS ของข้อมูลขาเข้าและส่งออกไปยังตัวแปร คุณตั้งค่าตัวแปรด้วยตนเองได้โดยทำดังนี้

    export GATEWAY_IP=external_ip

    เช่น

    export GATEWAY_IP=35.238.249.62

    หรือใช้คำสั่งนี้เพื่อตั้งค่า

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. ยืนยันว่าส่งออกตัวแปรแล้ว เช่น

    echo $GATEWAY_IP

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

    35.238.249.62
    

เรียกใช้ API

หลังจากดึงการเปลี่ยนแปลงการกำหนดค่าเข้าไปในไมโครเกตเวย์แล้ว คุณอาจลองเรียกใช้ API ได้ คุณใช้ IP ตัวควบคุมข้อมูลขาเข้า (ซึ่งบันทึกไว้ในตัวแปร GATEWAY_IP เพื่อเรียกใช้ API เนื่องจาก IP นี้ช่วยให้คุณเรียกพร็อกซีจากนอกคลัสเตอร์ Kubernetes ได้ การแมปจากข้อมูลขาเข้าไปยัง Edge Microgateway สร้างขึ้นเมื่อคุณทำให้ Edge Microgateway ใช้งานได้กับคลัสเตอร์

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

    curl $GATEWAY_IP:80/hello/

    ผลลัพธ์ที่คาดหวัง:

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

    หากเห็นข้อความนี้ คุณอาจต้องรออีกสักระยะจนกว่าการซิงค์จะเสร็จสมบูรณ์

    {"message":"no match found for /hello/","status":404}
    

    คุณต้องมีคีย์ API จึงจะเรียก API ได้สำเร็จ

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

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

    เช่น

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/

    เอาต์พุต:

    Hello world
    

    หากเห็นการตอบกลับ " Hello world" แสดงว่าคุณกำหนดค่า Edge Microgateway ให้เรียกใช้บริการ helloworld ภายในคลัสเตอร์ Kubernetes เรียบร้อยแล้ว

ขั้นตอนถัดไปคือ

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