적용 대상: Azure 로컬의 AKS, Windows Server의 AKS
이 문서에서는 PowerShell cmdlet 및 AKS Arc를 사용하여 AKS 워크로드 클러스터를 Azure Arc에 연결하거나 연결을 끊는 동안 발생할 수 있는 오류(및 Disable-AksHciArcConnection
해결 방법)에 대해 설명합니다Enable-AksHciArcConnection
. 이 문서에서 다루지 않는 문제는 Arc 지원 Kubernetes 문제 해결을 참조하세요.
나열된 해결 방법이 적용되지 않는 경우 지원 문제를 열 수도 있습니다.
오류: "이름이 'my-aks-cluster'인 워크로드 클러스터를 찾을 수 없습니다."
이 오류는 워크로드 클러스터를 만들지 않았거나 워크로드 클러스터의 이름을 잘못 입력했음을 의미합니다.
Get-AksHciCluster를 실행하여 올바른 이름이 있는지 또는 Arc에 연결하려는 클러스터가 있는지 확인합니다.
오류: "System.Management.Automation.RemoteException 시작 온보딩 프로세스 클러스터 "azure-arc-onboarding" set..."
Windows Admin Center를 사용하여 워크로드 클러스터를 만들고 Arc 지원 Kubernetes에 연결할 때 다음 오류가 발생할 수 있습니다.
System.Management.Automation.RemoteException Starting onboarding process Cluster "azure-arc-onboarding" set. User "azure-arc-onboarding" set. Context "azure-arc-onboarding" created. Switched to context "azure-arc-onboarding". Azure login az login: error: argument --password/-p: expected one argument usage: az login [-h] [--verbose] [--debug] [--only-show-errors] [--output {json,jsonc,yaml,yamlc,table,tsv,none}] [--query JMESPATH] [--username USERNAME] [--password PASSWORD] [--service-principal] [--tenant TENANT] [--allow-no-subscriptions] [-i] [--use-device-code] [--use-cert-sn-issuer] : Job Failed Condition]
이 문제를 해결하려면 아래 옵션을 검토합니다.
- 옵션 1: 워크로드 클러스터를 삭제하고 Windows Admin Center를 사용하여 다시 시도합니다.
- 옵션 2: PowerShell에서 Get-AksHciCluster 명령을 실행하여 클러스터가 성공적으로 만들어졌는지 확인한 다음 Enable-AksHciArcConnection을 사용하여 클러스터를 Arc에 연결합니다.
'Connect-AzAccount'를 사용하여 Azure에 로그인하면 'Enable-AksHciArcConnection'이 실패합니다.
Azure에 로그인하는 데 사용하는 Connect-AzAccount
경우 입력 Set-AksHciRegistration
으로 제공한 것과 다른 구독을 기본 컨텍스트로 설정할 수 있습니다. 그런 다음 실행 Enable-AksHciArcConnection
하면 명령에서 사용되는 Set-AksHciRegistration
구독을 예상합니다. 그러나 Enable-AksHciArcConnection
,를 사용하여 기본 구독 집합을 Connect-AzAccount
가져오므로 오류가 발생할 수 있습니다.
이 오류를 방지하려면 아래 옵션 중 하나를 따르세요.
옵션 1: 청구를 위해 AKS 호스트를 Azure에 연결하는 명령을 처음 실행할 때 사용한 것과 동일한 매개 변수(구독 및 리소스 그룹)를 사용하여 Azure에 로그인하려면 실행
Set-AksHciRegistration
합니다. 그런 다음 기본값과 함께 사용할Enable-AksHciArcConnection -Name <ClusterName>
수 있으며, 클러스터는 AKS 호스트 청구 구독 및 리소스 그룹에서 Arc에 연결됩니다.옵션 2: AKS 호스트와 다른 구독 및 리소스 그룹에서 클러스터를 Azure Arc에 연결하기 위해 모든 매개 변수, 및
secret
매개 변수subscription
resource group
location
tenant
를 사용하여 실행Enable-AksHciArcRegistration
합니다. Azure 계정을 사용하여 클러스터를 Azure Arc에 연결할 수 있는 충분한 권한이 없는 경우에도 실행Enable-AksHciArcRegistration
해야 합니다(예: 구독 소유자가 아닌 경우).
오류: '조건을 기다리는 시간이 초과되었습니다.'
이 오류는 일반적으로 다음 문제 중 하나를 가리킵니다.
- 클러스터는 가상화된 환경의 Azure VM에서 생성되었거나 여러 수준의 가상화에 Azure Local에 AKS를 배포했습니다.
- 인터넷 속도가 느려 시간 초과가 발생했습니다.
위의 시나리오 중 하나가 적용되는 경우 Disable-AksHciArcConnection을 실행하고 다시 연결을 시도합니다. 위의 시나리오가 적용되지 않는 경우 Azure Local의 AKS에 대한 지원 문제를 엽니다.
오류: "비밀 "sh.helm.release.v1.azure-arc.v1"을 찾을 수 없습니다."
이 오류는 Kubernetes API 서버에 연결할 수 없음을 나타냅니다.
명령을 다시 실행한 Disable-AksHciArcConnection
다음 Azure Portal로 이동하여 리소스가 실제로 삭제되었는지 확인합니다connectedCluster
. 또한 실행 kubectl get ns -A
하여 네임스페이스가 azure-arc
클러스터에 없는지 확인할 수도 있습니다.
오류: "Azure에 연결하지 못했습니다. 'Set-AksHciRegistration'을 실행하고 다시 시도하세요."
이 오류는 Azure에 대한 로그인 자격 증명이 만료되었음을 의미합니다.
명령을 다시 실행하기 전에 Azure에 로그인하는 Enable-AksHciArcConnection
데 사용합니다Set-AksHciRegistration
. 다시 실행할 때 청구를 위해 AKS 호스트를 Set-AksHciRegistration
Azure에 처음 등록할 때 사용한 것과 동일한 구독 및 리소스 그룹 세부 정보를 사용해야 합니다. 다른 구독 또는 리소스 그룹을 사용하여 명령을 다시 실행하면 등록되지 않습니다. 구독 및 리소스 그룹이 설정 Set-AksHciRegistration
되면 AKS Arc를 제거하지 않고는 변경할 수 없습니다.
오류: "'My-Cluster'가 올바른 클러스터 이름이 아닙니다. 이름은 소문자여야 하며 정규식 패턴과 일치해야 합니다. '^[a-z0-9][a-z0-9-]*[a-z0-9]$'"
이 오류는 워크로드 클러스터가 Kubernetes 명명 규칙을 따르지 않음을 나타냅니다.
오류에서 알 수 있듯이 클러스터 이름이 소문자이고 정규식 패턴 '^[a-z0-9][a-z0-9-]*[a-z0-9]$'과 일치하는지 확인합니다.
오류: "addons.msft.microsoft "demo-arc-onboarding"이 이미 있습니다."
일반적으로 이 오류는 AKS 클러스터를 Arc 지원 Kubernetes에 이미 연결했음을 의미합니다.
연결되었는지 확인하려면 Azure Portal로 이동하여 실행 Set-AksHciRegistration
시(기본값을 사용한 경우) 또는 Enable-AksHciArcConnection
(기본값을 사용하지 않은 경우) 제공한 구독 및 리소스 그룹에서 확인합니다. Azure CLI 명령을 실행 az connectedk8s show
하여 Azure 로컬 클러스터의 AKS가 Azure에 연결되어 있는지 확인할 수도 있습니다. 워크로드 클러스터가 표시되지 않으면 실행하고 Disable-AksHciArcConnection
다시 시도합니다.
오류: "autorest/azure: 서비스에서 오류를 반환했습니다. Status=404 Code="ResourceNotFound"..."
이 오류는 Azure가 클러스터와 연결된 Azure Resource Manager 리소스를 connectedCluster
찾을 수 없음을 의미합니다.
"autorest/azure: 서비스에서 오류를 반환했습니다. Status=404 Code="ResourceNotFound" Message="리소스 그룹 'AKS-HCI2'의 리소스 'Microsoft.Kubernetes/connectedClusters/my-workload-cluster'를 찾을 수 없습니다. 자세한 내용은 ;]"으로 https://aka.ms/ARMResourceNotFoundFix"이동하세요.
다음과 같은 경우 이 오류가 발생할 수 있습니다.
- cmdlet을 실행하는 동안 잘못된 리소스 그룹 또는 구독을
Disable-AksHciArcConnection
제공했습니다. - Azure Portal에서 리소스를 수동으로 삭제했습니다.
- Azure Resource Manager에서 Azure 리소스를 찾을 수 없습니다.
오류 메시지에 표시된 대로 이 오류를 해결하려면 리소스를 찾을 수 없는 오류 해결을 참조 하세요.
오류: "클러스터 추가 기능 arc 제거 오류: 네임스페이스 "azure-arc"를 찾을 수 없음"
일반적으로 이 오류는 워크로드 클러스터에서 Arc 에이전트를 이미 제거했거나 명령을 사용하여 네임스페이 azure-arc
스를 수동으로 삭제했음을 kubectl
의미합니다.
Azure Portal로 이동하여 유출된 리소스가 없는지 확인합니다. 예를 들어 구독 및 리소스 그룹에 리소스가 connectedCluster
표시되지 않는지 확인합니다.
오류: "Azure 구독이 제대로 구성되지 않았습니다."
Arc 지원 Kubernetes 리소스 공급자를 사용하여 Azure 구독을 구성하지 않은 경우 이 문제가 발생할 수 있습니다. 현재 이를 Microsoft.Kubernetes
Microsoft.KubernetesConfiguration
확인하고 구성됩니다.
이러한 리소스 공급자를 사용하도록 설정하는 방법에 대한 자세한 내용은 Arc 지원 Kubernetes에 대한 공급자 등록을 참조 하세요.
오류: "'azure-arc' 네임스페이스에서 ConfigMap 'azure-clusterconfig'를 읽을 수 없습니다."
기존 연결을 사용하지 않도록 설정한 후 AKS 클러스터에서 Arc 연결을 다시 사용하도록 설정하려고 할 때 이 문제가 발생할 수 있습니다. 이 오류는 Azure Arc 비밀이 저장되는 네임스페이스가 변경되어 발생합니다.
오류로 이어지는 단계는 다음과 같습니다.
- 를 사용하여 워크로드 클러스터를 Azure Arc에
Enable-AksHciArcConnection -name $clusterName
연결합니다. - Azure Arc
Disable-AksHciArcConnection -name $clusterName
에서 클러스터 연결을 끊습니다. - 다음 명령을 사용하여 워크로드 클러스터를 Azure Arc에 다시
Enable-AksHciArcConnection -name $clusterName
연결합니다.
오류는 다음과 같습니다.
returned a non zero exit code 1 [Error: Job azure-arc-onboarding terminated with Failed to run CLI command: Error from server (NotFound): namespaces "azure-arc"
not found
System.Management.Automation.RemoteException
ERROR: Unable to read ConfigMap 'azure-clusterconfig' in 'azure-arc' namespace:
Error Response: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"configmaps \"azure-clusterconfig\" not
found","reason":"NotFound","details":{"name":"azure-clusterconfig","kind":"configmaps"},"code":404}
System.Management.Automation.RemoteException
System.Management.Automation.RemoteException
: Job Failed Condition
Enable-AksHciArcConnection
항상 실패하고 실행 Disable-AksHciArcConnection
한 후에는 azure-arc-release 네임스페이스에 나머지 비밀이 있습니다. 비밀이 있는지 확인하려면 다음 명령을 실행하고 비밀이 나열되지 않았는지 확인할 수 있습니다.
kubectl get secret -nazure-arc-release sh.helm.release.v1.azure-arc.v1
이 문제를 해결하려면 다음을 실행 Disable-AksHciArcConnection
한 후 azure-arc-release 네임스페이스를 삭제합니다.
$clusterName = "<name of cluster>"
Get-AksHciCredential -name $clusterName
kubectl delete namespace azure-arc-release
Disable-AksHciArcConnection -name $clusterName
Enable-AksHciArcConnection -name $clusterName