나는 지금 몇 시간 동안이 오류와 싸우고 있습니다. 여러 기사를 찾았지만 지금까지는 도움이되지 않았습니다.
내 작업은 https://docs.microsoft.com/en-us/azure/aks/azure-disk-volume 의 "방법 가이드> 데이터 볼륨 구성> Azure 디스크-정적"을 기반으로했습니다 . 내가 말할 수있는 한, 나는 어떤 단계도 놓친 적이 없다.
YAML 파일의 구성으로 다음과 같이 정의했습니다.
종류 : 배포 메타 데이터 : 이름 : phio-dep-db 네임 스페이스 : 프로덕션 사양 : 선택기 : matchLabels : 앱 : phio 복제본 : 1 전략 : 유형 : RollingUpdate 템플릿 : 메타 데이터 : 레이블 : 앱 : phio 사양 : 종료 GracePeriodSeconds : 1 개 볼륨 : -이름 : dbvolume azureDisk : 종류 : 관리 됨 diskName : PHIO_DB_VOL diskURI : /subscriptions/<my-sub-id/resourceGroups/<my-grp>/providers/Microsoft.Compute/disks/PHIO_DB_VOL 컨테이너 : -이미지 : phioweb.azurecr.io/phiodb 이름 : db 포트 : -containerPort : 3306 volumeMounts : -mountPath : / var / lib / mysql 이름 : dbvolume
그러나 kubectl apply -f .yml을 수행하면 포드가 시작되지 않습니다. "kubectl describe all -n production"을 수행하면 다음이 표시됩니다.
유형 이유 메시지의 나이 ---- ------ ---- ---- ------- 정상 예정 31m default-scheduler 성공적으로 production / phio-dep-db-6c6ddc885-p4ntg를 aks-nodepool1-18816840-vmss000001 경고 FailedAttachVolume 79s (31m 이상 x23) attachdetach-controller "dbvolume"볼륨에 대해 AttachVolume.Attach 실패 : compute.DisksClient # Get : 요청에 대한 응답 실패 : StatusCode = 403-원래 오류 : autorest / azure : 서비스에서 오류를 반환했습니다. Status = 403 Code = "AuthorizationFailed"Message = "개체 ID가 '<동일한 GUID>'인 '<GUID>'클라이언트에 '/ subscriptions / <범위에서'Microsoft.Compute / disks / read '작업을 수행 할 권한이 없습니다. my-sub-id / resourceGroups / <my-grp> /providers/Microsoft.Compute/disks/PHIO_DB_VOL '또는 범위가 유효하지 않습니다. 최근에 액세스 권한이 부여 된 경우 자격 증명을 새로 고치십시오. " 경고 FailedMount 23s (x14 over 29m) kubelet, aks-nodepool1-18816840-vmss000001 포드 "phio-dep-db-6c6ddc885-p4ntg_production (0e326781-2936-4451-9446-9608a8f41439)"에 대한 볼륨을 마운트 할 수 없음 : 대기 시간이 만료되었습니다. 포드 "production"/ "phio-dep-db-6c6ddc885-p4ntg"용으로 연결하거나 마운트 할 볼륨. 마운트 해제 된 볼륨 목록 = [dbvolume]. 연결되지 않은 볼륨 목록 = [dbvolume default-token-s7svk]
MS 설명서에는 Azure 디스크에 대한 권한 할당에 대한 내용이 없으며 YAML에 누락 된 명백한 매개 변수가 없습니다.
아무도 내가 놓친 아이디어가 있습니까?
감사합니다.
(출력을 약간 삭제했지만 모두 테스트이며 Azure 구독은 프로덕션이라고 말하더라도이 작업 후에 비닝됩니다)
AKS와 함께 사용할 Azure 디스크를 만들 때 노드 리소스 그룹에 디스크 리소스를 만들 수 있습니다 . This approach allows the AKS cluster to access and manage the disk resource. 대신 별도의 리소스 그룹에 디스크를 만드는 경우 클러스터의 AKS (Azure Kubernetes Service) 서비스 주체에 디스크의 리소스 그룹에 대한 기여자 역할을 부여해야합니다 .If you instead create the disk in a separate resource group, you must grant the Azure Kubernetes Service (AKS) service principal for your cluster the Contributor role to the disk 's resource group. 또는 서비스 주체 대신 권한에 시스템 할당 관리 ID를 사용할 수 있습니다. 자세한 내용은 관리 ID 사용을 참조 하세요.
다른 리소스 그룹의 기존 디스크 리소스에 액세스해야 할 수 있습니다. 다음 역할 권한 집합 중 하나를 할당합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다