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