1.2. IKEvSync 영구 볼륨 복제 서비스


gRPCSync는 클러스터 내의 영구 볼륨을 비동기식 복제하거나 복제와 호환되지 않는 스토리지 유형이 있는 클러스터 전체에서 비동기식 복제를 가능하게 하는 Kubernetes Operator입니다. CSI(Container Storage Interface)를 사용하여 호환성 제한을 해결합니다. 사용 중인 환경에 presenceSync Operator를 배포한 후 이를 활용하여 영구 데이터의 복사본을 만들고 유지 관리할 수 있습니다. gRPCSync는 Red Hat OpenShift Container Platform 클러스터에서만 버전 4.8 이상에 있는 영구 볼륨 클레임을 복제할 수 있습니다.

1.2.1. skopeoSync를 사용하여 영구 볼륨 복제

지원되는 세 가지 방법을 사용하여 Rsync, restic 또는 Rclone과 같은 동기화 위치 수에 따라 IKEvSync를 사용하여 영구 볼륨을 복제할 수 있습니다.

1.2.1.1. 사전 요구 사항

클러스터에 segmentSync를 설치하기 전에 다음 요구 사항이 있어야 합니다.

  • Red Hat Advanced Cluster Management 버전 2.4 이상을 실행하는 구성된 Red Hat OpenShift Container Platform 환경
  • 동일한 Red Hat Advanced Cluster Management hub 클러스터에서 관리하는 구성된 두 개 이상의 클러스터
  • funcSync로 구성 중인 클러스터 간 네트워크 연결입니다. 클러스터가 동일한 네트워크에 없는 경우 Submariner 다중 클러스터 네트워킹 및 서비스 검색을 구성하고 ServiceTypeClusterIP 값을 사용하여 클러스터를 네트워크로 설정하거나 ServiceTypeLoadBalancer 값이 있는 로드 밸런서를 사용할 수 있습니다.
  • 소스 영구 볼륨에 사용하는 스토리지 드라이버는 CSI와 호환되어야 하며 스냅샷을 지원할 수 있어야 합니다.

1.2.1.2. 관리형 클러스터에 IKEvSync 설치

IKEvSync가 한 클러스터에서 다른 클러스터의 영구 볼륨 클레임에 영구 볼륨 클레임을 복제할 수 있도록 하려면 소스 및 대상 관리 클러스터 모두에NodePolicySync를 설치해야 합니다.

grSync는 자체 네임스페이스를 생성하지 않으므로 다른 OpenShift Container Platform all-namespace Operator와 동일한 네임스페이스에 있습니다. WorkingSync의 Operator 설정을 변경하면 채널 업데이트에 대한 수동 승인으로 변경되는 경우와 같이 동일한 네임스페이스의 다른 연산자에도 영향을 미칩니다.

두 가지 방법 중 하나를 사용하여 사용자의 환경에 있는 두 클러스터에NodePolicySync를 설치할 수 있습니다. 다음 섹션에 설명된 대로 hub 클러스터의 각 관리 클러스터에 레이블을 추가하거나 수동으로 ManagedClusterAddOn 을 만들고 적용할 수 있습니다.

1.2.1.2.1. 라벨을 사용하여NodePolicySync 설치

