bmctl로 클러스터 백업 및 복원

이 페이지에서는 bmctl을 사용하여 베어메탈용 Anthos 클러스터로 생성된 클러스터를 백업 및 복원하는 방법을 설명합니다. 이 안내는 베어메탈용 Anthos 클러스터에서 지원하는 모든 클러스터 유형에 적용됩니다.

bmctl 백업 및 복원 프로세스에는 영구 볼륨이 포함되지 않습니다. 로컬 볼륨 프로비저닝 도구(LVP)로 생성된 모든 볼륨은 변경되지 않은 상태로 남습니다.

클러스터 백업

bmctl backup cluster 명령어는 지정된 클러스터에 대해 etcd 저장소 및 PKI 인증서의 클러스터 정보를 tar 파일에 추가합니다. etcd 저장소는 모든 클러스터 데이터에 대해 Kubernetes에서 지원되는 저장소이며 클러스터 상태 관리를 위해 필요한 모든 Kubernetes 객체 및 커스텀 객체를 포함합니다. PKI 인증서는 TLS 인증에 사용됩니다. 이 데이터는 클러스터의 제어 영역 또는 고가용성(HA) 배포를 위한 제어 영역 중 하나에서 백업됩니다.

백업 tar 파일에는 서비스 계정 키 및 SSH 키를 포함한 민감한 사용자 인증 정보가 포함됩니다. 안전한 장소에 백업 파일을 보관하세요. 의도치 않게 파일이 노출되지 않도록 베어메탈용 Anthos 클러스터 백업 프로세스는 인메모리 파일만 사용합니다.

스냅샷 데이터를 비교적 최신 상태로 유지하기 위해 클러스터를 정기적으로 백업합니다. 클러스터의 중대 변경사항 빈도에 맞게 백업 빈도를 조정합니다.

클러스터 백업에 사용하는 bmctl 버전은 관리 클러스터의 버전과 일치해야 합니다.

클러스터를 백업하려면 다음 안내를 따르세요.

  1. 사용자 인증 정보 및 모든 노드에 대한 SSH 연결을 포함하여 클러스터가 올바르게 작동하는지 확인합니다.

    백업 프로세스의 의도는 정상으로 알려진 상태에서 클러스터를 캡처해서 큰 문제가 발생했을 때 작업을 복원할 수 있도록 하기 위한 것입니다.

    다음 명령어를 사용하여 클러스터를 확인합니다.

    bmctl check cluster -c CLUSTER_NAME
    

    CLUSTER_NAME을 백업하려는 클러스터 이름으로 바꿉니다.

  2. 다음 명령어를 실행하여 대상 클러스터가 조정 상태에 있지 않은지 확인합니다.

    kubectl describe cluster CLUSTER_NAME -n CLUSTER_NAMESPACE
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 백업할 클러스터의 이름입니다.
    • CLUSTER_NAMESPACE: 클러스터의 네임스페이스입니다. 기본적으로 베어메탈용 Anthos 클러스터에 대한 클러스터 네임스페이스는 cluster-가 앞에 표시된 클러스터 이름입니다. 예를 들어 클러스터 이름을 test로 지정한 경우 네임스페이스 이름은 cluster-test가 됩니다.
  3. '조정 중' 유형의 status.conditions에 대해 명령어 결과를 확인합니다.

    이러한 status.conditions에서 상태가 'False'면 클러스터가 안정적이고 백업할 준비가 된 것입니다.

  4. 다음 명령어를 실행하여 클러스터를 백업합니다.

    bmctl backup cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 백업할 클러스터의 이름입니다.
    • ADMIN_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로입니다.

    기본적으로 백업 tar 파일은 관리자 워크스테이션에서 작업공간 디렉터리(기본적으로 bmctl-workspace)에 저장됩니다. tar 파일은 이름이 CLUSTER_NAME_backup_TIMESTAMP.tar.gz입니다. 여기서 CLUSTER_NAME은 백업되는 클러스터의 이름이고 TIMESTAMP는 백업이 수행된 날짜 및 시간입니다. 예를 들어 클러스터 이름이 testuser인 경우 백업 파일 이름은 testuser_backup_2006-01-02T150405Z0700.tar.gz가 됩니다.

    백업 파일에 대해 다른 이름 및 위치를 지정하려면 --backup-file 플래그를 사용합니다.

백업 파일은 1년 후 만료됩니다. 만료된 백업 파일은 클러스터 복원 프로세스에 사용되지 않습니다.

클러스터 복원

백업에서 클러스터를 복원하는 것은 최후의 수단으로서, 클러스터에 치명적인 장애가 발생하여 그 밖의 다른 방법으로는 정상적인 서비스로 돌아갈 수 없을 때 사용해야 합니다. etcd 데이터가 손상되었거나 etcd 포드가 비정상 종료 루프에 있을 때가 그 예에 해당합니다.

백업 tar 파일에는 서비스 계정 키 및 SSH 키를 포함한 민감한 사용자 인증 정보가 포함됩니다. 의도치 않게 파일이 노출되지 않도록 베어메탈용 Anthos 클러스터 복원 프로세스는 인메모리 파일만 사용합니다.

클러스터 복원에 사용하는 bmctl 버전은 관리 클러스터의 버전과 일치해야 합니다.

클러스터를 복원하려면 다음 안내를 따르세요.

  1. 백업 당시 클러스터에 제공된 모든 노드 머신이 올바르게 작동하고 연결되는지 확인합니다.

  2. 백업 당시 사용된 SSH 키로 노드 간 SSH 연결이 작동하는지 확인합니다.

    이러한 SSH 키는 복원 프로세스 중에 복구됩니다.

  3. 백업 당시에 사용된 서비스 계정 키가 여전히 활성 상태인지 확인합니다.

    이러한 서비스 계정 키는 복원 클러스터를 위해 복구됩니다.

  4. 독립형 클러스터 또는 자체 관리형 관리자 또는 하이브리드 클러스터를 복원하려면 다음 명령어를 실행합니다.

    bmctl restore cluster -c CLUSTER_NAME --backup-file BACKUP_FILE
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 복원할 클러스터의 이름입니다.
    • BACKUP_FILE: 사용 중인 백업 파일의 경로 및 이름입니다.
  5. 자체 관리형이 아닌 사용자 클러스터나 관리자 또는 하이브리드 클러스터를 복원하려면 다음 명령어를 실행합니다.

    bmctl restore cluster -c CLUSTER_NAME --backup-file BACKUP_FILE \
         --kubeconfig ADMIN_KUBECONFIG
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 복원할 클러스터의 이름입니다.
    • BACKUP_FILE: 사용 중인 백업 파일의 경로 및 이름입니다.
    • ADMIN_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로입니다.

복원 프로세스가 종료되면 복원된 클러스터에 대해 새로운 kubeconfig 파일이 생성됩니다.