Triển khai Edge Microgateway làm dịch vụ

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Giới thiệu

Chủ đề này giải thích cách chạy Edge Microgateway trong cụm Kubernetes dưới dạng một dịch vụ độc lập.

Để biết thêm thông tin, hãy xem nội dung Tích hợp Edge Microgateway với thông tin tổng quan về Kubernetes.

Trước khi bắt đầu

Hoàn thành các bước nêu trong Điều kiện tiên quyết.

Định cấu hình cổng nhỏ Edge

Lệnh sau đây định cấu hình Edge Microgateway cho tổ chức Apigee của bạn và triển khai proxy edgemicro-auth.

  1. 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 của bạn trên Edge (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ư thử nghiệm hoặc sản phẩm).

    • username: Địa chỉ email liên kết với tài khoản Apigee của bạn.

    Ví dụ

    edgemicro configure -o docs -e test -u jdoe@example.com

    Kết quả (ví dụ dưới đây) đượ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!
    

Triển khai Edge Microgateway như một dịch vụ

  1. Thực thi lệnh sau để triển khai Edge Microgateway dưới dạng một dịch vụ trong cụm Kubernetes:

    kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key
    -sec=edgemicro-secret -conf=file path of org-env-config.yaml)

    trong đó:

    • org – Tổ chức Apigee mà bạn đã chỉ định trong lệnh edgemicro configure.
    • env – Môi trường mà bạn đã chỉ định trong lệnh edgemicro configure.
    • edgemicro-key – Khoá được trả về từ lệnh edgemicro configure.
    • edgemicro-secret – Mã bí mật được trả về từ lệnh edgemicro configure.
    • file path of org-env-config.yaml – Đường dẫn đến tệp cấu hình Edge Micro được trả về từ lệnh edgemicro configure.

    Ví dụ:

    kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)

    Kết quả điểm dữ liệu:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. Sao chép và dán mã sau vào thiết bị đầu cuối của bạn. Mã này sẽ thiết lập bộ điều khiển lưu lượng vào để cho phép truy cập bên ngoài vào dịch vụ edge-microgateway. Bạn có thể cần nhấn Enter sau khi dán lệnh vào thiết bị đầu cuối:

    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
    

    Sau khi thành công, bạn sẽ thấy kết quả sau:

    ingress "edge-microgateway-ingress" created
    

    Bộ điều khiển Ingress hiện được định cấu hình để cho phép bên ngoài truy cập vào dịch vụ edge-microgateway.

Triển khai dịch vụ kiểm thử

Các bước sau đây sẽ triển khai một dịch vụ kiểm thử đơn giản cho cụm của bạn. Bộ điều khiển lưu lượng vào không cho phép gọi dịch vụ từ bên ngoài cụm. Sau đó, bạn sẽ định cấu hình Edge Microgateway để gọi dịch vụ làm mục tiêu. Bộ điều khiển Ingress cho phép bên ngoài truy cập vào dịch vụ edge-microgateway.

  1. Triển khai dịch vụ helloworld mẫu. Do Ingress không biết về dịch vụ này nên không thể gọi dịch vụ từ bên ngoài cụm.

    kubectl apply -f samples/helloworld/helloworld-service.yaml

    Kết quả điểm dữ liệu:

    service "helloworld" created deployment "helloworld" created
    
  2. Xác minh rằng quá trình triển khai thành công. Lưu ý rằng không có IP bên ngoài cho dịch vụ helloworld. Trong các bước sau, bạn sẽ định cấu hình Cổng vi mô Edge để truy cập vào IP nội bộ của dịch vụ.

    kubectl get services -n default

    Kết quả điểm dữ liệu:

    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
    

Định cấu hình Edge Microgateway để proxy cho dịch vụ

Lấy IP nội bộ cho dịch vụ helloworld rồi thêm dịch vụ đó làm mục tiêu của proxy "nhận biết cổng vi mô". Việc tạo một proxy "nhận biết cổng vi cổng" là một yêu cầu tiêu chuẩn của Edge Microgateway.

