재해 후 Kubernetes 클러스터의 상태 복원
적용 대상: Azure Local 22H2의 AKS, Windows Server의 AKS
Azure 로컬 또는 Windows Server의 AKS에서 관리 클러스터는 배포당 단일 독립 실행형 VM(가상 머신)으로 배포되므로 단일 실패 지점이 됩니다. 관리 클러스터 중단은 워크로드 클러스터에서 실행되는 애플리케이션에 영향을 주지 않는다는 점에 유의해야 합니다. 관리 클러스터 VM이 실패하면 워크로드 클러스터(및 워크로드)가 계속 실행되지만 2일째 작업을 수행할 수는 없습니다. 예를 들어 VM이 복원될 때까지 새 워크로드 클러스터를 만들거나, 노드 풀을 만들거나 확장하거나, Kubernetes 버전을 업그레이드할 수 없습니다.
관리 클러스터는 Windows 장애 조치(failover) 클러스터링에서 추적되는 VM입니다. 호스트 수준 중단에 대한 복원력도 있습니다. 즉, 호스트 컴퓨터가 실패하는 동안 Windows 장애 조치(failover) 클러스터링이 정상 호스트 컴퓨터에서 VM을 다시 시작합니다. 이 문서에서는 다음 작업을 수행하는 방법에 대한 지침을 제공합니다.
- 새 하드웨어에서 AKS의 상태를 복원합니다(새 사이트일 수 있음).
- 관리 클러스터의 손상에서 복구합니다.
이러한 시나리오 중 하나에서 관리 클러스터와 모든 워크로드 클러스터를 다시 만들어야 합니다.
새 하드웨어 또는 새 사이트에서 AKS 상태 복원
Kubernetes 클러스터의 상태를 복구하려면 새 하드웨어 또는 새 위치에서 사용할 수 있는 관리 클러스터가 있어야 합니다.
- AKS는 Velero를 사용하여 Azure Blob Storage 및 MinIO에 Kubernetes 클러스터 백업을 지원합니다 . 기본 스토리지 지역에 3개의 중복 데이터 복사본을 제공하기 때문에 Azure Storage를 백업하는 것이 좋습니다.
- 사용 가능한 백업이 복구 지점 목표를 충족하는지 확인하려면 cron 작업에서 백업을 실행하는 것이 좋습니다.
필수 조건
관리 클러스터 및 빈 워크로드 클러스터를 만들어 재해 발생 전에 콜드 대기를 준비합니다. 백업에서 복원하려는 각 Kubernetes 클러스터에 대해 빈 워크로드 클러스터가 필요합니다. 필요한 필수 구성 요소는 다음과 같습니다.
- 물리적 호스트 머신을 설정하고 클러스터합니다.
- 필요한 스토리지 구성:
- SMB: CSI(Container Storage Interface) 파일 드라이버를 사용합니다.
- 로컬 스토리지의 경우: CSI(Container Storage Interface) 디스크 드라이버를 사용합니다.
- 워크로드 클러스터 백업을 사용할 수 있습니다 . 백업, Velero를 사용하여 워크로드 클러스터 복원.
- AKS 관리 클러스터가 새 하드웨어에 설치되거나 이 문서의 1-5단계를 사용하여 새 하드웨어에 새 관리 클러스터를 설치할 수 있습니다. PowerShell을 사용하여 Azure 로컬 클러스터에 Kubernetes를 설정합니다.
- 백업을 복원하려면 빈 워크로드 클러스터가 필요합니다. Velero를 사용하여 백업, 워크로드 클러스터 복원을 참조하세요.
관리 클러스터 손상에서 복구
관리 클러스터 손상에서 복구하려면 AKS를 제거하고 관리 클러스터 및 모든 워크로드 클러스터를 다시 설치해야 합니다. 워크로드 클러스터는 Velero 백업에서 빈 워크로드 클러스터로 복원할 수 있습니다.
필요한 필수 구성 요소는 다음과 같습니다.
- 워크로드 클러스터 백업: Velero를 사용하여 워크로드 클러스터 백업, 복원
- 이전 네트워킹, 스토리지 및 클러스터 설정에 대한 AKS 구성 백업 클러스터 설정에는 컨트롤 플레인, 부하 분산 장치 및 작업자 노드 VM의 크기 및 수가 포함됩니다. 예를 들어 이전 클러스터에 3 개의 Standard_A2_V2 컨트롤 플레인 VM이 있는 경우 새 환경에서 3개의 컨트롤 플레인 VM을 만들어야 합니다.
관리 클러스터 손상에서 복구하려면 다음 단계를 수행합니다.
- AKS 제거: Uninstall-AksHci.
- 이 문서의 1-5단계를 사용하여 새 AKS 관리 클러스터를 설치합니다. PowerShell을 사용하여 AKS 클러스터에 Kubernetes를 설정합니다.
- 이 문서의 6단계를 사용하여 필요한 노드 풀이 있는 워크로드 클러스터를 만듭니다. 백업에서 복원하는 각 워크로드 클러스터에 대해 별도의 워크로드 클러스터가 필요합니다.
- 워크로드 클러스터를 만드는 동안 AKS용 New-AksHciCluster 문서를 사용하여 여러 컨트롤 플레인 VM 및 부하 분산 장치 VM을 구성할 수 있습니다.
- 필요한 스토리지 구성:
- SMB: CSI(Container Storage Interface) 파일 드라이버를 사용합니다.
- 로컬 스토리지의 경우: CSI(Container Storage Interface) 디스크 드라이버를 사용합니다.
- 백업에서 모든 워크로드 클러스터를 복원합니다.
FAQ
관리 클러스터에 기본 제공되는 복원력은 무엇인가요?
각 AKS 배포에는 단일 독립 실행형 VM인 관리 클러스터가 포함됩니다. 복원력 및 고가용성을 위해 AKS는 Windows 장애 조치(failover) 클러스터링을 사용하여 중단이 발생하는 경우 VM을 복구합니다.
관리 클러스터 중단은 워크로드 클러스터에서 실행되는 애플리케이션에 영향을 주지 않습니다. 관리 클러스터 VM이 중단되면 VM이 복구될 때까지 새 워크로드 클러스터 만들기, 노드 풀 만들기 또는 크기 조정, Kubernetes 버전 업그레이드 등과 같은 AKS Day 2 작업을 수행하는 기능에 영향을 줍니다. 관리 클러스터 오류에서 복구할 수 없는 경우 Microsoft 지원 문의하는 것이 좋습니다.
Velero 백업에 포함된 항목은 무엇인가요?
Filename | 콘텐츠 설명 |
---|---|
*-csi-volumesnapshotclasses.json.gz | csi를 포함하는 파일은 영구 볼륨 스냅샷입니다. |
*-csi-volumesnapshotcontents.json.gz | csi를 포함하는 파일은 영구적 볼륨 스냅샷입니다. |
*-csi-volumesnapshots.json.gz | csi를 포함하는 파일은 영구 볼륨 스냅샷입니다. |
*-logs.gz | 백업 작업의 로그 출력입니다. 실행과 동일한 데이터: velero backup log <backupname> . |
*-podvolumebackups.json.gz | Pod 및 영구 볼륨에 대한 메타데이터입니다. |
*-resource-list.json.gz | 백업에 포함된 리소스가 이 파일에 나열됩니다. |
*-volumesnapshots.json.gz | Pod 및 영구 볼륨에 대한 메타데이터입니다. |
*.tar.gz | 메타데이터: 네임스페이스, Pod 복제본 수, 메모리, cpu. 반환된 것과 동일한 데이터: kubectl get deployment . |
Velero 백업에 포함되지 않은 항목은 무엇인가요?
Velero 백업에는 다음 항목이 포함되지 않습니다.
- AKS(관리 클러스터) 구성
- 컨트롤 플레인 VM(API 서버) 메타데이터
- 부하 분산 장치(HA 프록시) 메타데이터
- 네트워크 설정
- 스토리지 설정
재해가 발생하기 전에 AKS 구성을 백업할 어떻게 할까요? 있나요?
관리 클러스터 구성을 백업하려면 PowerShell 창을 열고 다음 명령을 실행합니다.
Get-AksHciConfig | ConvertTo-Json
워크로드 클러스터의 구성이 재해 이전과 동일한지 어떻게 할까요??
워크로드 클러스터 구성을 백업하려면 PowerShell 창을 열고 다음 명령을 실행합니다.
Get-AksHciCluster -name <cluster name> | ConvertTo-Json