레이블을 추가하여 관리 클러스터에 devolSync를 설치하려면 다음을 수행합니다.

  • Red Hat Advanced Cluster Management 콘솔에서 다음 단계를 완료합니다.

    1. 허브 클러스터 콘솔의 클러스터 페이지에서 관리형 클러스터 중 하나를 선택하여 세부 정보를 확인합니다.
    2. 라벨 필드에 다음 라벨을 추가합니다.

      addons.open-cluster-management.io/volsync=true
      Copy to Clipboard Toggle word wrap

      gRPCSync 서비스 pod가 관리형 클러스터에 설치되어 있습니다.

    3. 동일한 레이블을 다른 관리 클러스터에 추가합니다.
    4. 각 관리 클러스터에서 다음 명령을 실행하여 gRPCSync Operator가 설치되었는지 확인합니다.

      oc get csv -n openshift-operators
      Copy to Clipboard Toggle word wrap

      presenceSync가 설치될 때 사용할 수 있는 연산자가 있습니다.

  • 명령줄 인터페이스에서 다음 단계를 완료합니다.

    1. hub 클러스터에서 명령줄 세션을 시작합니다.
    2. 다음 명령을 입력하여 첫 번째 클러스터에 레이블을 추가합니다.

      oc label managedcluster <managed-cluster-1> "addons.open-cluster-management.io/volsync"="true"
      Copy to Clipboard Toggle word wrap

      managed-cluster-1 을 관리형 클러스터 중 하나의 이름으로 교체합니다.

    3. 다음 명령을 입력하여 두 번째 클러스터에 레이블을 추가합니다.

      oc label managedcluster <managed-cluster-2> "addons.open-cluster-management.io/volsync"="true"
      Copy to Clipboard Toggle word wrap

      managed-cluster-2 를 다른 관리 클러스터의 이름으로 교체합니다.

      ManagedClusterAddOn 리소스는 각각의 관리 클러스터의 네임스페이스에 허브 클러스터에서 자동으로 생성해야 합니다.

1.2.1.2.2. ManagedClusterAddOn을 사용하여 gRPCSync 설치

ManagedClusterAddOn 을 수동으로 추가하여 ProvisionSync를 관리형 클러스터에 설치하려면 다음 단계를 완료하십시오.

  1. hub 클러스터에서 다음 예와 유사한 콘텐츠가 포함된 volsync-mcao.yaml 이라는 YAML 파일을 만듭니다.

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: ManagedClusterAddOn
    metadata:
      name: volsync
      namespace: <managed-cluster-1-namespace>
    spec: {}
    Copy to Clipboard Toggle word wrap

    managed-cluster-1-namespace 를 관리형 클러스터 중 하나의 네임스페이스로 교체합니다. 이 네임스페이스는 관리 클러스터의 이름과 동일합니다.

    참고: 이름은 volsync 여야 합니다.

  2. 다음 예와 유사한 명령을 입력하여 구성에 파일을 적용합니다.

    oc apply -f volsync-mcao.yaml
    Copy to Clipboard Toggle word wrap
  3. 다른 관리 클러스터에 대해 절차를 반복합니다.

    ManagedClusterAddOn 리소스는 각각의 관리 클러스터의 네임스페이스에 허브 클러스터에서 자동으로 생성해야 합니다.

1.2.1.3. Rsync 복제 구성

Rsync 복제를 사용하여 영구 볼륨의 1:1 비동기 복제를 생성할 수 있습니다. 재해 복구 또는 원격 사이트로 데이터를 보내는 데 Rsync 기반 복제를 사용할 수 있습니다.

다음 예제에서는 Rsync 메서드를 사용하여 구성하는 방법을 보여줍니다. Rsync에 대한 자세한 내용은 Usage in the Rsync documentation를 참조하십시오.

1.2.1.3.1. 관리형 클러스터 전체에서 Rsync 복제 구성

Rsync 기반 복제의 경우 소스 및 대상 클러스터에서 사용자 정의 리소스를 구성합니다. 사용자 지정 리소스는 address 값을 사용하여 소스를 대상에 연결하고 sshKeys 를 사용하여 전송된 데이터의 보안을 유지합니다.

참고: 대상에서 소스로 addresssshKeys 의 값을 복사해야 하므로 소스를 구성하기 전에 대상을 구성하십시오.

