查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
簡介
本主題說明如何在 Kubernetes 叢集中執行 Edge Microgateway 獨立服務。
詳情請參閱「將 Edge Microgateway 與 Kubernetes 整合」一文。
事前準備
完成必要條件中所述步驟。
設定 Edge Microgateway
下列指令可為您的 Apigee 機構設定 Edge Microgateway
及部署 Proxy edgemicro-auth
。
執行下列指令:
edgemicro configure -o [org] -e [env] -u [username]
在此情況下:
org
:您的 Edge 機構名稱 (您必須是機構組織管理員)。env
:貴機構的環境 (例如測試或實際工作環境)。username
:與您的 Apigee 帳戶相關聯的電子郵件地址。
範例
edgemicro configure -o docs -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 做為服務部署在您的 Kubernetes 叢集:
kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key -sec=edgemicro-secret -conf=file path of org-env-config.yaml)
其中:
org
- 您在edgemicro configure
指令中指定的 Apigee 機構。env
:您在edgemicro configure
指令中指定的環境。edgemicro-key
- 從edgemicro configure
指令傳回的金鑰。edgemicro-secret
- 從edgemicro configure
指令傳回的密鑰。file path of org-env-config.yaml
:從edgemicro configure
指令傳回的 Edge Micro 設定檔路徑。
例如:
kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)
輸出內容範例:
config/myorg-test-config.yaml) service "edge-microgateway" created deployment "edge-microgateway" created secret "mgwsecret" created
複製下列程式碼並貼到終端機。程式碼會設定 Ingress 控制器, 「
edge-microgateway
」服務的外部存取權。您可能需要按下 Enter 鍵。 將指令貼到終端機後: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
成功之後,您將會看到以下輸出內容:
ingress "edge-microgateway-ingress" created
Ingress 控制器現已設定成允許外部存取
edge-microgateway
服務。
部署測試服務
下列步驟會將簡易的測試服務部署至叢集。
Ingress 控制器不允許從叢集外部呼叫服務。
稍後,您將設定 Edge Microgateway 以呼叫服務做為目標。
Ingress 控制器允許從外部存取 edge-microgateway
服務。
部署範例
helloworld
服務。因為 Ingress 不知道 您無法從叢集外呼叫這項服務,kubectl apply -f samples/helloworld/helloworld-service.yaml
輸出內容範例:
service "helloworld" created deployment "helloworld" created
確認部署成功。請注意,沒有外部 IP
helloworld
服務。下列步驟將設定 Edge 存取服務內部 IP 的微閘道。kubectl get services -n default
輸出內容範例:
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
設定 Edge Microgateway 以用於服務的 Proxy
取得 helloworld
服務的內部 IP,並將其新增為目標
「微型閘道感知」Proxy 上。建立「微閘道感知」Proxy 是
標準 Edge Microgateway 需求條件。
另請參閱瞭解 Microgateway 感知功能須知 Proxy。
取得測試服務的內部 IP
取得
helloworld
服務的內部叢集 IP 和通訊埠:kubectl get services helloworld
輸出內容範例:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.55.254.255 <none> 8081:30329/TCP 3m
複製
CLUSTER-IP
和PORT
的值。例如 上述值為10.55.254.255
和8081
。您的 都會有所不同
在 Edge 上建立微閘道感知 Proxy
- 登入 Edge UI。
- 選取您先前設定時指定的同一個機構 Edge Microgateway。
- 依序選取「開發」>「開發」側邊導覽選單中的「API Proxy」
- 按一下「+ Proxy」。「Build a Proxy」精靈隨即會開啟。
- 在第一個精靈頁面中,選取「反向 Proxy (最常見)」。
- 點選「下一步」。
在精靈的「詳細資料」頁面中,設定如下。請務必填寫 執行精靈的每個步驟請確認 Proxy 名稱包含前置字串
edgemicro_
。- Proxy 名稱:edgemicro_hello
Proxy 基本路徑:/hello
現有 API:
http://<cluster_ip>:<port>
例如:http://10.55.254.255:8081。
點選「下一步」。
在精靈的「安全性」頁面中,選取「通過 (無)」。
點選「下一步」。
在精靈的「虛擬主機」頁面中接受預設值。
點選「下一步」。
在精靈的「Build」頁面中,檢查 Proxy 設定。請確認 已選取 test 環境。
按一下「Build and Deploy」(建構及部署)。
可建立開發人員
您可以使用現有的開發人員來測試,或建立新的開發人員,方法如下:
- 選取「發布」>「發布」開發人員。
- 按一下「+ 開發人員」。
- 填寫對話方塊,建立新的開發人員。您可以使用任何開發人員 自訂名稱/電子郵件地址
可建立 API 產品
按照以下說明建立 API 產品。您將兩個 Proxy 加入 產品:edgemicro-auth 和 edgemicro_hello。
如要進一步瞭解 「API 產品須知事項」中的產品設定選項 設定
- 選取「發布」>「發布」API 產品。
- 按一下「+ API 產品」。「產品詳細資料」頁面隨即顯示。
按照下圖所示填寫「產品詳細資料」頁面。請於以下日期前再點選 [儲存] 並按照指示進行。
名稱 hello-world-product
顯示名稱 Edge Micro hello product
環境 test
存取 Public
金鑰核准類型 Automatic
在頁面下半部,按一下「+ 自訂資源」。
將資源設為
/
(單一斜線)。再次選取「+ 自訂資源」,然後新增路徑
/**
。在頁面下半部,按一下「+ API Proxy」。
選取名為 edgemicro-auth 的 Proxy。
再次按一下「+ API Proxy」。
選取名為 edgemicro_hello 的微閘道感知 Proxy。
按一下 [儲存]。
可建立開發人員應用程式
- 選取「發布」>「發布」應用程式。
- 按一下「+ 應用程式」。「開發人員應用程式詳細資料」頁面隨即顯示。
按照下圖所示填寫開發人員應用程式頁面。除非收到下列指示,否則請勿儲存 。
名稱 hello-world-app
顯示名稱 Edge Micro hello app
開發人員版 選取您建立的測試開發人員,或選取任何開發人員即可。 在「憑證」部分中按一下「+ 產品」,然後選取 建立時間:
hello-world-product.
按一下 [儲存]。
您現在會回到列出所有開發人員應用程式的頁面。
選取剛才建立的應用程式:
hello-world-app
。按一下「Consumer Key」旁的「Show」。
複製用戶端金鑰的值。這個值會是 API 金鑰,可以用來發出安全的 API 呼叫。
/hello
。請稍候片刻。您在 Apigee 上所做的變更需要幾分鐘才能完成 要與部署於 物件
測試 Proxy
取得輸入 IP 位址
透過 Ingress 的外部 IP,您可以呼叫 Edge Microgateway 服務 從叢集外部擷取
取得 Ingress 控制器的「外部」IP 位址:
kubectl get ing -o wide
輸出內容範例:
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37m
複製 Ingress 的
ADDRESS
值,並將其匯出至變數。個人中心 可以手動設定此變數:export GATEWAY_IP=external_ip
例如:
export GATEWAY_IP=35.238.249.62
或使用以下指令為您設定:
export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
請確認已匯出變數。例如:
echo $GATEWAY_IP
輸出內容範例:
35.238.249.62
呼叫 API
將設定變更提取到微閘道後,您就可以
請嘗試呼叫 API您可以使用 Ingress 控制器 IP (儲存在變數 GATEWAY_IP
中)
呼叫 API,因為這個 IP 可讓您從 Kubernetes 叢集外呼叫 Proxy。
部署 Edge Microgateway 時,系統將建立從 Ingress 對應至 Edge Microgateway 的對應關係
傳送至叢集
在不使用 API 金鑰的情況下呼叫 API。系統會顯示錯誤訊息,如圖所示 如下:
curl $GATEWAY_IP:80/hello/
預期輸出內容:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
如果系統顯示這則訊息,請再稍候片刻,直到同步處理作業完成 已完成:
{"message":"no match found for /hello/","status":404}
您需要 API 金鑰才能成功呼叫 API。
從您建立的開發人員應用程式取得用戶端金鑰。這個值會是 您必須呼叫測試 Proxy 的 API 金鑰:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP:80/hello/
例如:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/
輸出:
Hello world
如果看到「Hello world」就表示您已成功設定 可呼叫 Kubernetes 中的 helloworld 服務 Edge Microgateway 物件
後續步驟
詳情請參閱「工作」一節 ,瞭解如何新增自訂外掛程式、調度部署資源、變更設定,以及 您可能會想執行的其他工作