คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info
บทนำ
หัวข้อนี้จะอธิบายวิธีเรียกใช้ Edge Microgateway ในคลัสเตอร์ Kubernetes เป็นบริการแบบสแตนด์อโลน
ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการผสานรวม Edge Microgateway กับ Kubernetes
ก่อนเริ่มต้น
ทําตามขั้นตอนที่อธิบายไว้ในข้อกําหนดเบื้องต้น
กำหนดค่า Microgateway ของ Edge
คำสั่งต่อไปนี้จะกำหนดค่า Microgateway ของ Edge สำหรับองค์กร Apigee และทำให้พร็อกซี edgemicro-auth
ใช้งานได้
เรียกใช้คำสั่งต่อไปนี้
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 เป็นบริการ
เรียกใช้คําสั่งต่อไปนี้เพื่อทําให้ 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
คัดลอกและวางโค้ดต่อไปนี้ลงในเทอร์มินัล โค้ดจะตั้งค่าตัวควบคุม 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
จากภายนอกได้
ติดตั้งใช้งานบริการ
helloworld
ตัวอย่าง เนื่องจาก Ingress ไม่ทราบเกี่ยวกับบริการนี้ จึงเรียกใช้บริการจากภายนอกคลัสเตอร์ไม่ได้kubectl apply -f samples/helloworld/helloworld-service.yaml
ตัวอย่างเอาต์พุต
service "helloworld" created deployment "helloworld" created
ยืนยันว่าการทําให้การเผยแพร่สําเร็จ โปรดทราบว่าบริการ
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 ภายในสําหรับบริการทดสอบ
รับ 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
คัดลอกค่าของ
CLUSTER-IP
และPORT
เช่น ในตัวอย่างข้างต้น ค่าเหล่านี้คือ10.55.254.255
และ8081
ค่าสำหรับระบบของคุณจะแตกต่างกัน
สร้างพร็อกซีที่รับรู้ถึง Microgateway ใน Edge
- เข้าสู่ระบบ UI ของ Edge
- เลือกองค์กรเดียวกับที่คุณระบุไว้ก่อนหน้านี้เมื่อกำหนดค่า Edge Microgateway
- เลือกพัฒนา > พร็อกซี API ในเมนูการนำทางด้านข้าง
- คลิก + พร็อกซี วิซาร์ดสร้างพร็อกซีจะเปิดขึ้น
- ในหน้าวิซาร์ดหน้าแรก ให้เลือก Reverse Proxy (พบบ่อยที่สุด)
- คลิกถัดไป
ในหน้ารายละเอียดของวิซาร์ด ให้กําหนดค่าดังนี้ โปรดกรอกข้อมูลในวิซาร์ดให้ตรงกับที่แสดง ตรวจสอบว่าชื่อพร็อกซีมีคำนำหน้าเป็น
edgemicro_
- ชื่อพร็อกซี: edgemicro_hello
เส้นทางฐานของพร็อกซี: /hello
API ที่มีอยู่:
http://<cluster_ip>:<port>
เช่น http://10.55.254.255:8081
คลิกถัดไป
ในหน้าความปลอดภัยของวิซาร์ด ให้เลือกส่งผ่าน (ไม่มี)
คลิกถัดไป
ในหน้าโฮสต์เสมือนของวิซาร์ด ให้ยอมรับค่าเริ่มต้น
คลิกถัดไป
ในหน้าสร้างของวิซาร์ด ให้ตรวจสอบการตั้งค่าพร็อกซี ตรวจสอบว่าได้เลือกสภาพแวดล้อมทดสอบแล้ว
คลิกสร้างและทำให้ใช้งานได้
สร้างนักพัฒนาซอฟต์แวร์
คุณสามารถใช้นักพัฒนาแอปที่มีอยู่สำหรับการทดสอบ หรือสร้างนักพัฒนาแอปใหม่ได้โดยทำดังนี้
- เลือกเผยแพร่ > นักพัฒนาแอปในเมนูการนำทางด้านข้าง
- คลิก + นักพัฒนาแอป
- กรอกข้อมูลในกล่องโต้ตอบเพื่อสร้างนักพัฒนาแอปใหม่ คุณใช้ชื่อ/อีเมลของนักพัฒนาแอปใดก็ได้
สร้างผลิตภัณฑ์ API
สร้างผลิตภัณฑ์ API ตามที่อธิบายไว้ด้านล่าง คุณจะเพิ่มพร็อกซี 2 รายการลงในผลิตภัณฑ์ ได้แก่ edgemicro-auth และ edgemicro_hello
อ่านเพิ่มเติมเกี่ยวกับตัวเลือกการกำหนดค่าไอเทมได้ในสิ่งที่คุณควรทราบเกี่ยวกับการกำหนดค่าไอเทม API
- เลือกเผยแพร่ > ผลิตภัณฑ์ API ในเมนูการนำทางด้านข้าง
- คลิก + ผลิตภัณฑ์ API หน้ารายละเอียดผลิตภัณฑ์จะปรากฏขึ้น
กรอกข้อมูลในหน้ารายละเอียดผลิตภัณฑ์ดังนี้ อย่าคลิก "บันทึก" จนกว่าจะได้รับแจ้ง
ชื่อ hello-world-product
ชื่อที่แสดง Edge Micro hello product
สภาพแวดล้อม test
การเข้าถึง Public
ประเภทการอนุมัติคีย์ Automatic
คลิก + ทรัพยากรที่กำหนดเอง ตรงครึ่งล่างของหน้า
ตั้งค่าทรัพยากรเป็น
/
(เครื่องหมายทับเดี่ยว)เลือก + ทรัพยากรที่กำหนดเองอีกครั้ง แล้วเพิ่มเส้นทาง
/**
คลิก + API Proxy ที่ด้านล่างของหน้า
เลือกพร็อกซีชื่อ edgemicro-auth
คลิก + API Proxy อีกครั้ง
เลือกพร็อกซีที่ทราบเกี่ยวกับ Microgateway ชื่อ edgemicro_hello
คลิกบันทึก
สร้างแอปนักพัฒนาซอฟต์แวร์
- เลือกเผยแพร่ > แอปในเมนูการนำทางด้านข้าง
- คลิก + แอป หน้ารายละเอียดแอปของนักพัฒนาแอปจะปรากฏขึ้น
กรอกข้อมูลในหน้าแอปสําหรับนักพัฒนาแอปดังนี้ อย่าบันทึกจนกว่าจะได้รับแจ้งให้ดำเนินการ
ชื่อ hello-world-app
ชื่อที่แสดง Edge Micro hello app
นักพัฒนาซอฟต์แวร์ เลือกนักพัฒนาแอปทดสอบที่คุณสร้างขึ้นหรือนักพัฒนาแอปคนใดก็ได้ ในส่วนข้อมูลเข้าสู่ระบบ ให้คลิก + ผลิตภัณฑ์ แล้วเลือกผลิตภัณฑ์ที่คุณสร้างขึ้น
hello-world-product.
คลิกบันทึก
คุณกลับมาที่หน้าซึ่งแสดงแอปของนักพัฒนาแอปทั้งหมด
เลือกแอปที่เพิ่งสร้าง
hello-world-app
คลิกแสดงข้างคีย์ผู้บริโภค
คัดลอกค่าของ Consumer Key ค่านี้คือคีย์ API ที่คุณจะใช้เรียก API อย่างปลอดภัยเพื่อเข้าถึง
/hello
โปรดรอสักครู่ การเปลี่ยนแปลงที่คุณทำใน Apigee Edge จะใช้เวลา 2-3 นาทีเพื่อซิงค์กับอินสแตนซ์ของ Edge Microgateway ที่ติดตั้งใช้งานในคลัสเตอร์
ทดสอบพร็อกซี
รับที่อยู่ IP ของ Ingress
เมื่อใช้ IP ภายนอกสําหรับ Ingress คุณจะเรียกใช้บริการ Edge Microgateway จากภายนอกคลัสเตอร์ได้
รับที่อยู่ IP ภายนอกของ Ingress Controller โดยทำดังนี้
kubectl get ing -o wide
ตัวอย่างเอาต์พุต
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37m
คัดลอกค่า
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:]")
ยืนยันว่ามีการส่งออกตัวแปรแล้ว เช่น
echo $GATEWAY_IP
ตัวอย่างเอาต์พุต
35.238.249.62
เรียก API
หลังจากดึงการเปลี่ยนแปลงการกําหนดค่าไปยัง Microgateway แล้ว คุณสามารถลองเรียกใช้ API คุณใช้ IP ของ Ingress Controller (ซึ่งบันทึกไว้ในตัวแปร GATEWAY_IP
) เพื่อเรียก API เนื่องจาก IP นี้ช่วยให้คุณเรียกใช้พร็อกซีจากภายนอกคลัสเตอร์ Kubernetes ได้ ระบบจะสร้างการแมปจาก Ingress ไปยัง Edge Microgateway เมื่อคุณติดตั้งใช้งาน Edge Microgateway ในคลัสเตอร์
เรียกใช้ 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 ได้สําเร็จ
รับคีย์ผู้ใช้จากแอปสําหรับนักพัฒนาแอปที่คุณสร้าง ค่านี้คือคี 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 เรียบร้อยแล้ว
ขั้นตอนถัดไปคือ
ดูข้อมูลเกี่ยวกับการเพิ่มปลั๊กอินที่กําหนดเองการปรับขนาดการใช้งาน การเปลี่ยนแปลงการกําหนดค่า และงานอื่นๆ ที่ต้องการทําได้ที่ส่วนงาน