이 예에서는 source-ns 네임스페이스의 소스 클러스터의 영구 볼륨 클레임에서 destination -ns 네임스페이스의 대상 클러스터의 영구 볼륨 클레임으로 Rsync 복제를 구성하는 단계를 제공합니다. 필요한 경우 해당 값을 다른 값으로 교체할 수 있습니다.

  1. 대상 클러스터를 구성합니다.

    1. 대상 클러스터에서 다음 명령을 실행하여 네임스페이스를 생성합니다.

      oc create ns <destination-ns>
      Copy to Clipboard Toggle word wrap

      destination-ns 를 대상 영구 볼륨 클레임을 포함할 네임스페이스의 이름으로 교체합니다.

    2. 다음 YAML 콘텐츠를 복사하여 replication_destination.yaml 이라는 새 파일을 생성합니다.

      apiVersion: volsync.backube/v1alpha1
      kind: ReplicationDestination
      metadata:
        name: <destination>
        namespace: <destination-ns>
      spec:
        rsync:
          serviceType: LoadBalancer
          copyMethod: Snapshot
          capacity: 2Gi
          accessModes: [ReadWriteOnce]
          storageClassName: gp2-csi
          volumeSnapshotClassName: csi-aws-vsc
      Copy to Clipboard Toggle word wrap

      참고: 용량 값은 복제 중인 영구 볼륨 클레임의 용량과 일치해야 합니다.

      대상 을 복제 대상 CR의 이름으로 바꿉니다.

      destination-ns 를 대상이 있는 네임스페이스의 이름으로 바꿉니다.

      이 예에서는 LoadBalancerServiceType 값이 사용됩니다. 로드 밸런서 서비스는 소스 관리형 클러스터가 정보를 다른 대상 관리 클러스터로 전송할 수 있도록 소스 클러스터에서 생성합니다. 소스 및 대상이 동일한 클러스터에 있거나 Submariner 네트워크 서비스가 구성된 경우 ClusterIP 를 서비스 유형으로 사용할 수 있습니다. 소스 클러스터를 구성할 때 참조할 시크릿의 주소와 이름을 기록해 둡니다.

      storageClassNamevolumeSnapshotClassName 은 선택적 매개변수입니다. 특히 환경의 기본값과 다른 스토리지 클래스 및 볼륨 스냅샷 클래스 이름을 사용하는 경우 환경 값을 지정합니다.

    3. 대상 클러스터에서 다음 명령을 실행하여 replicationdestination 리소스를 생성합니다.

      oc create -n <destination-ns> -f replication_destination.yaml
      Copy to Clipboard Toggle word wrap

      destination-ns 를 대상이 있는 네임스페이스의 이름으로 바꿉니다.

      replicationdestination 리소스가 생성되면 다음 매개변수 및 값이 리소스에 추가됩니다.

      Expand
      매개변수현재의

      .status.rsync.address

      소스 및 대상 클러스터가 통신할 수 있도록 하는 데 사용되는 대상 클러스터의 IP 주소입니다.

      .status.rsync.sshKeys

      소스 클러스터에서 대상 클러스터로 안전하게 데이터를 전송할 수 있는 SSH 키 파일의 이름입니다.

    4. 다음 명령을 실행하여 소스 클러스터에서 사용할 .status.rsync.address 값을 복사합니다.

      ADDRESS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsync.address}}`
      echo $ADDRESS
      Copy to Clipboard Toggle word wrap

      대상 을 복제 대상 사용자 정의 리소스의 이름으로 바꿉니다.

      destination-ns 를 대상이 있는 네임스페이스의 이름으로 바꿉니다.

      출력은 Amazon Web Services 환경에 해당하는 다음 출력과 유사해야 합니다.

      a831264645yhrjrjyer6f9e4a02eb2-5592c0b3d94dd376.elb.us-east-1.amazonaws.com
      Copy to Clipboard Toggle word wrap
    5. 다음 명령을 실행하여 보안 이름 및 .status.rsync.sshKeys 값으로 제공되는 보안의 콘텐츠를 복사합니다.

      SSHKEYS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsync.sshKeys}}`
      echo $SSHKEYS
      Copy to Clipboard Toggle word wrap

      대상 을 복제 대상 사용자 정의 리소스의 이름으로 바꿉니다.

      destination-ns 를 대상이 있는 네임스페이스의 이름으로 바꿉니다.

      소스를 구성할 때 소스 클러스터에 입력해야 합니다. 출력은 다음 이름과 유사할 수 있는 SSH 키 보안 파일의 이름이어야 합니다.

      volsync-rsync-dst-src-destination-name
      Copy to Clipboard Toggle word wrap
  2. 복제하려는 소스 영구 볼륨 클레임을 식별합니다.

    참고: 소스 영구 볼륨 클레임은 CSI 스토리지 클래스에 있어야 합니다.

  3. ReplicationSource 항목을 생성합니다.

    1. 다음 YAML 콘텐츠를 복사하여 소스 클러스터에서 replication_source.yaml 이라는 새 파일을 생성합니다.

      apiVersion: volsync.backube/v1alpha1
      kind: ReplicationSource
      metadata:
        name: <source>
        namespace: <source-ns>
      spec:
        sourcePVC: <persistent_volume_claim>
        trigger:
          schedule: "*/3 * * * *" #/*
        rsync:
          sshKeys: <mysshkeys>
          address: <my.host.com>
          copyMethod: Snapshot
          storageClassName: gp2-csi
          volumeSnapshotClassName: gp2-csi
      Copy to Clipboard Toggle word wrap

      source 를 복제 소스 사용자 정의 리소스의 이름으로 바꿉니다. 이를 자동으로 교체하는 방법에 대한 지침은 이 절차의 3vi 단계를 참조하십시오.

      source-ns 를 소스가 있는 영구 볼륨 클레임의 네임스페이스로 바꿉니다. 이를 자동으로 교체하는 방법에 대한 지침은 이 절차의 3vi 단계를 참조하십시오.

      persistent_volume_claim 을 소스 영구 볼륨 클레임의 이름으로 교체합니다.

      mysshkeys 를 구성할 때 ReplicationDestination.status.rsync.sshKeys 필드에서 복사한 키로 교체합니다.

      my.host.com 을 구성할 때 ReplicationDestination.status.rsync.address 필드에서 복사한 호스트 주소로 바꿉니다.

      스토리지 드라이버에서 복제를 지원하는 경우 ClonecopyMethod 값으로 사용하는 것이 복제를 위한 프로세스가 더 간소화될 수 있습니다.

      storageClassNamevolumeSnapshotClassName 은 선택적 매개변수입니다. 해당 환경의 기본값과 다른 스토리지 클래스 및 볼륨 스냅샷 클래스 이름을 사용하는 경우 해당 값을 지정합니다.

      이제 영구 볼륨의 동기화 방법을 설정할 수 있습니다.

    2. 대상 클러스터에 대해 다음 명령을 입력하여 대상 클러스터에서 SSH 보안을 복사합니다.

      oc get secret -n <destination-ns> $SSHKEYS -o yaml > /tmp/secret.yaml
      Copy to Clipboard Toggle word wrap

      destination-ns 를 대상이 있는 영구 볼륨 클레임의 네임스페이스로 바꿉니다.

    3. 다음 명령을 입력하여 vi 편집기에서 시크릿 파일을 엽니다.

      vi /tmp/secret.yaml
      Copy to Clipboard Toggle word wrap
    4. 대상 클러스터의 열려 있는 시크릿 파일에서 다음과 같이 변경합니다.

      • 네임스페이스를 소스 클러스터의 네임스페이스로 변경합니다. 이 예제에서는 source-ns 입니다.
      • 소유자 참조(.metadata.ownerReferences)를 제거합니다.
    5. 소스 클러스터에서 소스 클러스터에 다음 명령을 입력하여 시크릿 파일을 생성합니다.

      kubectl create -f /tmp/secret.yaml
      Copy to Clipboard Toggle word wrap
    6. 소스 클러스터에서 ReplicationSource 오브젝트의 addresssshKeys 값을 다음 명령을 입력하여 대상 클러스터에서 지정한 값으로 교체하여 replication_source.yaml 파일을 수정합니다.

      sed -i "s/<my.host.com>/$ADDRESS/g" replication_source.yaml
      sed -i "s/<mysshkeys>/$SSHKEYS/g" replication_source.yaml
      oc create -n <source> -f replication_source.yaml
      Copy to Clipboard Toggle word wrap

      my.host.com 을 구성할 때 ReplicationDestination.status.rsync.address 필드에서 복사한 호스트 주소로 바꿉니다.

      mysshkeys 를 구성할 때 ReplicationDestination.status.rsync.sshKeys 필드에서 복사한 키로 교체합니다.

      source 를 소스가 있는 영구 볼륨 클레임의 이름으로 바꿉니다.

      참고: 복제하려는 영구 볼륨 클레임과 동일한 네임스페이스에 파일을 생성해야 합니다.

    7. ReplicationSource 오브젝트에서 다음 명령을 실행하여 복제가 완료되었는지 확인합니다.

      kubectl describe ReplicationSource -n <source-ns> <source>
      Copy to Clipboard Toggle word wrap

      source-ns 를 소스가 있는 영구 볼륨 클레임의 네임스페이스로 바꿉니다.

      source 를 복제 소스 사용자 정의 리소스의 이름으로 교체합니다.

      복제에 성공하면 출력이 다음 예와 유사해야 합니다.

      Status:
        Conditions:
          Last Transition Time:  2021-10-14T20:48:00Z
          Message:               Synchronization in-progress
          Reason:                SyncInProgress
          Status:                True
          Type:                  Synchronizing
          Last Transition Time:  2021-10-14T20:41:41Z
          Message:               Reconcile complete
          Reason:                ReconcileComplete
          Status:                True
          Type:                  Reconciled
        Last Sync Duration:      5m20.764642395s
        Last Sync Time:          2021-10-14T20:47:01Z
        Next Sync Time:          2021-10-14T20:48:00Z
      Copy to Clipboard Toggle word wrap

      Last Sync Time 에 시간이 나열되지 않은 경우 복제가 완료되지 않습니다.

