Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Giới thiệu
Chủ đề này giải thích cách chạy Edge Microgateway trong một cụm Kubernetes dưới dạng proxy phụ. Bạn có hai lựa chọn để triển khai sidecar: chèn thủ công và tự động. Chủ đề này mô tả cả hai lựa chọn.
Để biết thêm thông tin, hãy xem bài viết Giới thiệu về Edge Microgateway trên Kubernetes.
Trước khi bắt đầu
Hoàn tất các bước được mô tả trong phần Điều kiện tiên quyết.
Triển khai dịch vụ kiểm thử
Triển khai một dịch vụ "hello" đơn giản và xác minh việc triển khai:
Triển khai mẫu:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Xác minh rằng dịch vụ đang chạy. Bạn có thể cần đợi một vài phút cho đến khi nhóm này chuyển sang trạng thái đang chạy:
kubectl get pods --namespace=default
Ví dụ về đầu ra:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17mXoá hoạt động triển khai dịch vụ kiểm thử. Bạn sẽ cài đặt lại sau khi bật tính năng chèn sidecar:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
Sử dụng tính năng chèn sidecar theo cách thủ công
Trong số 2 lựa chọn tiêm vùng phụ, việc tiêm vùng phụ theo cách thủ công là phương pháp đơn giản và dễ hiểu hơn, đồng thời có thể thực hiện bằng một lệnh kubectl duy nhất.
Định cấu hình Edge Microgateway
Lệnh sau đây sẽ định cấu hình Edge Microgateway cho tổ chức Apigee của bạn và triển khai proxy edgemicro-auth.
Thực thi lệnh sau:
edgemicro configure -o [org] -e [env] -u [username]
Trong trường hợp:
org: Tên tổ chức Edge của bạn (bạn phải là quản trị viên tổ chức).env: Một môi trường trong tổ chức của bạn (chẳng hạn như môi trường kiểm thử hoặc môi trường phát hành công khai).username: Địa chỉ email được liên kết với tài khoản Apigee của bạn.
Ví dụ
edgemicro configure -o myorg -e test -u jdoe@example.com
Đầu ra (ví dụ minh hoạ bên dưới) được lưu vào tệp:
.$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!
Chèn Edge Microgateway dưới dạng một sidecar
Để chèn Edge Microgateway vào một nhóm dịch vụ theo cách thủ công dưới dạng một proxy phụ, hãy thực thi lệnh sau:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)
trong đó:
your_org– Tổ chức Apigee mà bạn đã chỉ định trong lệnhedgemicro configure.your_env– Môi trường mà bạn đã chỉ định trong lệnhedgemicro configure.your_key– Khoá được trả về từ lệnhedgemicro configure.your_secret– Khoá bí mật do lệnhedgemicro configuretrả về.config_file_path– Đường dẫn đến tệp cấu hình Edge Micro được trả về từ lệnhedgemicro configure.service_deployment_file– Đường dẫn đến tệp triển khai của dịch vụ mà nhóm sẽ nhận được dịch vụ phụ trợ đi kèm. Ví dụ:samples/helloworld/helloworld.yaml.
Ví dụ:
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)
Kiểm thử cấu hình
Kiểm tra việc triển khai dịch vụ:
kubectl get services -n default
Ví dụ về đầu ra:
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 41mGiờ đây, bạn đã sẵn sàng kiểm thử việc triển khai sidecar của Edge Microgateway. Hãy xem phần Kiểm thử proxy để biết các bước chi tiết.
Sử dụng tính năng tự động chèn sidecar
Trong các bước sau, bạn sẽ định cấu hình tính năng tự động chèn vùng chứa phụ cho cụm Kubernetes. Chế độ thiết lập này cho phép Edge Microgateway được chèn dưới dạng một proxy phụ vào Kubernetes.
Cài đặt trình chèn sidecar
Cài đặt ConfigMap cho phép truyền sidecar của Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
Thực thi tập lệnh sau để cài đặt dịch vụ webhook. Bạn phải có dịch vụ webhook để tự động chèn tệp trợ giúp:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certsThêm gói CA vào tệp cài đặt webhook. Kubernetes api-server sử dụng tệp này để gọi webhook:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yamlCài đặt webhook của trình chèn phụ Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
Ví dụ về đầu ra:
service "edgemicro-sidecar-injector" created serviceaccount "edgemicro-sidecar-injector-service-account" created deployment "edgemicro-sidecar-injector" created mutatingwebhookconfiguration "edgemicro-sidecar-injector" createdXác minh rằng webhook của trình chèn phụ Edge Microgateway đang chạy:
kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
Ví dụ về đầu ra:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edgemicro-sidecar-injector 1 1 1 1 12mXác minh rằng pod chèn sidecar đang chạy trong cụm của bạn. Không gian tên
edgemicro-systemlà nơi các dịch vụ hệ thống được cài đặt, bao gồm cả bộ điều khiển Ingress, phần phụ trợ HTTP mặc định và trình chèn phụ:kubectl get pods -n edgemicro-system
Ví dụ về đầu ra:
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
Định cấu hình và chèn Edge Microgateway
Trong bước tiếp theo, bạn sẽ chạy một tập lệnh tương tác để tạo cấu hình Edge Microgateway được liên kết với một không gian tên Kubernetes. Sau đó, bạn sẽ chèn cấu hình vào cụm Kubernetes.
Chạy tập lệnh tương tác sau đây và cung cấp các tham số được yêu cầu. Lệnh này sẽ tạo một hồ sơ cấu hình mà bạn sẽ dùng trong bước tiếp theo.
./install/kubernetes/webhook-edgemicro-patch.sh
Để biết thông tin về các tham số đầu vào, hãy xem phần Tài liệu tham khảo.
Ví dụ về dữ liệu đầu vào:
Namespace to deploy application [default]:Nhấn Enter.
Authenticate with OAuth Token ("n","Y") [N/y]Nhập n.
Apigee username [required]:Nhập tên người dùng Apigee (địa chỉ email). Ví dụ:
jdoe@google.com.Apigee password [required]:Nhập mật khẩu Apigee của bạn.
Apigee organization [required]:Nhập tên tổ chức Apigee của bạn.
Apigee environment [required]:Nhập tên môi trường cho tổ chức của bạn. Ví dụ: "test".
Virtual Host [default]:Nhấn Enter.
Is this Private Cloud ("n","y") [N/y]:Nhập n nếu bạn đang sử dụng Đám mây công cộng.
Edgemicro Key. Press Enter to generate:Nhấn Enter.
Edgemicro Secret. Press Enter to generate:Nhấn Enter.
Edgemicro org-env-config.yaml. Press Enter to generate:Nhấn Enter.
Ví dụ về đầu ra:
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]:Nhập y.
Ví dụ về đầu ra:
Configuring Microgateway with key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84 secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0 config:~/.edgemicro/jdoe-test-config.yaml ******************************************************************************************************** kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml ********************************************************************************************************
Thực thi lệnh được đưa ra ở dòng cuối cùng của đầu ra. Lệnh
kubectlnày sẽ chèn hồ sơ cấu hình Edge Microgateway đã tạo vào Kubernetes:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
Xem trạng thái của việc chèn webhook. Xin lưu ý rằng tính năng này hiện chưa được bật:
kubectl get namespace -L edgemicro-injection
Ví dụ về đầu ra:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d edgemicro-system Active 1d kube-public Active 1d kube-system Active 1dChạy lệnh này để bật tính năng chèn webhook cho webhook:
kubectl label namespace default edgemicro-injection=enabled
Xem lại trạng thái của việc chèn webhook. Xin lưu ý rằng hiện tại, tính năng này đã được bật:
kubectl get namespace -L edgemicro-injection
Ví dụ về đầu ra:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d enabled edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
Triển khai dịch vụ kiểm thử
Bây giờ, hãy triển khai lại dịch vụ kiểm thử. Edge Microgateway sẽ tự động được chèn vào pod của dịch vụ.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Xác nhận rằng Edge Microgateway đã được chèn vào nhóm cùng với dịch vụ kiểm thử:
kubectl get pods --namespace=default --watch
Ví dụ về đầu ra:
NAME READY STATUS RESTARTS AGE
helloworld-6987878fc4-pkw8h 0/2 PodInitializing 0 12s
helloworld-6987878fc4-pkw8h 2/2 Running 0 26s
Khi trạng thái thay đổi thành Running, hãy nhấn ctrl-c để thoát lệnh.
Giờ đây, bạn đã sẵn sàng kiểm thử việc triển khai sidecar tự động của Edge Microgateway. Hãy xem phần Kiểm thử proxy để biết các bước chi tiết.
Kiểm thử proxy
Với việc triển khai sidecar, một proxy API cho dịch vụ của bạn sẽ được tạo tự động. Bạn không cần tạo một proxy "có nhận biết Edge Microgateway".
Lấy địa chỉ IP của Ingress
Với IP ngoài cho Ingress, bạn có thể gọi dịch vụ từ bên ngoài cụm.
Lấy địa chỉ IP bên ngoài của bộ điều khiển Ingress:
kubectl get ing -o wide
Ví dụ về đầu ra:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1mSao chép giá trị
EXTERNAL-IPcho Ingress và xuất giá trị đó sang một biến. Bạn có thể đặt biến theo cách thủ công:export GATEWAY_IP=external_ip
Ví dụ:
export GATEWAY_IP=35.238.249.62
Hoặc dùng lệnh này để đặt cho bạn:
export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
Xác minh rằng biến đã được xuất. Ví dụ:
echo $GATEWAY_IP
Ví dụ về đầu ra:
35.238.249.62Gọi dịch vụ:
curl $GATEWAY_IP
Kết quả:
{"error":"missing_authorization","error_description":"Missing Authorization header"}Tiếp theo, bạn sẽ giải quyết lỗi thiếu quyền uỷ quyền bằng cách định cấu hình một sản phẩm API và ứng dụng dành cho nhà phát triển trên Edge để có thể nhận được một khoá API hợp lệ. Khi bạn thêm khoá vào tiêu đề uỷ quyền cho lệnh gọi API, lệnh gọi sẽ thành công và bạn sẽ không thấy lỗi này.
Tạo thành phần trên Apigee Edge
Tiếp theo, hãy tạo một sản phẩm API và một ứng dụng dành cho nhà phát triển trên Apigee Edge.
Tạo một sản phẩm API
- Đăng nhập vào Apigee Edge.
- Chọn Xuất bản > Sản phẩm API trong trình đơn điều hướng bên.
- Nhấp vào + API Product (Sản phẩm API). Trang sản phẩm xuất hiện.
Điền thông tin vào Trang sản phẩm như sau. Đối với những trường không được đề cập bên dưới, bạn có thể sử dụng giá trị mặc định. Đừng lưu cho đến khi có hướng dẫn.
Tên hello-world-productTên hiển thị Edge Micro hello productMôi trường testTrong phần Path (Đường dẫn), hãy nhấp vào + Custom Resource (Tài nguyên tuỳ chỉnh).
Thêm đường dẫn
/.Nhấp lại vào + Tài nguyên tuỳ chỉnh rồi thêm đường dẫn
/**Trong phần API Proxies (API Proxy), hãy nhấp vào + API Proxy rồi thêm edgemicro-auth.
Lưu API Product.
Tạo một ứng dụng dành cho nhà phát triển
- Chọn Ứng dụng trong trình đơn điều hướng bên.
- Nhấp vào + Ứng dụng. Trang Thông tin chi tiết về ứng dụng của nhà phát triển sẽ xuất hiện.
Điền thông tin vào trang Ứng dụng của nhà phát triển như sau. Đừng lưu cho đến khi có hướng dẫn.
Tên hello-world-appTên hiển thị Edge Micro hello appNhà phát triển Chọn một nhà phát triển trong trình đơn thả xuống. Trong phần Thông tin xác thực, hãy nhấp vào + Sản phẩm rồi chọn
hello-world-productmà bạn vừa tạo.Nhấp vào Lưu.
Bạn sẽ quay lại trang liệt kê tất cả các ứng dụng của nhà phát triển.
Chọn ứng dụng bạn vừa tạo,
hello-world-app.Nhấp vào Hiện bên cạnh Khoá người dùng.
Sao chép giá trị của Khoá người dùng. Giá trị này là khoá API mà bạn sẽ dùng để thực hiện các lệnh gọi API bảo mật đến dịch vụ
helloworld.Chờ vài phút. Những thay đổi mà bạn thực hiện trên Apigee Edge sẽ mất vài phút để đồng bộ hoá với phiên bản Edge Microgateway được triển khai trong cụm.
Gọi API
Sau khi các thay đổi về cấu hình được đưa vào microgateway, bạn có thể thực hiện các kiểm thử sau.
Gọi API mà không có khoá API. Bạn sẽ nhận được thông báo lỗi như minh hoạ dưới đây:
curl $GATEWAY_IP
Kết quả đầu ra dự kiến:
{"error":"missing_authorization","error_description":"Missing Authorization header"}Để thực hiện thành công các lệnh gọi API, bạn cần có khoá API.
Lấy khoá của người dùng từ ứng dụng Nhà phát triển mà bạn đã tạo. Giá trị này là khoá API mà bạn cần gọi proxy kiểm thử:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP
Ví dụ:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
Kết quả:
Hello worldPhản hồi "Hello world" được trả về bởi dịch vụ helloworld được triển khai cho nhóm. Lệnh gọi đến dịch vụ đó trước tiên sẽ đi qua Edge Microgateway, nơi quá trình xác thực được thực hiện. Nếu thấy phản hồi "Hello world", tức là bạn đã định cấu hình thành công Edge Microgateway để hoạt động như một proxy phụ trong nhóm dịch vụ helloworld.
Tiếp theo là gì?
Hãy xem phần Tasks (Tác vụ) để biết thông tin về cách thêm trình bổ trợ tuỳ chỉnh, mở rộng quy mô triển khai, thực hiện các thay đổi về cấu hình và các tác vụ khác mà bạn có thể muốn thực hiện.