針對發佈 Kubernetes 應用程式型容器供應項目時的問題進行疑難解答
發佈之後,Kubernetes 應用程式型容器供應項目會經歷下列高階流程來進行配套處理。
首先,雲端原生應用程式套件組合的內容會從您自己的登錄庫複製到 Microsoft 所擁有的 Azure Container Registry (ACR)。 從該處執行弱點掃描,以確保映像安全。 最後,Kubernetes 應用程式被註冊為 Azure Kubernetes Service (AKS) 叢集的 擴充功能 類型。 如果發行失敗,則可能是其中一個元件的問題。 請參閱下方的常見錯誤和相關風險降低步驟。
部署失敗,因為在 CNAB 中缺少構件
錯誤 | 描述 | 行動 |
---|---|---|
“extensionRegistrationParameters 在套件的 manifest.yaml 中不能是 null 或空白。 如需詳細資訊,請參閱 建立指令清單檔案 | Kubernetes 應用程式會封裝為 AKS 叢集延伸模組。 清單檔案提供建立擴展類型的輸入。 | 閱讀每個屬性的描述,並提供資訊。 |
在套件的 manifest.yaml 中,extensionRegistrationParameters 當中的 defaultScope 設為叢集時,namespace 不能為空或 null。 如需詳細資訊,請參閱 建立指令清單檔案 | 安裝在叢集範圍中的 Kubernetes 應用程式會使用提供做為命名空間的預設範圍。 | 請務必在指令清單檔案的 extensionRegistrationParameters 區段中提供命名空間 |
將成品從 ACR 複製到Microsoft擁有的 ACR 時,發佈會失敗
錯誤 | 描述 | 行動 |
---|---|---|
對登錄 {sourceACRName} 的存取被拒絕。 您必須提供 MarketPlace 註冊表的存取權。 如需詳細資訊,請參閱 授與 Azure Container Registry 的存取權 | 在發佈過程中,Microsoft 會將已封裝為 CNAB 並上傳至 ACR 的 Kubernetes 應用程式,移動到 Microsoft 擁有的註冊庫。 若要這樣做,必須向負責該流程的 Microsoft 第一方應用程式授予許可權。 如果 Marketplace 發佈未提供許可權,就會顯示此錯誤。 |
如需詳細資訊,請參閱,為Microsoft的第一方應用程式授予適當的許可權。 |
登錄 {sourceACRName}中找不到 CNAB 存放庫 {cnabBundle}。 您必須提供 MarketPlace 登錄的存取權。 如需詳細資訊,請參閱 授與 Azure Container Registry 的存取權 | 在 ACR 中找不到使用 CPA 工具封裝的 Kubernetes 應用程式。 | 請確定封包已成功上傳至登錄,並為 Microsoft 自家的應用程式提供適當的權限。 |
CNAB 已被更新,但版本卻沒有更新。 您必須再次發佈,並將版本從 {latestBundle.tag} 遞增至 {currentTag.Major}。{currentTag.Minor}。{currentTag.Build + 1}。」 | 具有相同版本的方案已使用不同的 CNAB 發佈。 | 如果您的 CNAB 內容已變更,請遞增方案版本,然後再嘗試發布一次。 |
發佈失敗,錯誤提示:在 CreateUIDefinition 的 config 中,必須將 'ResourceGroup AllowExisting' 設定為 true。
如果 > 檔案中的參數 > config > basics > resourceGroup createUiDefinition.json
allowExisting 屬性不存在或未設定為 true,就會發生此錯誤。
若要修正此錯誤,請確定 屬性設定為 true,如下列範例所示:
將 'allowExisting' 屬性設定為 true,即可將您的應用程式部署至非空白的資源群組。 如需範例 CreateUIDefinition 檔案,請參閱 createUiDefinition.json範例。
發佈失敗,發生平台錯誤
錯誤 | 描述 | 行動 |
---|---|---|
內部伺服器錯誤 | 可能是暫時性錯誤。 | 請再次嘗試發佈。 |
弱點掃描
您也可能因為圖像中的弱點而發生錯誤。 如需弱點掃描以及如何減輕問題的詳細資訊,請參閱 容器認證疑難解答。