원래 영구 볼륨 클레임의 복제본이 있습니다.

1.2.1.4. restic 백업 구성

restic 기반 백업은 restic-based 백업 사본을 restic-config.yaml 시크릿 파일에 지정된 위치에 복사합니다. restic 백업은 클러스터 간 데이터를 동기화하지 않지만 데이터 백업을 제공합니다.

restic 기반 백업을 구성하려면 다음 단계를 완료합니다.

  1. 다음 YAML 콘텐츠와 유사한 보안을 생성하여 백업 이미지가 저장된 리포지터리를 지정합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: restic-config
    type: Opaque
    stringData:
      RESTIC_REPOSITORY: <my-restic-repository>
      RESTIC_PASSWORD: <my-restic-password>
      AWS_ACCESS_KEY_ID: access
      AWS_SECRET_ACCESS_KEY: password
    Copy to Clipboard Toggle word wrap

    my-restic-repository 를 백업 파일을 저장하려는 S3 버킷 리포지토리의 위치로 교체합니다.

    my-restic-password 를 리포지토리에 액세스하는 데 필요한 암호화 키로 교체합니다.

    필요한 경우 액세스암호를 공급자의 인증 정보로 바꿉니다. 자세한 내용은 새 리포지토리 준비를 참조하십시오.

    중요: 동일한 S3 버킷에 여러 영구 볼륨 클레임을 백업할 때 버킷 경로는 각 영구 볼륨 클레임마다 고유해야 합니다. 각 영구 볼륨 클레임은 별도의 ReplicationSource 로 백업되며 각각 별도의 restic-config 시크릿이 필요합니다.

    동일한 S3 버킷을 공유하면 각 ReplicationSource 에 전체 S3 버킷에 대한 쓰기 액세스 권한이 있습니다.

  2. 다음 YAML 콘텐츠와 유사한 ReplicationSource 오브젝트를 생성하여 백업 정책을 구성합니다.

    apiVersion: volsync.backube/v1alpha1
    kind: ReplicationSource
    metadata:
      name: mydata-backup
    spec:
      sourcePVC: <source>
      trigger:
        schedule: "*/30 * * * *" #/*
      restic:
        pruneIntervalDays: 14
        repository: <restic-config>
        retain:
          hourly: 6
          daily: 5
          weekly: 4
          monthly: 2
          yearly: 1
        copyMethod: Clone
      # The StorageClass to use when creating the PiT copy (same as source PVC if omitted)
      #storageClassName: my-sc-name
      # The VSC to use if the copy method is Snapshot (default if omitted)
      #volumeSnapshotClassName: my-vsc-name
    Copy to Clipboard Toggle word wrap

    소스를 백업 중인 영구 볼륨 클레임으로 교체합니다.

    일정 값을 백업을 실행하는 빈도로 바꿉니다. 이 예제에는 30분마다 일정이 있습니다. 자세한 내용은 동기화 스케줄링 을 참조하십시오.

    PruneIntervalDays 값을 데이터를 다시 압축하여 공간을 절약하기 위해 경과한 일 수로 바꿉니다. 정리 작업을 수행하면 실행 중에 상당한 I/O 트래픽을 생성할 수 있습니다.

    restic-config 를 1단계에서 생성한 보안 이름으로 교체합니다.

    백업된 이미지의 보존 정책으로 보존 값을 설정합니다.

    모범 사례: CopyMethod 값으로 Clone 을 사용하여 지정 시간 이미지가 저장되도록 합니다.

    백업 옵션에 대한 자세한 내용은 WorkingSync 설명서의 백업 옵션을 참조하십시오.