Xem thêm Những điều bạn cần biết về proxy nhận biết vi cổng.

Lấy IP nội bộ cho dịch vụ kiểm thử

  1. Lấy cổng và IP cụm nội bộ của dịch vụ helloworld:

    kubectl get services helloworld

    Kết quả điểm dữ liệu:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. Sao chép giá trị của CLUSTER-IPPORT. Ví dụ: trong ví dụ trên, các giá trị sau là: 10.55.254.2558081. Các giá trị cho hệ thống của bạn sẽ khác.

Tạo một proxy nhận biết cổng vào nhỏ trên Edge

  1. Đăng nhập vào giao diện người dùng Edge.
  2. Chọn cùng một tổ chức mà bạn đã chỉ định trước đó khi định cấu hình Edge Microgateway.
  3. Chọn Phát triển > Proxy API trong trình đơn điều hướng bên.
  4. Nhấp vào + Proxy. Trình hướng dẫn Tạo proxy sẽ mở ra.
  5. Trong trang trình hướng dẫn đầu tiên, hãy chọn Proxy ngược (phổ biến nhất).
  6. Nhấp vào Tiếp theo.
  7. Trong trang Chi tiết của trình hướng dẫn, định cấu hình như sau. Hãy nhớ điền vào trình hướng dẫn chính xác như được hiển thị. Đảm bảo tên proxy có tiền tố edgemicro_.

    1. Tên proxy: edgemicro_hello
    2. Đường dẫn cơ sở proxy: /hello

    3. API hiện tại: http://<cluster_ip>:<port>

      Ví dụ: http://10.55.254.255:8081

  8. Nhấp vào Tiếp theo.

  9. Trên trang Bảo mật của trình hướng dẫn, hãy chọn Pass through (none) (Thông qua (không có)).

  10. Nhấp vào Tiếp theo.

  11. Trên trang Virtual Hosts (Máy chủ ảo) của trình hướng dẫn, hãy chấp nhận các giá trị mặc định.

  12. Nhấp vào Tiếp theo.

  13. Trong trang Tạo của trình hướng dẫn, xem lại cài đặt proxy của bạn. Hãy nhớ chọn môi trường kiểm thử.

  14. Nhấp vào Build and Deploy (Tạo và triển khai).

Tạo nhà phát triển

Bạn có thể sử dụng một nhà phát triển hiện có để kiểm thử hoặc tạo một nhà phát triển mới như sau:

  1. Chọn Xuất bản > Nhà phát triển trong trình đơn điều hướng bên.
  2. Nhấp vào + Nhà phát triển.
  3. Điền vào hộp thoại để tạo nhà phát triển mới. Bạn có thể sử dụng bất kỳ tên/email nào của nhà phát triển mà bạn muốn.

Tạo một sản phẩm API

Tạo một sản phẩm API theo mô tả dưới đây. Bạn sẽ thêm hai proxy vào Sản phẩm: edgemicro-authedgemicro_hello.

Bạn có thể đọc thêm về các tuỳ chọn cấu hình Sản phẩm trong phần Những điều bạn cần biết về cấu hình sản phẩm API.

  1. Chọn Publish > API Products (Xuất bản > Sản phẩm API) trong trình đơn điều hướng bên.
  2. Nhấp vào + Sản phẩm API. Trang Chi tiết sản phẩm sẽ xuất hiện.
  3. Điền vào trang Chi tiết sản phẩm như sau. Đừng nhấp vào Lưu cho đến khi được hướng dẫn làm như vậy.

    Tên hello-world-product
    Tên hiển thị Edge Micro hello product
    Môi trường test
    Quyền truy cập Public
    Loại phê duyệt chính Automatic
  4. Ở nửa dưới của trang, hãy nhấp vào + Tài nguyên tuỳ chỉnh.

  5. Đặt tài nguyên thành / (một dấu gạch chéo).

  6. Chọn lại + Custom Resource (Tài nguyên tuỳ chỉnh) rồi thêm đường dẫn /**.

  7. Ở phần dưới của trang, hãy nhấp vào + Proxy API.

  8. Chọn proxy có tên edgemicro-auth.

  9. Nhấp lại vào + Proxy API.

  10. Chọn proxy nhận biết microgateway có tên edgemicro_hello.

  11. Nhấp vào Lưu.

Tạo ứng dụng dành cho nhà phát triển

  1. Chọn Xuất bản > Ứng dụng trong trình đơn điều hướng bên.
  2. Nhấp vào + Ứng dụng. Trang Thông tin chi tiết về ứng dụng dành cho nhà phát triển sẽ xuất hiện.
  3. Điền vào trang Ứng dụng của nhà phát triển như sau. Không Lưu cho đến khi được hướng dẫn thực hiện.

    Tên hello-world-app
    Tên hiển thị Edge Micro hello app
    Nhà phát triển Chọn nhà phát triển thử nghiệm mà bạn đã tạo hoặc bất kỳ nhà phát triển nào cũng được.
  4. Trong phần Thông tin xác thực, hãy nhấp vào + Sản phẩm rồi chọn sản phẩm bạn đã tạo: hello-world-product.

  5. Nhấp vào Lưu.

  6. Bạn đang quay lại trang liệt kê tất cả Ứng dụng của nhà phát triển.

  7. Chọn ứng dụng bạn vừa tạo, hello-world-app.

  8. Nhấp vào Hiển thị bên cạnh Khoá người dùng.

  9. Sao chép giá trị của Khoá người dùng. Giá trị này là khoá API mà bạn sẽ sử dụng để thực hiện lệnh gọi API bảo mật đến /hello.

  10. Hãy chờ ít phút. Sẽ mất vài phút để những thay đổi bạn đã thực hiện trên Apigee Edge đồng bộ hoá với thực thể của Edge Microgateway được triển khai trong cụm.

Kiểm tra proxy

Lấy địa chỉ IP của Ingress

Với IP bên ngoài cho Ingress, bạn có thể gọi dịch vụ Edge Microgateway từ bên ngoài cụm.

  1. Lấy địa chỉ IP bên ngoài của bộ điều khiển Ingress:

    kubectl get ing -o wide

    Kết quả điểm dữ liệu:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. Sao chép giá trị ADDRESS cho 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 sử dụng lệnh này để đặt cho bạn:

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. Xác minh rằng biến đã được xuất. Ví dụ:

    echo $GATEWAY_IP

    Kết quả điểm dữ liệu:

    35.238.249.62
    

Gọi API

Sau khi các thay đổi về cấu hình được kéo vào cổng vi mô, bạn có thể thử gọi API. Bạn sử dụng IP bộ điều khiển Ingress (mà bạn đã lưu trong biến GATEWAY_IP) để gọi API vì IP này cho phép bạn gọi proxy từ bên ngoài cụm Kubernetes. Quá trình ánh xạ từ Ingress đến Edge Microgateway được tạo ra khi bạn triển khai Edge Microgateway vào cụm.

  1. Gọi API mà không cần khoá API. Bạn sẽ thấy một thông báo lỗi như minh hoạ dưới đây:

    curl $GATEWAY_IP:80/hello/

    Kết quả đầu ra dự kiến:

    {"error":"missing_authorization","error_description":"Missing Authorization
    header"}
    

    Nếu thấy thông báo này, bạn có thể cần phải đợi thêm một chút cho đến khi quá trình đồng bộ hoá hoàn tất:

    {"message":"no match found for /hello/","status":404}
    

    Để thực hiện lệnh gọi API thành công, bạn cần có khoá API.

  2. Lấy Khoá người tiêu dùng từ ứng dụng dành cho 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:80/hello/

    Ví dụ:

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/

    Kết quả:

    Hello world
    

    Nếu thấy phản hồi "Hello world" (Xin chào thế giới), thì có nghĩa là bạn đã định cấu hình thành công Edge Microgateway để gọi dịch vụ helloworld bên trong cụm Kubernetes.

Tiếp theo là gì?

Hãy xem phần 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, thay đổi cấu hình và thực hiện các thao tác khác.