Triển khai Edge Microgateway như một proxy phụ trợ

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 proxy trợ giúp. Bạn có hai lựa chọn triển khai trợ giúp: thủ công và tự động tiêm. Chủ đề này mô tả cả hai lựa chọn.

Để biết thêm thông tin, hãy xem nội dung Giới thiệu về Edge Microgateway trên Kubernetes.

Trước khi bắt đầu

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

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

Triển khai lời chào đơn giản và xác minh quá trình triển khai:

  1. Triển khai mẫu:

    kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
  2. Xác minh rằng dịch vụ đang chạy. Bạn có thể phải đợi vài giây cho đến nhóm sẽ quay theo trạng thái đang chạy:

    kubectl get pods --namespace=default

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

    NAME                          READY     STATUS    RESTARTS   AGE
    helloworld-569d6565f9-lwrrv   1/1       Running   0          17m
    
  3. Xoá quá trình triển khai dịch vụ kiểm thử. Bạn sẽ cài đặt lại thẻ này vào lúc khác, sau khi bật chèn quảng cáo trợ giúp:

     kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default

Sử dụng tính năng chèn trợ giúp thủ công

Trong số hai lựa chọn chèn quảng cáo trợ giúp, thì chế độ chèn trợ giúp thủ công là lựa chọn đơn giản và dễ hiểu hơn phương thức tiếp cận và có thể được thực hiện bằng một lệnh kubectl.