1.2.1.4.1. restic 백업 복원

restic 백업에서 복사한 데이터를 새 영구 볼륨 클레임으로 복원할 수 있습니다. 모범 사례: 하나의 백업만 새 영구 볼륨 클레임으로 복원합니다. restic 백업을 복원하려면 다음 단계를 완료합니다.

  1. 다음 예와 유사한 새 데이터를 포함하도록 새 영구 볼륨 클레임을 생성합니다.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: <pvc-name>
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 3Gi
    Copy to Clipboard Toggle word wrap

    pvc-name 을 새 영구 볼륨 클레임의 이름으로 교체합니다.

  2. 다음 예제와 유사한 ReplicationDestination 사용자 정의 리소스를 생성하여 데이터를 복원할 위치를 지정합니다.

    apiVersion: volsync.backube/v1alpha1
    kind: ReplicationDestination
    metadata:
      name: <destination>
    spec:
      trigger:
        manual: restore-once
      restic:
        repository: <restic-repo>
        destinationPVC: <pvc-name>
        copyMethod: Direct
    Copy to Clipboard Toggle word wrap

    대상 을 복제 대상 CR의 이름으로 바꿉니다.

    restic-repo 를 소스가 저장된 리포지토리 경로로 바꿉니다.

    pvc-name 을 데이터를 복원하려는 새 영구 볼륨 클레임의 이름으로 교체합니다. 새 영구 볼륨 클레임을 프로비저닝하지 않고 기존 영구 볼륨 클레임을 사용합니다.

