AKS Arc에서 스토리지를 관리할 때 알려진 문제 및 오류 해결

이 문서를 사용하여 AKS Arc에서 스토리지 관련 문제를 해결하고 resolve 수 있습니다.

영구 볼륨 클레임을 구성하면 "에이전트를 초기화할 수 없습니다. 오류: mkdir /var/log/agent: 사용 권한이 거부됨"

이 권한 거부 오류는 기본 스토리지 클래스가 워크로드에 적합하지 않을 수 있음을 나타내며 Kubernetes 버전 1.19.x 이상에서 실행되는 Linux 워크로드에서 발생합니다. 보안 모범 사례에 따라 많은 Linux 워크로드에서 Pod에 securityContext fsGroup 대한 설정을 지정합니다. 기본 스토리지 클래스는 매개 변수를 지정 fstype (=ext4) 하지 않으므로 워크로드는 Azure Stack HCI의 AKS에서 시작되지 않으므로 Kubernetes는 워크로드에서 요청한 에 따라 fsGroup 파일 및 영구 볼륨의 소유권을 변경하지 못합니다.

이 문제를 resolve PVC를 프로비전하는 데 사용할 수 있는 사용자 지정 스토리지 클래스를 정의합니다.

컨테이너 스토리지 인터페이스 Pod가 'ContainerCreating' 상태로 중단됨

Kubernetes 버전 1.16.10을 사용하여 새 Kubernetes 워크로드 클러스터를 만든 다음 1.16.15로 업데이트했습니다. 업데이트 후 Pod가 csi-msk8scsi-node-9x47mContainerCreating 상태로 중단되고 kube-proxy-qqnkr Pod가 아래 출력과 같이 종결 상태로 중단되었습니다.

Error: kubectl.exe get nodes  
NAME              STATUS     ROLES    AGE     VERSION 
moc-lf22jcmu045   Ready      <none>   5h40m   v1.16.15 
moc-lqjzhhsuo42   Ready      <none>   5h38m   v1.16.15 
moc-lwan4ro72he   NotReady   master   5h44m   v1.16.15

\kubectl.exe get pods -A 

NAMESPACE     NAME                        READY   STATUS              RESTARTS   AGE 
    5h38m 
kube-system   csi-msk8scsi-node-9x47m     0/3     ContainerCreating   0          5h44m 
kube-system   kube-proxy-qqnkr            1/1     Terminating         0          5h44m  

kubelet 상태가 좋지 않아 더 이상 API 서버와 통신할 수 없으므로 유일한 해결 방법은 서비스를 다시 시작하는 kubelet 것입니다. 다시 시작한 후 클러스터는 실행 중 상태로 전환됩니다.

크래시 덤프 로그에서 채워진 디스크 스토리지

생성된 크래시 덤프 로그에서 디스크 스토리지를 채울 수 있습니다. 이는 만료된 Geneva 에이전트 클라이언트 인증서 때문입니다. 증상은 다음과 같습니다.

  • 서비스가 시작되지 않습니다.
  • 리소스가 부족하여 Kubernetes Pod, 배포 등을 시작하지 못합니다.

중요

이 문제는 2022년 4월부터 2023년 3월까지 릴리스에서 2023년 4월 18일 이후에 생성된 모든 새로운 Mariner 관리 및 대상 클러스터 노드에 영향을 미칠 수 있습니다. 이 문제는 2023-05-09 릴리스 이상에서 해결되었습니다.

이 문제는 디스크 공간을 할당하거나 새 파일을 작성하는 작업에 영향을 줄 수 있으므로 "디스크 공간/리소스 부족" 오류는 좋은 힌트입니다. 지정된 노드에 이 문제가 있는지 검사 하려면 다음 셸 명령을 실행합니다.

clouduser@moc-lwm2oudnskl $ sudo du -h /var/lib/systemd/coredump/

이 명령은 진단 파일에서 사용하는 스토리지 공간을 보고합니다.

근본 원인

Geneva 에이전트를 서비스 엔드포인트에 인증하는 데 사용되는 클라이언트 인증서가 만료되면 에이전트가 충돌하여 크래시 덤프가 발생합니다. 에이전트의 크래시/재시도 루프는 초기 시작 시 약 5초이며 시간 제한이 없습니다. 즉, 몇 초마다 노드의 파일 시스템에 새 파일(약 330MB)이 만들어지며 디스크 스토리지를 빠르게 사용할 수 있습니다.

완화 방법

권장되는 완화 방법은 업데이트된 인증서가 있는 최신 릴리스 버전 1.10.18.10425로 업그레이드하는 것입니다. 이렇게 하려면 먼저 AKS-HCI 호스트를 업데이트하기 전에 워크로드 클러스터지원되는 부 버전 으로 수동으로 업그레이드합니다.

AKS Arc 릴리스 및 모든 최신 AKS-HCI 뉴스에 대한 자세한 내용은 AKS 릴리스 페이지를 구독하세요.

업그레이드가 옵션이 아닌 경우 mdsd 서비스를 끌 수 있습니다. 각 Mariner 노드:

  1. 다음 셸 명령을 사용하여 Geneva 에이전트를 끕니다.

    sudo systemctl disable --now mdsd
    
  2. Geneva 에이전트가 성공적으로 비활성화되었는지 확인합니다.

    sudo systemctl status mdsd
    
  3. 다음 명령을 사용하여 누적된 파일을 삭제합니다.

    sudo find /var/lib/systemd/coredump/ -type f -mmin +1 -exec rm -f {} \;
    sudo find /run/systemd/propagate -name 'systemd-coredump@*' -delete
    sudo journalctl --rotate && sudo journalctl --vacuum-size=500M
    
  4. 노드를 다시 부팅합니다.

    sudo reboot
    

스토리지 Pod가 충돌하고 로그에 'createSubDir' 매개 변수가 잘못되었습니다.

배포에 SMB 또는 NFS CSI 드라이버가 설치되어 있고 이전 버전에서 5월 빌드로 업그레이드하는 경우 오류가 발생할 수 있습니다. 라는 createSubDir매개 변수 중 하나가 더 이상 허용되지 않습니다. 배포에 적용되는 경우 아래 지침에 따라 스토리지 클래스 오류를 resolve.

이 오류가 발생하면 스토리지 Pod가 충돌하고 로그에 매개 변수가 createSubDir 잘못되었음을 나타냅니다.

스토리지 클래스를 다시 만듭니다.

영구 볼륨을 만들 때 볼륨 탑재 시도가 실패합니다.

AKS Arc 환경에서 영구 볼륨 또는 영구 볼륨 클레임을 삭제한 후 동일한 공유에 매핑할 새 영구 볼륨이 만들어집니다. 그러나 볼륨을 탑재하려고 하면 탑재가 실패하고 오류와 함께 NewSmbGlobalMapping failedPod 시간이 초과됩니다.

새 볼륨을 탑재하지 못하는 경우를 해결하기 위해 Windows 노드에 SSH를 실행하고 Remove-SMBGlobalMapping 볼륨에 해당하는 공유를 제공할 수 있습니다. 이 명령을 실행한 후 볼륨을 탑재하려고 하면 성공합니다.