คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
เกริ่นนำ
หัวข้อนี้จะอธิบายวิธีเรียกใช้ Edge Microgateway ในคลัสเตอร์ Kubernetes เป็นพร็อกซีไฟล์ช่วยเหลือ คุณมี 2 ตัวเลือกสำหรับการทำให้ไฟล์ช่วยเหลือใช้งานได้ ได้แก่ การแทรกด้วยตนเองและการแทรกอัตโนมัติ หัวข้อนี้จะอธิบายถึงตัวเลือกทั้งสอง
โปรดดูข้อมูลเพิ่มเติมที่ข้อมูลเบื้องต้นเกี่ยวกับ Edge Microgateway ใน Kubernetes
ก่อนเริ่มต้น
ทำตามขั้นตอนที่อธิบายไว้ในข้อกำหนดเบื้องต้น
ทำให้บริการทดสอบใช้งานได้
ทำให้บริการ "hello" ที่เรียบง่ายใช้งานได้และยืนยันการติดตั้งใช้งานมีดังนี้
นำตัวอย่างไปใช้:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
ตรวจสอบว่าบริการยังทำงานอยู่ คุณอาจต้องรอสักครู่จนกว่า พ็อดจะเข้าสู่โหมดทำงานอยู่
kubectl get pods --namespace=default
ตัวอย่างเอาต์พุต
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17m
ลบการติดตั้งใช้งานบริการทดสอบ คุณจะต้องติดตั้งใหม่ในภายหลัง หลังจากเปิดใช้การแทรกไฟล์ช่วยเหลือแล้ว
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
การใช้การแทรกไฟล์ช่วยเหลือด้วยตนเอง
จากตัวเลือกการแทรกไฟล์ช่วยเหลือทั้ง 2 แบบ การแทรกไฟล์ช่วยเหลือด้วยตนเองเป็นวิธีที่ง่ายและตรงไปตรงมากว่า และใช้คําสั่ง kubectl
เดียวได้
กำหนดค่า Edge Microgateway
คำสั่งต่อไปนี้กำหนดค่า Edge Microgateway สำหรับองค์กร Apigee และทำให้พร็อกซี edgemicro-auth
ใช้งานได้
เรียกใช้คำสั่งต่อไปนี้
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 เป็นช่วยเหลือ
หากต้องการแทรก Edge Microgateway ในพ็อดบริการด้วยตนเองเป็นพร็อกซีไฟล์ช่วยเหลือ ให้เรียกใช้คำสั่งนี้
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
- ข้อมูลลับที่แสดงผลจากคำสั่งedgemicro configure
config_file_path
- เส้นทางไปยังไฟล์การกำหนดค่า Edge Micro ที่ส่งคืนจากคำสั่งedgemicro configure
service_deployment_file
- เส้นทางไปยังไฟล์การทำให้ใช้งานได้ของบริการที่พ็อดจะได้รับบริการไฟล์ช่วยเหลือที่ใช้ร่วมกัน เช่น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)
ทดสอบการกำหนดค่า
ตรวจสอบการทำให้บริการใช้งานได้ด้วยคำสั่งต่อไปนี้
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
ตอนนี้คุณพร้อมที่จะทดสอบการติดตั้งใช้งานไฟล์ช่วยเหลือของ Edge Microgateway แล้ว ไปที่ทดสอบพร็อกซีเพื่อดูขั้นตอนโดยละเอียด
การใช้การแทรกไฟล์ช่วยเหลืออัตโนมัติ
ในขั้นตอนต่อไปนี้ คุณจะได้กำหนดค่าการแทรกไฟล์ช่วยเหลืออัตโนมัติสำหรับคลัสเตอร์ Kubernetes การตั้งค่านี้จะทำให้สามารถแทรก Edge Microgateway เป็นพร็อกซีไฟล์ช่วยเหลือลงใน Kubernetes ได้
ติดตั้งหัวฉีดไฟล์ช่วยเหลือ
ติดตั้ง ConfigMap ที่เปิดใช้การแทรกไฟล์ช่วยเหลือของ Edge Microgateway ดังนี้
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
เรียกใช้สคริปต์ต่อไปนี้เพื่อติดตั้งบริการเว็บฮุค ต้องมีบริการเว็บฮุคสำหรับ การแทรกไฟล์ช่วยเหลืออัตโนมัติ ดังนี้
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certs
เพิ่มแพ็กเกจ CA ลงในไฟล์การติดตั้งเว็บฮุค เซิร์ฟเวอร์ API ของ Kubernetes ใช้ไฟล์นี้เพื่อเรียกใช้เว็บฮุค
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
ติดตั้งเว็บฮุคสำหรับตัวแทรกส่วนหัว Microgateway ของ Edge
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
ยืนยันว่าเว็บฮุคของตัวแทรกไฟล์ช่วยเหลือ Microgateway ของ Edge ทำงานอยู่ โดยทำดังนี้
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
ตรวจสอบว่าพ็อดการแทรกไฟล์ช่วยเหลือทํางานอยู่ในคลัสเตอร์ของคุณ เนมสเปซ
edgemicro-system
คือตำแหน่งที่มีการติดตั้งบริการของระบบ รวมถึงตัวควบคุมขาเข้า แบ็กเอนด์ HTTP เริ่มต้น และตัวแทรกไฟล์ช่วยเหลือ: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
เรียกใช้สคริปต์เชิงโต้ตอบต่อไปนี้ และระบุพารามิเตอร์ที่ขอ คำสั่งจะสร้างโปรไฟล์การกำหนดค่าที่คุณจะใช้ในขั้นตอนถัดไป
./install/kubernetes/webhook-edgemicro-patch.sh
สำหรับข้อมูลเกี่ยวกับพารามิเตอร์อินพุต โปรดดูที่การอ้างอิง
ตัวอย่างอินพุต
Namespace to deploy application [default]:
กด Enter
Authenticate with OAuth Token ("n","Y") [N/y]
ป้อน n
Apigee username [required]:
ป้อนชื่อผู้ใช้ Apigee (อีเมล) ของคุณ เช่น
jdoe@google.com
Apigee password [required]:
ป้อนรหัสผ่าน Apigee
Apigee organization [required]:
ป้อนชื่อองค์กร Apigee
Apigee environment [required]:
ป้อนชื่อสภาพแวดล้อมสำหรับองค์กร เช่น "test"
Virtual Host [default]:
กด Enter
Is this Private Cloud ("n","y") [N/y]:
ป้อน n หากคุณใช้ระบบคลาวด์สาธารณะ
Edgemicro Key. Press Enter to generate:
กด Enter
Edgemicro Secret. Press Enter to generate:
กด Enter
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. *****************************************************************************************
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 ********************************************************************************************************
เรียกใช้คำสั่งที่ระบุไว้ในบรรทัดสุดท้ายของเอาต์พุต คำสั่ง
kubectl
นี้จะแทรกโปรไฟล์การกำหนดค่า Edge Microgateway ที่สร้างขึ้นลงใน Kuberneteskubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
ดูสถานะการแทรกเว็บฮุค โปรดทราบว่าไม่ได้เปิดใช้อยู่ในขณะนี้:
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
เรียกใช้คำสั่งนี้เพื่อเปิดใช้การแทรกเว็บฮุคสำหรับเว็บฮุค
kubectl label namespace default edgemicro-injection=enabled
ดูสถานะการแทรกเว็บฮุคอีกครั้ง โปรดทราบว่าตอนนี้มีการเปิดใช้แล้ว:
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
เพื่อออกจากคำสั่ง
ตอนนี้คุณก็พร้อมที่จะทดสอบการติดตั้งใช้งานไฟล์ช่วยเหลืออัตโนมัติของ Edge Microgateway แล้ว ไปที่ทดสอบพร็อกซีเพื่อดูขั้นตอนโดยละเอียด
ทดสอบพร็อกซี
เมื่อทำให้ไฟล์ช่วยเหลือใช้งานได้ ระบบจะสร้างพร็อกซี API สำหรับบริการให้คุณโดยอัตโนมัติ คุณไม่จำเป็นต้องสร้างพร็อกซี "Edge Microgateway-aware"
รับที่อยู่ IP ขาเข้า
คุณใช้ IP ภายนอกสำหรับข้อมูลขาเข้าเพื่อเรียกใช้บริการจากภายนอกคลัสเตอร์ได้
รับที่อยู่ IP ภายนอกของตัวควบคุมขาเข้า ดังนี้
kubectl get ing -o wide
ตัวอย่างเอาต์พุต
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1m
คัดลอกค่า
EXTERNAL-IP
ของข้อมูลขาเข้าและส่งออกไปยังตัวแปร คุณตั้งค่าตัวแปรด้วยตนเองได้โดยทำดังนี้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:]")
ยืนยันว่าส่งออกตัวแปรแล้ว เช่น
echo $GATEWAY_IP
ตัวอย่างเอาต์พุต
35.238.249.62
โทรหาบริการ:
curl $GATEWAY_IP
เอาต์พุต:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
ถัดไป คุณจะต้องแก้ไขข้อผิดพลาดในการให้สิทธิ์ที่ขาดหายไปด้วยการกำหนดค่าผลิตภัณฑ์ API และแอปนักพัฒนาซอฟต์แวร์ใน Edge เพื่อให้คุณรับคีย์ API ที่ถูกต้องได้ เมื่อคุณเพิ่มคีย์ในส่วนหัวการให้สิทธิ์สำหรับการเรียก API การเรียก API จะประสบความสำเร็จ และคุณจะไม่เห็นข้อผิดพลาดนี้
สร้างคอมโพเนนต์ใน Apigee Edge
ขั้นต่อไป ให้สร้างผลิตภัณฑ์ API และแอปสำหรับนักพัฒนาซอฟต์แวร์ใน Apigee Edge
สร้างผลิตภัณฑ์ API
- ลงชื่อเข้าสู่ระบบ Apigee Edge
- เลือกเผยแพร่ > ผลิตภัณฑ์ API ในเมนูการนำทางด้านข้าง
- คลิก + ผลิตภัณฑ์ API หน้าผลิตภัณฑ์จะปรากฏขึ้น
กรอกข้อมูลในหน้าผลิตภัณฑ์ดังนี้ สำหรับช่องที่ไม่ได้ระบุไว้ด้านล่างนี้ คุณสามารถใช้ค่าเริ่มต้นได้ อย่าบันทึกจนกว่าจะได้รับคำแนะนำ
ชื่อ hello-world-product
ชื่อที่แสดง Edge Micro hello product
สภาพแวดล้อม test
ในส่วนเส้นทาง ให้คลิก + ทรัพยากรที่กำหนดเอง
เพิ่มเส้นทาง
/
คลิก + ทรัพยากรที่กำหนดเองอีกครั้ง แล้วเพิ่มเส้นทาง
/**
ในส่วนพร็อกซี API ให้คลิก + พร็อกซี API แล้วเพิ่ม edgemicro-auth
บันทึกผลิตภัณฑ์ API
สร้างแอปนักพัฒนาซอฟต์แวร์
- เลือกแอปในเมนูนำทางด้านข้าง
- คลิก + แอป หน้ารายละเอียดแอปของนักพัฒนาซอฟต์แวร์จะปรากฏขึ้น
กรอกข้อมูลในหน้าแอปนักพัฒนาซอฟต์แวร์ดังต่อไปนี้ อย่าบันทึกจนกว่าจะได้รับคำแนะนำให้บันทึก
ชื่อ hello-world-app
ชื่อที่แสดง Edge Micro hello app
นักพัฒนาซอฟต์แวร์ เลือกนักพัฒนาซอฟต์แวร์จากเมนูแบบเลื่อนลง ในส่วนข้อมูลเข้าสู่ระบบ ให้คลิก + ผลิตภัณฑ์ และเลือก
hello-world-product
ที่คุณเพิ่งสร้างคลิกบันทึก
คุณกลับมาที่หน้าที่แสดงแอปนักพัฒนาซอฟต์แวร์ทั้งหมด
เลือกแอปที่เพิ่งสร้าง
hello-world-app
คลิกแสดงข้างคีย์ผู้ใช้
คัดลอกค่าของคีย์ผู้ใช้ ค่านี้คือคีย์ API ที่จะใช้ในการเรียก API ที่ปลอดภัยไปยังบริการ
helloworld
รอสักครู่ ระบบจะใช้เวลาสักครู่เพื่อซิงค์การเปลี่ยนแปลงที่คุณทำใน Apigee Edge เพื่อซิงค์กับอินสแตนซ์ของ Edge Microgateway ที่ทำให้ใช้งานได้ในคลัสเตอร์
เรียกใช้ API
หลังจากดึงการเปลี่ยนแปลงการกำหนดค่าเข้าไปในไมโครเกตเวย์แล้ว คุณจะทำการทดสอบต่อไปนี้ได้
เรียกใช้ API โดยไม่ต้องใช้คีย์ API คุณจะได้รับข้อความแสดงข้อผิดพลาดตามที่แสดงด้านล่าง
curl $GATEWAY_IP
ผลลัพธ์ที่คาดหวัง:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
คุณต้องมีคีย์ API จึงจะเรียก API ได้สำเร็จ
รับคีย์ผู้บริโภคจากแอปนักพัฒนาซอฟต์แวร์ที่คุณสร้าง ค่านี้คือคีย์ API ที่คุณต้องเรียกใช้พร็อกซีทดสอบ
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP
เช่น
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
เอาต์พุต:
Hello world
การตอบสนอง " Hello world" จะส่งคืนโดยบริการ helloworld ที่ทำให้ ใช้งานได้ในพ็อด การเรียกใช้บริการนั้นจะส่งผ่าน Edge Microgateway ก่อน ซึ่งเป็นที่ที่ทำการตรวจสอบสิทธิ์ หากเห็นการตอบกลับว่า "สวัสดีโลก" แสดงว่าคุณกำหนดค่า Edge Microgateway เป็นพร็อกซีไฟล์ช่วยเหลือในพ็อดบริการ helloworld เรียบร้อยแล้ว
ขั้นตอนถัดไปคือ
ดูหัวข้องานสำหรับข้อมูลเกี่ยวกับการเพิ่มปลั๊กอินที่กำหนดเอง การปรับขนาดการทำให้ใช้งานได้ การเปลี่ยนแปลงการกำหนดค่า และงานอื่นๆ ที่คุณต้องการดำเนินการ