복원 프로세스는 한 번만 완료해야 하며 이 예제에서는 최신 백업을 복원합니다. 복원 옵션에 대한 자세한 내용은torSync 설명서의 복원 옵션을 참조하십시오.

1.2.1.5. Rclone 복제 구성

Rclone 백업은 AWS S3와 같은 중간 오브젝트 스토리지 위치를 통해 Rclone을 사용하여 단일 영구 볼륨을 여러 위치에 복사합니다. 데이터를 여러 위치에 배포할 때 유용할 수 있습니다.

Rclone 복제를 구성하려면 다음 단계를 완료합니다.

  1. 다음 예와 유사한 ReplicationSource 사용자 정의 리소스를 만듭니다.

    apiVersion: volsync.backube/v1alpha1
    kind: ReplicationSource
    metadata:
      name: <source>
      namespace: <source-ns>
    spec:
      sourcePVC: <source-pvc>
      trigger:
        schedule: "*/6 * * * *" #\*
      rclone:
        rcloneConfigSection: <intermediate-s3-bucket>
        rcloneDestPath: <destination-bucket>
        rcloneConfig: <rclone-secret>
        copyMethod: Snapshot
        storageClassName: <my-sc-name>
        volumeSnapshotClassName: <my-vsc>
    Copy to Clipboard Toggle word wrap

    source-pvc 를 복제 소스 사용자 정의 리소스의 이름으로 교체합니다.

    source-ns 를 소스가 있는 영구 볼륨 클레임의 네임스페이스로 바꿉니다.

    복제 중인 영구 볼륨 클레임으로 소스를 교체합니다.

    일정 값을 복제 실행 빈도로 바꿉니다. 이 예제에는 6분마다 일정이 있습니다. 이 값은 따옴표 내에 있어야 합니다. 자세한 내용은 동기화 스케줄링 을 참조하십시오.

    intermediate-s3-bucket 을 Rclone 구성 파일의 구성 섹션 경로로 바꿉니다.

    destination-bucket 을 복제된 파일을 복사하려는 오브젝트 버킷의 경로로 교체합니다.

    rclone-secret 을 Rclone 구성 정보가 포함된 시크릿 이름으로 교체합니다.

    copyMethod 의 값을 Clone,Direct, Snapshot 으로 설정합니다. 이 값은 지정 시간 복사가 생성되는지 여부를 지정하고, 그렇다면 이를 생성하는 데 사용되는 메서드를 지정합니다.

    my-sc-name 을 지정 시간 복사에 사용하려는 스토리지 클래스의 이름으로 바꿉니다. 지정하지 않으면 소스 볼륨의 스토리지 클래스가 사용됩니다.

    SnapshotcopyMethod 로 지정한 경우 my-vsc 를 사용할 VolumeSnapshotClass 이름으로 교체합니다. 다른 유형의 copyMethod 에는 이 작업이 필요하지 않습니다.

  2. 다음 예와 유사한 ReplicationDestination 사용자 정의 리소스를 만듭니다.

    apiVersion: volsync.backube/v1alpha1
    kind: ReplicationDestination
    metadata:
      name: database-destination
      namespace: dest
    spec:
      trigger:
        schedule: "3,9,15,21,27,33,39,45,51,57 * * * *" #\*
      rclone:
        rcloneConfigSection: <intermediate-s3-bucket>
        rcloneDestPath: <destination-bucket>
        rcloneConfig: <rclone-secret>
        copyMethod: Snapshot
        accessModes: [ReadWriteOnce]
        capacity: 10Gi
        storageClassName: <my-sc>
        volumeSnapshotClassName: <my-vsc>
    Copy to Clipboard Toggle word wrap

    일정 값을 복제를 대상으로 이동하는 빈도로 바꿉니다. 데이터가 대상에서 가져오기 전에 복제를 완료할 수 있도록 소스 및 대상의 일정을 오프셋해야 합니다. 이 예제에는 6분마다 일정이 있으며 3분 간격으로 오프셋됩니다. 이 값은 따옴표 내에 있어야 합니다. 자세한 내용은 동기화 스케줄링 을 참조하십시오.

    intermediate-s3-bucket 을 Rclone 구성 파일의 구성 섹션 경로로 바꿉니다.

    destination-bucket 을 복제된 파일을 복사하려는 오브젝트 버킷의 경로로 교체합니다.

    rclone-secret 을 Rclone 구성 정보가 포함된 시크릿 이름으로 교체합니다.

    copyMethod 의 값을 Clone,Direct, Snapshot 으로 설정합니다. 이 값은 지정 시간 복사가 생성되는지 여부와 같은 경우 이를 생성하는 데 사용되는 메서드를 지정합니다.

    accessModes 값은 영구 볼륨 클레임의 액세스 모드를 지정합니다. 유효한 값은 ReadWriteOnce 또는 ReadWriteMany 입니다.

    capacity 는 대상 볼륨의 크기를 지정합니다. 이 크기는 들어오는 데이터를 포함할 수 있을 만큼 커야 합니다.

    my-sc 를 지정 시간 복사의 대상으로 사용할 스토리지 클래스의 이름으로 바꿉니다. 지정하지 않으면 시스템 스토리지 클래스가 사용됩니다.

    SnapshotcopyMethod 로 지정한 경우 my-vsc 를 사용할 VolumeSnapshotClass 이름으로 교체합니다. 다른 유형의 copyMethod 에는 이 작업이 필요하지 않습니다. 포함되지 않은 경우 시스템 기본 VolumeSnapshotClass 가 사용됩니다.

