คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
บทนำ
หัวข้อนี้อธิบายวิธีเรียกใช้ Edge Microgateway ในคลัสเตอร์ Kubernetes เป็น พร็อกซีไฟล์ช่วยเหลือ คุณมี 2 ตัวเลือกในการติดตั้งใช้งานไฟล์ช่วยเหลือ ได้แก่ ด้วยตนเองและแบบอัตโนมัติ แบบฉีดได้ หัวข้อนี้จะอธิบายตัวเลือกทั้งสอง
ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลเบื้องต้นเกี่ยวกับ Edge Microgateway บน Kubernetes
ก่อนเริ่มต้น
ทำตามขั้นตอนที่อธิบายไว้ในข้อกำหนดเบื้องต้น
ทำให้บริการทดสอบใช้งานได้
ใช้งาน "สวัสดี" แบบง่าย บริการและยืนยันการทำให้ใช้งานได้
ทำให้ตัวอย่างใช้งานได้:
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 ลงในไฟล์การติดตั้งเว็บฮุค Kubernetes API-server ใช้ไฟล์นี้เพื่อเรียกใช้เว็บฮุค
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
ติดตั้งเว็บฮุคของตัวแทรกติดตามไฟล์ช่วยเหลือ 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
ตรวจสอบว่าเว็บฮุคของตัวแทรกไฟล์ช่วยเหลือ 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
ตรวจสอบว่าพ็อดการแทรกไฟล์ช่วยเหลือกำลังทำงานในคลัสเตอร์ของคุณ เนมสเปซ
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 ที่สร้างขึ้นใน Kubernetes:kubectl 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 การเรียกจะสำเร็จ และคุณจะไม่เห็นข้อผิดพลาดนี้
สร้างคอมโพเนนต์บน 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
ฟีเจอร์ "สวัสดีโลก" แสดงการตอบสนองโดยบริการ Helloworld ที่ทำให้ใช้งานได้ กับพ็อด การเรียกบริการนั้นผ่าน Edge Microgateway ก่อน ที่มีการดำเนินการตรวจสอบสิทธิ์ หากคุณเห็นหน้าจอ "สวัสดีโลก" แสดงว่าคุณได้กำหนดค่า Edge Microgateway เป็น สำเร็จแล้ว ทำหน้าที่เป็นพร็อกซีไฟล์ช่วยเหลือในพ็อดบริการของ Helloworld
ขั้นตอนถัดไปคือ
โปรดดูข้อมูลในส่วน Tasks ในการเพิ่มปลั๊กอินที่กำหนดเอง การปรับขนาดการทำให้ใช้งานได้ การเปลี่ยนแปลงการกำหนดค่า และ งานอื่นๆ ที่คุณอาจต้องการทำ