백업 및 복원
Red Hat Advanced Cluster Security for Kubernetes 백업 및 복원
초록
1장. Red Hat Advanced Cluster Security for Kubernetes 백업
Red Hat Advanced Cluster Security for Kubernetes에 대한 데이터 백업을 수행하고 인프라 재해 또는 데이터가 손상된 경우 데이터 복원에 이를 사용할 수 있습니다.
Amazon S3 또는 Google Cloud Storage 와 통합하여 Central 데이터베이스에 대한 자동 백업을 구성할 수 있습니다. roxctl
CLI를 사용하여 중앙 데이터베이스의 온디맨드 백업을 수행할 수 있습니다. RHACS Operator 또는 Helm 차트 설치 방법을 사용하여 중앙 배포를 백업할 수도 있습니다.
요구 사항에 따라 다음 두 가지 유형의 백업을 생성할 수 있습니다.
- 중앙 데이터베이스 백업: RHACS 구성, 리소스, 이벤트 및 인증서가 포함됩니다. 데이터베이스 오류 또는 데이터 손상과 같은 예기치 않은 사고에서는 백업을 사용하여 Central 데이터베이스를 이전 기능 상태로 복구하고 복원할 수 있습니다. 이렇게 하면 필수 데이터의 가용성과 무결성을 보장하므로 중요한 정보의 중단이나 손실 없이 정상적인 작업을 계속할 수 있습니다.
- 모든 사용자 정의 배포 구성 백업: Helm 차트 또는 RHACS Operator를 사용하여 RHACS를 설치한 경우 설치와 관련된 설정, 매개변수 및 사용자 정의를 백업할 수 있습니다. RHACS 설치가 실수로 삭제되거나 다른 클러스터 또는 네임스페이스로 마이그레이션해야 하는 경우 배포 구성 백업을 사용하면 원활한 복구 프로세스를 수행할 수 있습니다. 또한 백업에서 사용자 지정 설정을 복원하면 중앙 설치의 고유한 요구 사항 및 구성을 효율적으로 복구하여 시스템을 일관되고 정확하게 배포할 수 있습니다.
백업 파일에는 시크릿 및 인증서가 포함되어 있으므로 백업 파일을 안전하게 저장해야 합니다.
1.1. roxctl CLI를 사용하여 중앙 데이터베이스 백업
중앙 데이터베이스를 백업하는 것은 데이터 무결성 및 시스템 안정성을 보장하기 위해 중요합니다. 필요한 구성, 리소스, 이벤트 및 인증서를 포함하는 데이터베이스의 정기적인 백업은 데이터베이스 오류, 손상 및 실수로 데이터 손실을 방지합니다.
roxctl
CLI를 사용하여 backup
명령을 사용하여 백업을 수행할 수 있습니다. 이 명령을 실행하려면 API 토큰 또는 관리자 암호가 필요합니다.
1.1.1. API 토큰을 사용하여 온 디맨드 백업
API 토큰을 사용하여 RHACS의 전체 데이터베이스를 백업할 수 있습니다.
사전 요구 사항
-
admin
역할이 있는 API 토큰이 있습니다. -
roxctl
CLI를 설치했습니다.
절차
다음 명령을 실행하여
ROX_API_TOKEN
및ROX_ENDPOINT
환경 변수를 설정합니다.$ export ROX_API_TOKEN=<api_token>
$ export ROX_ENDPOINT=<address>:<port_number>
다음 명령을 실행하여 Central에 대한 백업을 시작합니다.
$ roxctl central backup 1
- 1
--output
옵션을 사용하여 백업 파일 위치를 지정할 수 있습니다.
기본적으로
roxctl
CLI는 명령을 실행하는 디렉터리에 백업 파일을 저장합니다.
추가 리소스
1.1.2. 관리자 암호를 사용하여 온 디맨드 백업
관리자 암호를 사용하여 RHACS의 전체 데이터베이스를 백업할 수 있습니다.
사전 요구 사항
- 관리자 암호가 있습니다.
-
roxctl
CLI를 설치했습니다.
절차
다음 명령을 실행하여
ROX_ENDPOINT
환경 변수를 설정합니다.$ export ROX_ENDPOINT=<address>:<port_number>
다음 명령을 실행하여 Central에 대한 백업을 시작합니다.
$ roxctl -p <admin_password> central backup 1
- 1
- &
lt;admin_password&
gt;는 관리자 암호를 지정합니다.
기본적으로
roxctl
CLI는 명령을 실행하는 디렉터리에 백업 파일을 저장합니다.--output
옵션을 사용하여 백업 파일 위치를 지정할 수 있습니다.
1.2. 중앙 배포 백업
중앙 인스턴스의 배포를 백업할 수 있습니다. 동일한 구성 값을 사용하여 다른 네임스페이스 또는 클러스터로 중앙을 마이그레이션하려는 경우 유용할 수 있습니다.
Red Hat은 roxctl
CLI를 사용하여 배포 구성 백업을 지원하지 않습니다. oc
또는 kubectl
CLI를 사용하여 Central 인스턴스와 관련된 매니페스트를 백업하고 구성을 복원할 수 있습니다.
1.2.1. RHACS Operator를 사용하여 배포 백업
RHACS Operator를 사용하여 RHACS를 사용하는 경우 OpenShift Container Platform은 Central 사용자 지정 리소스 내에 중앙 배포의 모든 사용자 지정 구성을 저장합니다. Central 사용자 지정 리소스, central-tls
시크릿 및 관리자 암호를 백업할 수 있습니다. central-tls
시크릿에는 보안 클러스터 및 서명 API 토큰으로 인증하기 위한 인증서가 포함되어 있습니다.
절차
다음 명령을 실행하여 중앙 사용자 지정 리소스를 YAML 파일에 저장합니다.
$ oc get central -n _<central-namespace>_ _<central-name>_ -o yaml > central-cr.yaml
다음 명령을 실행하여
central-tls
를 JSON 파일에 저장합니다.$ oc get secret -n _<central-namespace>_ central-tls -o json | jq 'del(.metadata.ownerReferences)' > central-tls.json
JSON 파일의 관리자 암호에 다음 명령을 실행합니다.
$ oc get secret -n _<central-namespace>_ central-htpasswd -o json | jq 'del(.metadata.ownerReferences)' > central-htpasswd.json
1.2.2. Helm을 사용하여 배포 백업
Helm 차트를 사용하여 RHACS를 설치할 때 중앙 배포의 모든 사용자 정의 구성을 Helm 차트에 적용하는 사용자 정의 값에 저장합니다.
사용자 지정 값을 백업하고 YAML 파일에 저장할 수 있습니다.
절차
다음 명령을 실행하여 YAML 파일에서 사용자 정의 Helm 차트 값을 백업합니다.
$ helm get values --all -n _<central-namespace>_ _<central-helm-release>_ -o yaml > central-values-backup.yaml
2장. 백업에서 복원
roxctl
CLI(명령줄 인터페이스)를 사용하여 기존 백업에서 Red Hat Advanced Cluster Security for Kubernetes를 복원할 수 있습니다.
요구 사항 및 백업한 데이터에 따라 다음과 같은 백업 유형에서 복원할 수 있습니다.Depending on your requirements and the data you have backed up, you can restore from the following types of backups:
- 중앙 데이터베이스 백업에서 중앙 데이터베이스 복원: 데이터베이스 오류 또는 데이터 손상 이벤트에서 복구하려면 이 데이터베이스를 사용합니다. Central 데이터베이스를 이전 기능 상태로 복원 및 복구할 수 있습니다.
- Manage Central from the Central deployment backup: Central을 다른 클러스터 또는 네임스페이스로 마이그레이션하는 경우 이 방법을 사용합니다. 이 옵션은 중앙 설치의 구성을 복원합니다.
2.1. roxctl CLI를 사용하여 중앙 데이터베이스 복원
roxctl
CLI를 사용하여 restore
명령을 사용하여 Red Hat Advanced Cluster Security for Kubernetes를 복원할 수 있습니다. 이 명령을 실행하려면 API 토큰 또는 관리자 암호가 필요합니다.
2.1.1. API 토큰을 사용하여 복원
API 토큰을 사용하여 RHACS의 전체 데이터베이스를 복원할 수 있습니다.
사전 요구 사항
- RHACS 백업 파일이 있습니다.
- 관리자 역할이 있는 API 토큰이 있습니다.
-
roxctl
CLI를 설치했습니다.
절차
다음 명령을 실행하여
ROX_API_TOKEN
및ROX_ENDPOINT
환경 변수를 설정합니다.$ export ROX_API_TOKEN=<api_token>
$ export ROX_ENDPOINT=<address>:<port_number>
다음 명령을 실행하여 중앙 데이터베이스를 복원합니다.
$ roxctl central db restore <backup_file> 1
- 1
- &
lt;backup_file
> 의 경우 복원할 백업 파일의 이름을 지정합니다.
2.1.2. 관리자 암호를 사용하여 복원
관리자 암호를 사용하여 RHACS의 전체 데이터베이스를 복원할 수 있습니다.
사전 요구 사항
- RHACS 백업 파일이 있습니다.
- 관리자 암호가 있습니다.
-
roxctl
CLI를 설치했습니다.
2.1.3. 복원 작업 재시작
복원 작업 중에 연결이 중단되었거나 오프라인으로 전환해야 하는 경우 복원 작업을 다시 시작할 수 있습니다.
-
resume 작업을 실행하는 머신에 대한 액세스 권한이 없는 경우
roxctl central db restore status
명령을 사용하여 진행 중인 복원 작업의 상태를 확인할 수 있습니다. -
연결이 중단되면
roxctl
CLI에서 연결을 다시 사용할 수 있는 즉시 작업을 자동으로 복원하려고 합니다. 자동 연결 재시도는시간 초과
옵션에 지정된 기간에 따라 달라집니다. -
--timeout
옵션을 사용하여roxctl
CLI에서 복원 작업을 재개하지 않는 시간(초, 분 또는 시간)을 지정합니다. 옵션을 지정하지 않으면 기본 제한 시간은 10분입니다. -
복원 작업이 중단되거나 취소하려는 경우
roxctl central db restore cancel
명령을 사용하여 실행 중인 복원 작업을 취소합니다. - 복원 작업이 중단된 경우 취소하거나 시간이 만료된 경우 원래 명령을 다시 실행하여 이전 복원을 다시 시작할 수 있습니다.
- 중단 중에 RHACS는 24시간 동안 지속적인 복원 작업을 캐시합니다. 원래 restore 명령을 다시 실행하여 이 작업을 다시 시작할 수 있습니다.
-
timeout
옵션은 클라이언트 측 연결 재시도만 제어하며 24시간의 서버 측 복원 캐시에는 영향을 미치지 않습니다. - 중앙 pod를 다시 시작하면 복원을 재개할 수 없습니다.
- 복원 작업이 중단된 경우 24시간 이내에 재시작한 후 Central을 다시 시작해야 합니다. 그렇지 않으면 RHACS가 복원 작업을 취소합니다.
2.2. roxctl CLI를 사용하여 중앙 배포 복원
만든 백업을 사용하여 중앙 배포를 원래 구성으로 복원할 수 있습니다.
먼저 roxctl
CLI를 사용하여 인증서를 복원한 다음 중앙 설치 스크립트를 실행하여 중앙 배포를 복원해야 합니다.
2.2.1. roxctl CLI를 사용하여 인증서 복원
roxctl
CLI를 사용하여 RHACS Central 구성 요소를 클러스터에 설치하는 Kubernetes 매니페스트를 생성합니다. 이렇게 하면 보안 클러스터의 인증 인증서와 API 토큰이 복원된 버전에 유효한 상태로 유지됩니다. RHACS Central의 다른 인스턴스를 백업한 경우 해당 백업의 인증서 파일을 사용할 수 있습니다.
roxctl
CLI를 사용하면 전체 Central 배포를 복원할 수 없습니다. 대신 roxctl
CLI를 사용하여 중앙 데이터 백업의 인증서를 사용하여 새 매니페스트를 생성합니다. 나중에 해당 매니페스트를 사용하여 Central을 설치합니다.
사전 요구 사항
- Red Hat Advanced Cluster Security for Kubernetes 백업 파일이 있어야 합니다.
-
roxctl
CLI가 설치되어 있어야 합니다.
절차
대화형 설치 명령을 실행합니다.
$ roxctl central generate interactive
다음 프롬프트에서 Red Hat Advanced Cluster Security for Kubernetes 백업 파일의 경로를 입력합니다.
Enter path to the backup bundle from which to restore keys and certificates (optional): _<backup-file-path>_
- 다음 프롬프트의 경우 Enter 를 눌러 기본값을 허용하거나 필요에 따라 사용자 지정 값을 입력합니다.
완료 시 대화형 설치 명령은 Central을 배포하는 데 필요한 YAML 매니페스트와 스크립트가 있는 central-bundle
이라는 폴더를 생성합니다.
2.2.2. 중앙 설치 스크립트 실행
대화형 설치 프로그램을 실행한 후 setup.sh
스크립트를 실행하여 Central을 설치할 수 있습니다.
절차
setup.sh
스크립트를 실행하여 이미지 레지스트리 액세스를 구성합니다.$ ./central-bundle/central/scripts/setup.sh
필요한 리소스를 생성합니다.
$ oc create -R -f central-bundle/central
배포 진행 상황을 확인합니다.
$ oc get pod -n stackrox -w
Central이 실행되면 RHACS 포털 IP 주소를 찾아 브라우저에서 엽니다. 프롬프트에 응답할 때 선택한 노출 방법에 따라 다음 방법 중 하나를 사용하여 IP 주소를 가져옵니다.
노출 방법 명령 address 예제 경로
oc -n stackrox get route central
출력의
HOST/PORT
열에 있는 주소https://central-stackrox.example.route
노드 포트
oc get node -owide && oc -n stackrox get svc central-loadbalancer
서비스에 표시된 포트에서 모든 노드의 IP 또는 호스트 이름
https://198.51.100.0:31489
로드 밸런서
oc -n stackrox get svc central-loadbalancer
서비스에 표시된 EXTERNAL-IP 또는 호스트 이름이 포트 443에서
https://192.0.2.0
없음
central-bundle/central/scripts/port-forward.sh 8443
https://localhost:8443
https://localhost:8443
대화형 설치 중에 자동 생성 암호를 선택한 경우 다음 명령을 실행하여 Central에 로그인할 때 이를 확인할 수 있습니다.
$ cat central-bundle/password
2.3. RHACS Operator를 사용하여 중앙 배포 복원
RHACS Operator를 사용하여 중앙 배포를 원래 구성으로 복원할 수 있습니다. 성공적으로 복원하려면 중앙 사용자 정의 리소스, central-tls
및 관리자 암호의 백업이 필요합니다.
사전 요구 사항
-
central-tls
백업 파일이 있어야 합니다. - 중앙 사용자 지정 리소스 백업 파일이 있어야 합니다.
- 관리자 암호 백업 파일이 있어야 합니다.
절차
central-tls
백업 파일을 사용하여 리소스를 생성합니다.$ oc apply -f central-tls.json
central-htpasswd
백업 파일을 사용하여 보안을 생성합니다.$ oc apply -f central-htpasswd.json
central-cr.yaml
파일을 사용하여 중앙 배포를 생성합니다.$ oc apply -f central-cr.yaml
2.4. Helm을 사용하여 중앙 배포 복원
Helm을 사용하여 중앙 배포를 원래 구성으로 복원할 수 있습니다. 성공적으로 복원하려면 중앙 사용자 정의 리소스, central-tls
시크릿 및 관리자 암호의 백업이 필요합니다.
사전 요구 사항
- Helm 값 백업 파일이 있어야 합니다.
- Red Hat Advanced Cluster Security for Kubernetes 백업 파일이 있어야 합니다.
-
roxctl
CLI가 설치되어 있어야 합니다.
절차
RHACS 데이터베이스 백업 파일에서
values-private.yaml
을 생성합니다.$ roxctl central generate k8s pvc --backup-bundle _<path-to-backup-file>_ --output-format "helm-values"
helm install
명령을 실행하고 백업 파일을 지정합니다.$ helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f central-values-backup.yaml -f central-bundle/values-private.yaml
2.5. 중앙을 다른 클러스터 또는 네임스페이스로 복원
RHACS Central 데이터베이스 백업과 배포를 사용하여 Central을 다른 클러스터 또는 네임스페이스로 복원할 수 있습니다.
다음 목록은 설치 단계에 대한 간략한 개요를 제공합니다.
설치 방법에 따라 다음 주제의 지침에 따라 중앙 배포를 먼저 복원해야 합니다.
중요- 이전 Central 인스턴스에서 발행한 보안 클러스터 및 API 토큰이 유효한 상태로 유지되도록 백업된 중앙 인증서를 사용해야 합니다.
- 다른 네임스페이스에 배포하는 경우 백업 리소스 또는 명령에서 네임스페이스를 변경해야 합니다.
- roxctl CLI 주제를 사용하여 Restoring Central 데이터베이스의 명령을 따라 중앙 데이터베이스를 복원합니다.
- 이전 RHACS Central 인스턴스를 가리키는 외부 DNS 항목이 있는 경우 생성한 새 RHACS Central 인스턴스를 가리키도록 다시 구성해야 합니다.