1.2.2. 복제 이미지를 사용 가능한 영구 볼륨 클레임으로 변환

복제된 이미지를 사용하여 데이터를 복구하거나 영구 볼륨 클레임의 새 인스턴스를 생성해야 할 수 있습니다. 이미지 사본을 사용하려면 먼저 영구 볼륨 클레임으로 변환해야 합니다. 복제된 이미지를 영구 볼륨 클레임으로 변환하려면 다음 단계를 완료합니다.

  1. 복제가 완료되면 다음 명령을 입력하여 ReplicationDestination 오브젝트에서 최신 스냅샷을 식별합니다.

    $ kubectl get replicationdestination <destination> -n <destination-ns> --template={{.status.latestImage.name}}
    Copy to Clipboard Toggle word wrap

    영구 볼륨 클레임을 생성할 때의 최신 스냅샷 값을 기록해 둡니다.

    대상 을 복제 대상의 이름으로 바꿉니다.

    destination-ns 를 대상의 네임스페이스로 바꿉니다.

  2. 다음 예와 유사한 pvc.yaml 파일을 생성합니다.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: <pvc-name>
      namespace: <destination-ns>
    spec:
      accessModes:
        - ReadWriteOnce
      dataSource:
        kind: VolumeSnapshot
        apiGroup: snapshot.storage.k8s.io
        name: <snapshot_to_replace>
      resources:
        requests:
          storage: 2Gi
    Copy to Clipboard Toggle word wrap

    pvc-name 을 새 영구 볼륨 클레임의 이름으로 교체합니다.

    destination-ns 를 영구 볼륨 클레임이 있는 네임스페이스로 교체합니다.

    snapshot_to_replace 를 이전 단계에서 찾은 VolumeSnapshot 이름으로 교체합니다.

    모범 사례: 값이 초기 소스 영구 볼륨 클레임과 적어도 동일한 크기인 경우 resources.requests.storage 를 다른 값으로 업데이트할 수 있습니다.

  3. 다음 명령을 입력하여 영구 볼륨 클레임이 환경에서 실행 중인지 확인합니다.

    $ kubectl get pvc -n <destination-ns>
    Copy to Clipboard Toggle word wrap

원래 백업 이미지가 기본 영구 볼륨 클레임으로 실행되고 있습니다.

1.2.3. 동기화 예약

복제 시작 방법(항상 실행, 일정으로 또는 수동으로)을 결정할 때 세 가지 옵션 중에서 선택합니다. 복제 예약은 종종 선택되는 옵션입니다.

Schedule 옵션은 예약된 시간에 복제를 실행합니다. 스케줄은 cronspec 에 의해 정의되므로 일정은 시간 간격 또는 특정 시간으로 구성할 수 있습니다. 스케줄 값의 순서는 다음과 같습니다.

"분 (0-59) 시간 (0-23) 월 (1-31) 개월 (1-12) 일 주 (0-6)"

예약된 시간이 발생하면 복제가 시작됩니다. 이 복제 옵션에 대한 설정은 다음 내용과 유사합니다.

spec:
  trigger:
    schedule: "*/6 * * * *"
Copy to Clipboard Toggle word wrap

이러한 방법 중 하나를 활성화하면 구성한 메서드에 따라 동기화 일정이 실행됩니다.

자세한 내용 및 옵션은 See Sync 설명서를 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat