คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ
Apigee X info
บทนำ
หัวข้อนี้อธิบายวิธีเรียกใช้ Edge Microgateway ในคลัสเตอร์ Kubernetes เป็นพร็อกซีแบบ Sidecar คุณมี 2 ตัวเลือกสำหรับการติดตั้งใช้งาน Sidecar ได้แก่ การแทรกด้วยตนเองและการแทรกอัตโนมัติ หัวข้อนี้จะอธิบายทั้ง 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ลบการทำให้บริการทดสอบใช้งาน คุณจะติดตั้งอีกครั้งในภายหลังหลังจากเปิดใช้ การแทรก Sidecar แล้ว
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
การใช้การแทรก Sidecar ด้วยตนเอง
ในตัวเลือกการแทรก Sidecar ทั้ง 2 แบบ การแทรก Sidecar ด้วยตนเองเป็นวิธีที่ง่ายและตรงไปตรงมามากกว่า
และทำได้ด้วยคำสั่งเดียว 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 เป็น Sidecar
หากต้องการแทรก Edge Microgateway ลงในพ็อดบริการด้วยตนเองเป็นพร็อกซีแบบ Sidecar ให้เรียกใช้คำสั่งนี้
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 configureyour_env- สภาพแวดล้อมที่คุณระบุในคำสั่งedgemicro configureyour_key- คีย์ที่แสดงผลจากคำสั่งedgemicro configureyour_secret- Secret ที่แสดงผลจากคำสั่งedgemicro configureconfig_file_path- เส้นทางไปยังไฟล์การกำหนดค่า Edge Micro ที่แสดงจากคำสั่งedgemicro configureservice_deployment_file- เส้นทางไปยังไฟล์การติดตั้งใช้งานของบริการที่พ็อดจะรับบริการ Sidecar ที่เกี่ยวข้อง ตัวอย่างเช่น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ตอนนี้คุณก็พร้อมที่จะทดสอบการติดตั้งใช้งาน Sidecar ของ Edge Microgateway แล้ว โปรดไปที่ ทดสอบพร็อกซีเพื่อดูขั้นตอนโดยละเอียด
การใช้การแทรก Sidecar อัตโนมัติ
ในขั้นตอนต่อไปนี้ คุณจะกำหนดค่าการแทรก Sidecar อัตโนมัติสำหรับคลัสเตอร์ Kubernetes การตั้งค่านี้ช่วยให้สามารถแทรก Edge Microgateway เป็นพร็อกซีแบบ Sidecar ลงใน Kubernetes ได้
ติดตั้งโปรแกรมฉีด Sidecar
ติดตั้ง ConfigMap ที่เปิดใช้การแทรก Sidecar ของ Edge Microgateway
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
เรียกใช้สคริปต์ต่อไปนี้เพื่อติดตั้งบริการ Webhook ต้องใช้บริการเว็บฮุคสำหรับการ แทรก Sidecar อัตโนมัติ
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certsเพิ่มชุดใบรับรอง CA ลงในไฟล์การติดตั้งเว็บฮุค Kubernetes api-server ใช้ไฟล์นี้เพื่อเรียกใช้ Webhook
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yamlติดตั้ง Webhook ของโปรแกรมแทรก Sidecar ของ Edge Microgateway
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ตรวจสอบว่า Webhook ของโปรแกรมแทรก Sidecar ของ Edge Microgateway ทำงานอยู่ด้วยคำสั่งต่อไปนี้
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ตรวจสอบว่าพ็อดการแทรก Sidecar ทำงานอยู่ในคลัสเตอร์ เนมสเปซ
edgemicro-systemคือตำแหน่งที่ติดตั้งบริการของระบบ ซึ่งรวมถึง ตัวควบคุม Ingress, Backend HTTP เริ่มต้น และตัวแทรก Sidecarkubectl 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.comApigee 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
ดูสถานะการแทรก Webhook โปรดทราบว่าขณะนี้ยังไม่ได้เปิดใช้
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
ดูสถานะการแทรก Webhook อีกครั้ง โปรดทราบว่าเมื่อเปิดใช้แล้ว
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 เพื่อออกจากคำสั่ง
ตอนนี้คุณก็พร้อมทดสอบการติดตั้งใช้งาน Sidecar อัตโนมัติของ Edge Microgateway แล้ว โปรดไปที่ ทดสอบพร็อกซีเพื่อดูขั้นตอนโดยละเอียด
ทดสอบพร็อกซี
การติดตั้งใช้งาน Sidecar จะสร้างพร็อกซี API สำหรับบริการของคุณโดยอัตโนมัติ คุณไม่จำเป็นต้องสร้างพร็อกซีที่ "Edge Microgateway-aware"
รับที่อยู่ IP ของ Ingress
เมื่อมี IP ภายนอกสำหรับ Ingress คุณจะเรียกใช้บริการจากภายนอกคลัสเตอร์ได้
รับที่อยู่ IP ภายนอกของตัวควบคุม Ingress โดยทำดังนี้
kubectl get ing -o wide
ตัวอย่างเอาต์พุต
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1mคัดลอก
EXTERNAL-IPค่าสำหรับ Ingress แล้วส่งออกไปยังตัวแปร คุณ ตั้งค่าตัวแปรด้วยตนเองได้โดยทำดังนี้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 การเรียกจะสำเร็จและคุณจะไม่เห็นข้อผิดพลาดนี้
สร้างคอมโพเนนต์ใน 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 จะใช้เวลา 2-3 นาทีในการซิงค์กับอินสแตนซ์ของ Edge Microgateway ที่ติดตั้งใช้งานใน คลัสเตอร์
เรียก API
หลังจากดึงการเปลี่ยนแปลงการกำหนดค่าลงใน Microgateway แล้ว คุณจะ ทำการทดสอบต่อไปนี้ได้
เรียกใช้ 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บริการ helloworld ที่ติดตั้งใช้งานในพ็อดจะแสดงการตอบกลับ "Hello world" การเรียกใช้บริการนั้นจะผ่าน Edge Microgateway ก่อน ซึ่งจะมีการตรวจสอบสิทธิ์ หากเห็นการตอบกลับ "Hello world" แสดงว่าคุณกําหนดค่า Edge Microgateway ให้ทํางานเป็นพร็อกซีแบบ Sidecar ในพ็อดบริการ helloworld ได้สําเร็จ
ขั้นตอนต่อไปคืออะไร
ดูข้อมูลเกี่ยวกับการเพิ่มปลั๊กอินที่กำหนดเอง การปรับขนาดการติดตั้งใช้งาน การทำการเปลี่ยนแปลงการกำหนดค่า และงานอื่นๆ ที่คุณอาจต้องการทำได้ที่ส่วนงาน