
Azure aks(kubernetes) 클러스터에서 서비스로 실행되는 애플리케이션이 있습니다. 이 애플리케이션은 데이터베이스에서 데이터를 가져와 파일에 저장합니다.
제가 이해한 대로 먼저 Docker 이미지를 만들고 Azure aks 레지스트리에 푸시해야 합니다. 이 작업이 완료되면 포드를 생성하고 이 애플리케이션을 서비스로 실행해야 합니다.
내가 가진 질문은 -
a) 포드가 충돌하거나 다른 노드에서 삭제되거나 다시 예약되고 파일이 생성된 후 파일에서 데이터를 계속 사용할 수 있는 경우 데이터가 삭제(제거)되지 않도록 데이터를 저장하는 데 사용해야 하는 Azure 또는 docker 옵션은 무엇입니까?
b) 인터넷에서 검색해 보면 kubectl 명령을 사용하여 정적 또는 동적으로 생성하여 Azure 영구 디스크 또는 파일 저장소를 사용할 수 있는 것으로 보입니다. 그러나 내가 이해하지 못하는 부분은 - kubectl apply -f를 사용하여 영구 저장소를 만든 후 Azure 디스크 저장소를 어떻게 활용합니까?
dockerfile을 수정하고 마운트 경로(볼륨?)를 지정해야 하며 애플리케이션이 파일에 데이터를 쓸 수 있는 애플리케이션(예: /mnt/app-data)에 마운트 경로도 지정해야 합니까?
aks 클러스터에 데이터를 저장하는 표준 메커니즘이 있을 수 있지만 저는 이에 대해 다소 생소하며 애플리케이션이 데이터를 쓸 수 있도록 Azure(정확히 말하면 aks 클러스터)에서 스토리지를 만들고 사용하는 방법에 대한 전문가의 조언을 기대하고 있습니다.
답변1
Kubernetes에서 데이터를 유지하려면(AKS인지 다른 구현인지 관계없이) 영구 볼륨 사용을 검토해야 합니다. 이는 Kubernetes의 개념으로, 선택한 공급자의 특정 스토리지 리소스에 의해 지원됩니다. 예를 들어 Azure에서는 Azure Disk 또는 Azure Files입니다.
먼저, 앱을 평가하고 실제로 Pod에 데이터를 지속적으로 저장해야 하는지 결정하는 것이 좋습니다. 상태 비저장 기능을 사용하면 탄력성과 DR 관점에서 Kubernetes로 작업할 때 작업이 훨씬 쉬워집니다. 예를 들어 데이터베이스(AKS 외부에서 실행)를 정보 소스로 만들고 애플리케이션이 실행될 때마다 데이터를 다운로드하도록 할 수 있습니까?
이 데이터를 저장해야 하는 경우 영구 볼륨을 포드에 연결하고 이를 Docker 파일에서 볼륨으로 지정해야 합니다. 스토리지 작동 방식과 설정 방법을 잘 안내해 드립니다.여기.