簡體   English   中英

是否可以使用Azure API Management和Azure ACS(kubernetes)作為前端和后端?

[英]Is it possible to use Azure API Management and Azure ACS (kubernetes) as frontend and backend?

我想在Azure上創建一個簡單的架構。 我的高級設計與下圖非常相似(來源: https//www.import.io/post/using-amazon-lambda-and-api-gateway/

在此輸入圖像描述

我確實想通過Azure API Management訪問內部服務。 我在Microfos文檔頁面上看到的是,這個簡單而安全的架構沒有作為參考提及:

https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough

在此輸入圖像描述

我有以下問題:

  1. 如果至少有一個NIC使用相同的網絡,則無法將API管理分配給虛擬網絡(為什么?)
  2. 即使使用對等虛擬網絡,我也無法訪問10.244.X.0 / 24網絡(pods網絡),因為k8s虛擬網絡只擁有10.240.0.0/16。 如何訪問群集ips(10.0.0.0/16)和pod ips(10.244.0.0/16)?

答案基本上是YES,盡管設置不是微不足道的。

你需要:

  • 一個額外的VNet用於API管理( 編輯 :一個額外的子網就足夠了)
  • 一項服務(kubernetes術語)

腳步:

  1. 點擊Kubernetes VNet和您創建的額外VNet(測試它)
  2. API管理 - >虛擬網絡 :更改為外部
  3. 選擇一個額外的VNet(我們稱之為' apimgmntvnet ')和一個子網作為虛擬網絡
  4. 保存吧! 喝啤酒因為我花了1小時!
  5. 同時在內部公開您的部署: kubectl expose deployment app --port=<serviceport> --name=app --target-port=<containerport> --type=NodePortNodePort很重要!LoadBalancer類型觸發kubernetes動態配置Azure用於Kubernetes的外部LB安裝)
  6. 檢查節點IP:puber on kubernetes( kubectl proxy )BUI 在此輸入圖像描述
  7. API管理 - >發布商門戶 :將您的API修改為IP地址(AgentIP:30361)

從理論上說它應該有效。 建議從apimgmntvnet中的VM開始,首先嘗試從VM進行對等,然后將其刪除(API Management不能成為至少存在一個NIC的VNet的一部分(?!))。

好吧,你不需要額外的VNET,只需要一個額外的子網。 該子網可以位於您現有的VNET中。 子網的大小可以是Azure支持的最小/ 29

API Management的Extra Subnet要求來自於它基於PAAS V1(Classic)技術構建的事實。 雖然我們可以部署到資源管理器VNET(V2層),但會產生后果。 Azure中的Classic部署模型與資源管理器模型沒有緊密耦合,因此如果您在V2中創建資源,V1就不會知道它並且會發生問題,例如API Management嘗試使用已經分配的IP到NIC(基於V2構建)。

要了解有關Azure中Classic和Resource Manager模型差異的更多信息,請參閱Classic和ResourceManager模型之間的博客差異

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM