自我裝載閘道移轉指南
適用於:開發人員 | 進階
本文說明如何將現有的自我裝載閘道部署移轉至自我裝載閘道 v2。
重要
對 Azure APIM 自我裝載閘道第 0 版和第 1 版容器映像的支援,以及其對應的設定 API v1,將於 2023 年 10 月 1 日結束。 在我們的淘汰文件中深入瞭解
新功能
因為我們致力讓客戶得以更輕鬆地部署自我裝載閘道,我們引進新的組態 API 以移除 Azure 儲存體相依性,除非您使用的是 API 偵測器或配額。
新增的組態 API 可讓客戶更輕鬆地在其現有的基礎結構中採用、部署並操作我們的自我裝載閘道。
我們已引進新容器映像標籤,讓客戶選擇最佳方式試用閘道,並將其部署在實際執行環境中。
為了協助客戶在實際執行環境中執行閘道,我們已擴大實際執行環境指導方針的範圍,說明如何自動調整閘道,並在 Kubernetes 叢集中部署閘道以達到高可用性。
透過本文深入了解閘道的連線能力、新的基礎結構需求,以及若失去連線能力會出現什麼情況。
必要條件
您必須先確定基礎結構符合需求,才能移轉至自我裝載閘道 v2。
移轉至自我裝載閘道 v2
從自我裝載閘道 v2 移轉需要幾個小步驟才能完成:
容器映像
將部署指令碼中的映像標籤變更為使用 2.0.0
或以上版本。
或者,選擇其中一個其他的容器映像標籤。
您可以在這裡找到可用標籤的完整清單,或在 Docker Hub 上找到我們。
使用新的組態 API
若要移轉至自我裝載閘道 v2,客戶必須使用我們新的組態 API v2。
目前,Azure API 管理提供下列自我裝載閘道的組態 API:
設定服務 | URL | 支援 | 需求 |
---|---|---|---|
v2 | {name}.configuration.azure-api.net |
Yes | 連結 |
v1 | {name}.management.azure-api.net/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ApiManagement/service/{name}?api-version=2021-01-01-preview |
No | 連結 |
客戶必須變更其部署程式碼以使用新 URL,並符合基礎結構需求以使用新增組態 API v2。
重要
- DNS 主機名稱必須可解析為 IP 位址,而且必須可觸達對應的 IP 位址。 如果您使用私人 DNS、內部 VNET 或其他基礎結構需求,則可能需要其他設定。
安全性
可用的 TLS 加密套件
啟動時,自我裝載閘道 v2.0 僅使用 v1.x 所使用的加密套件子集。 到 v2.0.4 為止,我們已回復 v1.x 支援的所有加密套件。
您可以深入了解本文中使用的加密套件,或使用 v2.1.1 控制所要使用的加密套件。
符合最低安全性需求
在啟動期間,自我裝載閘道會準備將使用的 CA 憑證。 這需要至少搭配使用者識別碼 1001 來執行閘道容器,且無法使用唯讀檔案系統。
在 Kubernetes 中設定容器的安全性內容時,至少需要下列各項:
securityContext:
runAsNonRoot: true
runAsUser: 1001
readOnlyRootFilesystem: false
但從 2.0.3
開始,自我裝載閘道能夠在 Kubernetes 中以非根目錄執行,讓客戶更安全地執行網路閘道。
以下是自我裝載閘道的資訊安全內容範例:
securityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 1001 # This is a built-in user, but you can use any user ie 1000 as well
runAsGroup: 2000 # This is just an example
privileged: false
capabilities:
drop:
- all
警告
不支援使用唯讀檔案系統 (readOnlyRootFilesystem: true
) 執行自我裝載閘道。
使用 Azure Advisor 評估影響
為了簡化移轉,我們引進了新的 Azure Advisor 建議:
- 使用自我裝載閘道 v2建議 - 識別已識別自我裝載閘道 v0.x 或 v1.x 使用量的 Azure APIM 執行個體。
- 針對自我裝載閘道使用設定 API v2 建議 - 識別已識別自我裝載閘道之 Configuration API v1 使用量的 Azure APIM 執行個體。
強烈建議客戶使用 Azure Advisor 中的「所有建議」概觀,來決定是否需要移轉。 使用篩選條件選項來查看上述其中的建議是否存在。
使用 Azure Resource Graph 來指出 Azure API 管理執行個體
此 Azure Resource Graph 查詢會提供受影響的 Azure API 管理執行個體清單:
AdvisorResources
| where type == 'microsoft.advisor/recommendations'
| where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence'
| extend
recommendationTitle = properties.shortDescription.solution
| where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways'
| extend
instanceName = properties.impactedValue,
recommendationImpact = properties.impact,
recommendationMetadata = properties.extendedProperties,
lastUpdated = properties.lastUpdated
| project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, recommendationMetadata, lastUpdated
az graph query -q "AdvisorResources | where type == 'microsoft.advisor/recommendations' | where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence' | extend recommendationTitle = properties.shortDescription.solution | where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways' | extend instanceName = properties.impactedValue, recommendationImpact = properties.impact, recommendationMetadata = properties.extendedProperties, lastUpdated = properties.lastUpdated | project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, lastUpdated"
已知的限制
以下是自我裝載閘道 v2 的已知限制清單:
- 組態 API v2 不支援自訂網域名稱