Udostępnij za pośrednictwem


Rozwiązywanie problemów podczas publikowania oferty kontenera opartej na aplikacji Kubernetes

Po opublikowaniu oferta kontenera oparta na aplikacji Kubernetes przechodzi przez następujący ogólny przepływ przetwarzania pakietów.

Diagram przedstawiający trzy etapy przetwarzania pakietów, przepływające z

Najpierw zawartość pakietu aplikacji natywnej chmury (CNAB) jest kopiowana z własnego rejestru do należącego do firmy Microsoft usługi Azure Container Registry (ACR). Stamtąd skanowanie luk w zabezpieczeniach jest wykonywane w celu zapewnienia bezpieczeństwa obrazów. Na koniec aplikacja Kubernetes jest zarejestrowana jako typ rozszerzenia klastra usługi Azure Kubernetes Service (AKS). Jeśli publikowanie zakończy się niepowodzeniem, może to być problem z jednym z tych składników. Poniżej przedstawiono typowe błędy i powiązane kroki ograniczania ryzyka.

Publikowanie kończy się niepowodzeniem z brakującymi artefaktami w pliku CNAB

Błąd opis Akcja
"extensionRegistrationParameters nie może mieć wartości null ani być puste w pliku manifest.yaml pakietu. Aby uzyskać więcej informacji, zobacz Tworzenie pliku manifestu Aplikacje Kubernetes są pakowane jako rozszerzenia klastra usługi AKS. Plik manifestu udostępnia dane wejściowe dla tworzenia typu rozszerzenia. Przeczytaj opis każdej właściwości i podaj informacje.
"Przestrzeń nazw nie może mieć wartości null ani być pusta dla parametru defaultScope jako klastra w extensionRegistrationParameters w pliku manifest.yaml pakietu. Aby uzyskać więcej informacji, zobacz Tworzenie pliku manifestu Aplikacje Kubernetes zainstalowane w zakresie klastra używają domyślnego zakresu podanego jako przestrzeń nazw. Pamiętaj, aby podać przestrzeń nazw w extensionRegistrationParameters sekcji w pliku manifestu

Publikowanie kończy się niepowodzeniem podczas kopiowania artefaktów z usługi ACR do usługi ACR należącej do firmy Microsoft

Błąd opis Akcja
"Odmowa dostępu do rejestru {sourceACRName}. Musisz podać dostęp marketplace do rejestru. Aby uzyskać więcej informacji, zobacz Udzielanie dostępu do usługi Azure Container Registry Podczas procesu publikowania firma Microsoft przenosi aplikację Kubernetes spakowaną jako CNAB i przekazaną do rejestru należącego do firmy Microsoft.

W tym celu aplikacja firmy Microsoft odpowiedzialna za ten proces musi być dostarczana z uprawnieniami. Ten błąd pojawia się, jeśli publikowanie w witrynie Marketplace zostało wykonane bez podawania uprawnień.
Aby uzyskać więcej informacji, zobacz Zapewnianie aplikacji firmy Microsoft pierwszej firmy Microsoft z odpowiednimi uprawnieniami.
"Nie można odnaleźć repozytorium CNAB {cnabBundle} w rejestrze {sourceACRName}. Musisz podać dostęp marketplace do rejestru. Aby uzyskać więcej informacji, zobacz Udzielanie dostępu do usługi Azure Container Registry Nie można odnaleźć aplikacji Kubernetes spakowanej przy użyciu narzędzia CPA w usłudze ACR. Upewnij się, że pakiet został pomyślnie przekazany do rejestru i podaj aplikację firmy Microsoft z odpowiednimi uprawnieniami.
"CNAB został zaktualizowany bez aktualizowania wersji. Musisz opublikować ponownie i zwiększać wersję z pliku {latestBundle.tag} do {currentTag.Major}. {currentTag.Minor}. {currentTag.Build + 1}". Plan z tą samą wersją jest już opublikowany przy użyciu innego CNAB. Jeśli zawartość CNAB została zmieniona, zwiększ wersję planu i spróbuj opublikować ponownie.

Publikowanie kończy się niepowodzeniem z błędem "ResourceGroup AllowExisting musi być ustawiona wartość true w błędzie CreateUIDefinition's config"

Ten błąd występuje, jeśli parametrów > config > basics > resourceGroup > allowExisting właściwości w createUiDefinition.json pliku nie istnieje lub nie jest ustawiona na true.

Aby naprawić ten błąd, upewnij się, że właściwość jest ustawiona na wartość true, jak pokazano w poniższym przykładzie:

Zrzut ekranu przedstawiający plik createUiDefinition.json z odpowiednimi parametrami.

Ustawiając właściwość "allowExisting" na true, aplikację można wdrożyć w grupie zasobów, która nie jest pusta. Aby zapoznać się z przykładowym plikiem CreateUIDefinition, zobacz przykład w createUiDefinition.json.

Publikowanie kończy się niepowodzeniem z powodu błędów platformy

Błąd opis Akcja
Wewnętrzny błąd serwera Może to być błąd przejściowy. Spróbuj opublikować ponownie.

Skanowanie pod kątem luk w zabezpieczeniach

Mogą również wystąpić błędy spowodowane lukami w zabezpieczeniach obrazów. Aby uzyskać więcej informacji na temat skanowania luk w zabezpieczeniach i rozwiązywania problemów, zobacz Rozwiązywanie problemów z certyfikacją kontenera.