ทำให้ 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-Aware พร็อกซี

รับ 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 ค่าสำหรับ จะแตกต่างออกไป

สร้างพร็อกซีที่รับรู้ถึงไมโครเกตใน Edge

  1. เข้าสู่ระบบ Edge UI
  2. เลือกองค์กรเดียวกับที่คุณระบุไว้ก่อนหน้านี้เมื่อกำหนดค่า Edge Microgateway
  3. เลือก Develop > พร็อกซี 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. ในหน้าสร้างของวิซาร์ด ให้ตรวจสอบการตั้งค่าพร็อกซี ตรวจสอบว่า เลือกสภาพแวดล้อม test แล้ว

  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
    

    หากคุณเห็นหน้าจอ "สวัสดีโลก" การตอบสนอง แสดงว่าคุณกำหนดค่าเรียบร้อยแล้ว Edge Microgateway เพื่อเรียกบริการ Helloworld ภายใน Kubernetes คลัสเตอร์

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

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