Định cấu hình Edge Microgateway

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ô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 myorg -e test -u jdoe@example.com

    Dữ liệu đầu ra (ví dụ 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 làm trợ lý

Để chèn Edge Microgateway vào một nhóm dịch vụ theo cách thủ công dưới dạng proxy trợ giúp, hãy thực thi lệnh này:

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ệnh edgemicro configure.
  • your_env – Môi trường mà bạn đã chỉ định trong lệnh edgemicro configure.
  • your_key – Khoá được trả về qua lệnh edgemicro configure.
  • your_secret – Khoá bí mật được trả về từ lệnh edgemicro configure.
  • config_file_path – Đường dẫn đến tệp cấu hình Edge Micro được trả về từ lệnh edgemicro configure.
  • service_deployment_file – Đường dẫn đến tệp triển khai của dịch vụ có nhóm sẽ tải dịch vụ trợ giúp đồng hành. 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

  1. Kiểm tra các đợt triển khai 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
    helloworld   NodePort    10.15.254.163   <none>        8081:32401/TCP   56s
    kubernetes   ClusterIP   10.15.240.1     <none>        443/TCP          41m
    
  2. Bây giờ, bạn đã sẵn sàng kiểm tra việc triển khai trợ giúp của Edge Microgateway. Chuyển đến Thử nghiệm proxy để biết các bước chi tiết.

Sử dụng tính năng chèn trợ giúp tự động

Trong các bước sau, bạn sẽ định cấu hình tính năng chèn trợ giúp tự động cho cụm Kubernetes. Chế độ thiết lập này cho phép đưa Edge Microgateway vào làm chương trình trợ giúp proxy vào Kubernetes.

Cài đặt bộ nhập trợ giúp

  1. Cài đặt ConfigMap cho phép chèn trợ lý của Edge Microgateway:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
  2. Thực thi tập lệnh sau để cài đặt dịch vụ webhook. Bắt buộc phải có dịch vụ webhook cho chèn trợ giúp tự động:

    ./install/kubernetes/webhook-create-signed-cert.sh \
        --service edgemicro-sidecar-injector \
        --namespace edgemicro-system \
        --secret sidecar-injector-certs
    
  3. Thê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.yaml
    
  4. Cài đặt webhook của bộ nhập tín hiệu trợ giúp của Edge Microgateway:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    

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

    service "edgemicro-sidecar-injector" created
    serviceaccount "edgemicro-sidecar-injector-service-account" created
    deployment "edgemicro-sidecar-injector" created
    mutatingwebhookconfiguration "edgemicro-sidecar-injector" created
    
  5. Xác minh rằng webhook của bộ chèn trợ giúp của Edge Microgateway đang chạy:

    kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
    

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

    NAME                         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    edgemicro-sidecar-injector   1         1         1            1           12m
    
  6. Xác minh rằng nhóm tiêm trợ giúp đang chạy trong cụm của bạn. Không gian tên edgemicro-system là nơi các dịch vụ hệ thống được cài đặt, bao gồm Bộ điều khiển đầu vào, phần phụ trợ HTTP mặc định và bộ nhập tệp trợ giúp:

    kubectl get pods -n edgemicro-system

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

    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 Edge Microgateway cấu hình được liên kết với một không gian tên Kubernetes. Sau đó, bạn sẽ chèn vào cụm Kubernetes của bạn.

  1. Chạy tập lệnh tương tác sau đây và cung cấp các thông số được yêu cầu. Chiến lược phát hành đĩa đơn tạo một hồ sơ cấu hình mà bạn sẽ 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 Tài liệu tham khảo.

    Dữ liệu đầu vào mẫu:

    1. Namespace to deploy application [default]:

      Nhấn Enter.

    2. Authenticate with OAuth Token ("n","Y") [N/y]

      Nhập n.

    3. Apigee username [required]:

      Nhập tên người dùng (địa chỉ email) Apigee của bạn. Ví dụ: jdoe@google.com.

    4. Apigee password [required]:

      Nhập mật khẩu Apigee.

    5. Apigee organization [required]:

      Nhập tên tổ chức Apigee của bạn.

    6. Apigee environment [required]:

      Nhập tên môi trường cho tổ chức của bạn. Ví dụ: "test".

    7. Virtual Host [default]:

      Nhấn Enter.

    8. 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.

    9. Edgemicro Key. Press Enter to generate:

      Nhấn Enter.

    10. Edgemicro Secret. Press Enter to generate:

      Nhấn Enter.

    11. Edgemicro org-env-config.yaml. Press Enter to generate:

      Nhấn Enter.

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

      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.
      *****************************************************************************************
      
    12. Do you agree to proceed("n","y") [N/y]:

      Nhập y.

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

      Configuring Microgateway with
      
      key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84
      secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0
      config:~/.edgemicro/jdoe-test-config.yaml
      
      ********************************************************************************************************
      kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
      ********************************************************************************************************
      
  2. Thực thi lệnh đã cho ở dòng cuối cùng của kết quả. Lệnh kubectl này 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
  3. Xem trạng thái 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

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

    NAME               STATUS    AGE       EDGEMICRO-INJECTION
    default            Active    1d
    edgemicro-system   Active    1d
    kube-public        Active    1d
    kube-system        Active    1d
    
  4. Chạy lệnh này để bật tính năng chèn webhook cho webhook:

    kubectl label namespace default edgemicro-injection=enabled
  5. Xem lại trạng thái chèn webhook. Lưu ý rằng tính năng này hiện đã được bật:

    kubectl get namespace -L edgemicro-injection

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

    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 đưa vào vào nhóm của dịch vụ.

kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default

Xác nhận rằng Edge Microgateway đã được đưa vào nhóm cùng với thử nghiệm dịch vụ:

kubectl get pods --namespace=default --watch

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

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, nhấn ctrl-c để thoát khỏi lệnh.

Bây giờ, bạn đã sẵn sàng thử nghiệm tính năng tự động triển khai trợ giúp của Edge Microgateway. Chuyển đến Thử nghiệm proxy để biết các bước chi tiết.

Kiểm tra proxy

Với tính năng triển khai trợ giúp, một proxy API dành cho dịch vụ của bạn sẽ được tạo tự động cho bạn. Bạn có thể không cần phải tạo một giải pháp "nhận biết cạnh Microgateway" proxy.

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

Với IP ngoài cho lưu lượng vào, bạn có thể gọi dịch vụ từ bên ngoài cụm.

  1. Lấy địa chỉ IP bên ngoài của Bộ điều khiển lưu lượng vào:

    kubectl get ing -o wide

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

    NAME      HOSTS     ADDRESS        PORTS     AGE
    gateway   *         35.238.13.54   80        1m
    
  2. Sao chép giá trị EXTERNAL-IP cho Lưu lượng vào 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 sau để thiết lập cho bạn:

    export GATEWAY_IP=$(kubectl describe ing gateway --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
    
  4. Gọ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 uỷ quyền bằng cách định cấu hình sản phẩm API và ứng dụng của nhà phát triển trên Edge để bạn có thể nhận được khoá API hợp lệ. Khi bạn thêm khoá vào một yêu cầu uỷ quyền cho lệnh gọi API, thì 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

  1. Đăng nhập vào Apigee Edge.
  2. Chọn Xuất bản > Sản phẩm API trong trình đơn điều hướng bên.
  3. Nhấp vào + Sản phẩm API. Trang sản phẩm xuất hiện.
  4. Điền vào trang Sản phẩm như sau. Đối với các trường không được đề cập bên dưới, bạn có thể sử dụng các giá trị mặc định. Không Lưu cho đến khi được hướng dẫn thực hiện việc này.

    Tên hello-world-product
    Tên hiển thị Edge Micro hello product
    Môi trường test

  5. Trong mục Đường dẫn, hãy nhấp vào + Tài nguyên tuỳ chỉnh.

  6. Thêm đường dẫn /.

  7. Nhấp lại vào + Tài nguyên tuỳ chỉnh rồi thêm đường dẫn /**

  8. Trong phần Proxy API, hãy nhấp vào + Proxy API rồi thêm edgemicro-auth.

  9. Lưu sản phẩm API.

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

  1. Chọ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 dành cho nhà phát triển như sau. Không Lưu cho đến khi được hướng dẫn làm như vậy.

    Tên hello-world-app
    Tên hiển thị Edge Micro hello app
    Nhà phát triển Chọn một nhà phát triển trong trình đơn thả xuống.
  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 hello-world-product mà bạn vừa tạo.

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

  6. Bạn sẽ 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 tiêu 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ẽ dùng để thực hiện lệnh gọi API bảo mật dịch vụ helloworld.

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

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ực hiện các kiểm thử sau.

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

    curl $GATEWAY_IP

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

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

    Để 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 trong ứng dụng dành cho Nhà phát triển mà bạn đã tạo. Giá trị này là Khoá API 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 world
    

    Dòng chữ "Hello world" (Xin chào mọi người) phản hồi được trả về bởi dịch vụ helloworld được triển khai cho nhóm. Cuộc gọi đến dịch vụ đó được chuyển qua Edge Microgateway trước tiên, nơi thực hiện xác thực. Nếu bạn thấy thông báo "Hello world" (Xin chào mọi người) thì tức là bạn đã định cấu hình thành công Edge Microgateway để hoạt động như một proxy trợ giúp trong nhóm dịch vụ helloworld.

Tiếp theo là gì?

Xem phần Nhiệm vụ để biết thông tin về việc thêm các trình bổ trợ tuỳ chỉnh, mở rộng quy mô triển khai, thay đổi cấu hình và các công việc khác mà bạn có thể muốn thực hiện.