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

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

บทนำ

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

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

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

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

กำหนดค่า Microgateway ของ Edge

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

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

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

    สถานที่:

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

    • env: สภาพแวดล้อมในองค์กร (เช่น test หรือ prod)

    • 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)

    where:

    • 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. คัดลอกและวางโค้ดต่อไปนี้ลงในเทอร์มินัล โค้ดจะตั้งค่าตัวควบคุม Ingress เพื่ออนุญาตให้การเข้าถึงจากภายนอกไปยังบริการ 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
    

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

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

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

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

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

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

    service "helloworld" created deployment "helloworld" created
    
  2. ยืนยันว่าการทําให้การเผยแพร่สําเร็จ โปรดทราบว่าบริการ helloworld ไม่มี IP ภายนอก ในขั้นตอนต่อไปนี้ คุณจะกําหนดค่า 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
    

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

รับ IP ภายในสําหรับบริการ helloworld แล้วเพิ่มเป็นเป้าหมายของพร็อกซีที่ "รู้จัก Microgateway" การสร้างพร็อกซีที่ "รู้จัก Microgateway" เป็นข้อกำหนดมาตรฐานของ 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 ใน Edge

  1. เข้าสู่ระบบ UI ของ Edge
  2. เลือกองค์กรเดียวกับที่คุณระบุไว้ก่อนหน้านี้เมื่อกำหนดค่า Edge Microgateway
  3. เลือกพัฒนา > พร็อกซี API ในเมนูการนำทางด้านข้าง
  4. คลิก + พร็อกซี วิซาร์ดสร้างพร็อกซีจะเปิดขึ้น
  5. ในหน้าวิซาร์ดหน้าแรก ให้เลือก Reverse Proxy (พบบ่อยที่สุด)
  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 Proxy ที่ด้านล่างของหน้า

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

  9. คลิก + API Proxy อีกครั้ง

  10. เลือกพร็อกซีที่ทราบเกี่ยวกับ Microgateway ชื่อ 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. คัดลอกค่าของ Consumer Key ค่านี้คือคีย์ API ที่คุณจะใช้เรียก API อย่างปลอดภัยเพื่อเข้าถึง /hello

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

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

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

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

  1. รับที่อยู่ IP ภายนอกของ Ingress Controller โดยทำดังนี้

    kubectl get ing -o wide

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

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

    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

หลังจากดึงการเปลี่ยนแปลงการกําหนดค่าไปยัง Microgateway แล้ว คุณสามารถลองเรียกใช้ API คุณใช้ IP ของ Ingress Controller (ซึ่งบันทึกไว้ในตัวแปร GATEWAY_IP) เพื่อเรียก API เนื่องจาก IP นี้ช่วยให้คุณเรียกใช้พร็อกซีจากภายนอกคลัสเตอร์ Kubernetes ได้ ระบบจะสร้างการแมปจาก Ingress ไปยัง 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 เรียบร้อยแล้ว

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

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