Skip to main content
NetApp Backup and Recovery
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Kubernetes 애플리케이션 추가 및 보호

기여자 netapp-mwallis

NetApp Backup and Recovery를 사용하면 웹 UI를 통해 또는 사용자 지정 리소스 파일을 적용하여 Kubernetes 애플리케이션을 추가할 수 있습니다. 애플리케이션은 표준 Kubernetes 리소스로 구성된 네임스페이스 기반 애플리케이션이거나 하나 이상의 가상 머신으로 구성된 VM 기반 애플리케이션일 수 있습니다.

새로운 Kubernetes 애플리케이션 추가 및 보호

Kubernetes 애플리케이션을 보호하는 첫 번째 단계는 NetApp Backup and Recovery에서 애플리케이션을 생성하는 것입니다. 애플리케이션을 생성하면 Backup and Recovery가 Kubernetes 클러스터에서 실행 중인 애플리케이션을 인식하게 됩니다.

시작하기 전에

Kubernetes 애플리케이션을 추가하고 보호하려면 다음이 필요합니다."Kubernetes 워크로드 검색" .

네임스페이스 기반 앱 추가(웹 UI)
단계
  1. NetApp Backup and Recovery 에서 *인벤토리*를 선택합니다.

  2. Kubernetes 인스턴스를 선택하고 *보기*를 선택하여 해당 인스턴스와 연결된 리소스를 확인합니다.

  3. 응용 프로그램 탭을 선택하세요.

  4. *애플리케이션 만들기*를 선택하세요.

  5. 애플리케이션의 이름을 입력하세요.

  6. Cluster 목록에서 애플리케이션이 호스팅되는 클러스터를 선택합니다.

  7. *필터*에서 *네임스페이스*를 선택하여 네임스페이스별로 애플리케이션을 필터링합니다.

  8. 선택적으로 다음 필드 중 하나를 선택하여 보호하려는 리소스를 검색하세요.

    • 연관된 네임스페이스

    • 리소스 유형

    • 라벨 선택기

      1. 클러스터 수준으로 범위가 지정된 리소스를 추가하려면 *클러스터 범위 리소스 추가*를 선택하십시오. 이러한 리소스를 포함하면 애플리케이션을 생성할 때 애플리케이션에 추가됩니다.

      2. 선택적으로 *검색*을 선택하여 검색 기준에 따라 리소스를 찾으세요.

        참고 NetApp Backup and Recovery는 검색 매개변수나 결과를 저장하지 않습니다. 이러한 매개변수는 선택된 Kubernetes 클러스터에서 애플리케이션에 포함될 수 있는 리소스를 검색하는 데 사용됩니다.
  9. Backup and Recovery에 검색 조건과 일치하는 리소스 목록이 표시됩니다.

  10. 보호하려는 리소스가 목록에 포함되어 있으면 *다음*을 선택합니다.

  11. 선택적으로, 정책 영역에서 기존 보호 정책을 선택하여 애플리케이션을 보호하거나 새 정책을 만들 수 있습니다. 정책을 선택하지 않으면 애플리케이션은 보호 정책 없이 생성됩니다. 당신은 할 수 있습니다"보호 정책 추가" 나중에.

  12. Prescripts and postscripts 영역에서 백업 작업 전이나 후에 실행하려는 Prescripts 또는 Postscripts 실행 후크를 활성화하고 구성합니다. 사전 스크립트 또는 사후 스크립트를 활성화하려면 이미 하나 이상을 만들어야 합니다."실행 후크 템플릿" .

  13. *만들기*를 선택하세요.

결과

애플리케이션이 생성되면 Kubernetes 인벤토리의 Applications 탭에 있는 애플리케이션 목록에 나타납니다. NetApp Backup and Recovery를 통해 설정에 따라 애플리케이션을 보호할 수 있으며, Monitoring 영역에서 진행 상황을 확인할 수 있습니다.

VM 기반 앱 추가(웹 UI)
단계
  1. NetApp Backup and Recovery 에서 *인벤토리*를 선택합니다.

  2. Kubernetes 인스턴스를 선택하고 *보기*를 선택하여 해당 인스턴스와 연결된 리소스를 확인합니다.

  3. 응용 프로그램 탭을 선택하세요.

  4. *애플리케이션 만들기*를 선택하세요.

  5. 애플리케이션의 이름을 입력하세요.

  6. Cluster 목록에서 애플리케이션이 호스팅되는 클러스터를 선택합니다.

  7. *필터*에서 *가상 머신*을 선택하여 VM 기반 애플리케이션을 생성합니다.

  8. 네임스페이스를 선택하고 필요에 따라 레이블 선택기를 포함하여 애플리케이션에 추가할 가상 머신을 찾습니다.

    참고 목록에서 VM을 선택하면 애플리케이션 정의가 고정됩니다. 즉, 나중에 새 VM을 애플리케이션에 추가할 수 없습니다(VM을 추가하고 보호하려면 애플리케이션을 편집해야 합니다). 레이블 선택기를 사용하는 경우 개별 VM을 선택하거나 생성된 목록을 편집할 수는 없지만, 나중에 선택기와 일치하는 모든 VM은 자동으로 포함되고 보호됩니다.

    선택한 가상 머신이 오른쪽 목록에 나타납니다.

  9. 보호하려는 VM이 목록에 포함되어 있으면 *다음*을 선택하십시오.

  10. 선택적으로, 정책 영역에서 기존 보호 정책을 선택하여 애플리케이션을 보호하거나 새 정책을 만들 수 있습니다. 정책을 선택하지 않으면 애플리케이션은 보호 정책 없이 생성됩니다. 당신은 할 수 있습니다"보호 정책 추가" 나중에.

  11. Prescripts and postscripts 영역에서 백업 작업 전이나 후에 실행하려는 Prescripts 또는 Postscripts 실행 후크를 활성화하고 구성합니다. 사전 스크립트 또는 사후 스크립트를 활성화하려면 이미 하나 이상을 만들어야 합니다."실행 후크 템플릿" .

  12. *만들기*를 선택하세요.

결과

애플리케이션이 생성되어 Kubernetes 인벤토리의 애플리케이션 탭에 있는 애플리케이션 목록에 나타납니다. NetApp Console 사용하면 설정에 따라 애플리케이션을 보호할 수 있으며, 백업 및 복구의 모니터링 영역에서 진행 상황을 모니터링할 수 있습니다.

네임스페이스 기반 앱(CR) 추가
단계
  1. 타겟 애플리케이션 CR 파일을 생성합니다.

    1. 사용자 정의 리소스(CR) 파일을 생성하고 이름을 지정합니다(예: my-app-name.yaml).

    2. 다음 속성을 구성하십시오.

      • metadata.name: (Required) 애플리케이션 사용자 지정 리소스의 이름입니다. 보호 작업에 필요한 다른 CR 파일에서 이 값을 참조하므로 선택한 이름을 기억해 두십시오.

      • spec.includedNamespaces: (필수) 네임스페이스 및 레이블 선택기를 사용하여 애플리케이션에서 사용하는 네임스페이스와 리소스를 지정합니다. 애플리케이션 네임스페이스는 이 목록에 반드시 포함되어야 합니다. 레이블 선택기는 선택 사항이며, 지정된 각 네임스페이스 내의 리소스를 필터링하는 데 사용할 수 있습니다.

      • spec.includedClusterScopedResources: (선택 사항) 이 속성을 사용하여 애플리케이션 정의에 포함할 클러스터 범위 리소스를 지정합니다. 이 속성을 사용하면 그룹, 버전, 종류 및 레이블을 기준으로 이러한 리소스를 선택할 수 있습니다.

        • groupVersionKind: (필수) 클러스터 범위 리소스의 API 그룹, 버전 및 종류를 지정합니다.

        • labelSelector: (선택 사항) 레이블을 기준으로 클러스터 범위 리소스를 필터링합니다.

    3. 필요한 경우 다음 주석을 구성하십시오.

      • metadata.annotations.protect.trident.netapp.io/skip-vm-freeze: (선택 사항) 이 어노테이션은 KubeVirt 환경과 같이 스냅샷 전에 파일 시스템이 동결되는 가상 머신에서 정의된 애플리케이션에만 적용됩니다. 이 애플리케이션이 스냅샷 중에 파일 시스템에 쓸 수 있는지 여부를 지정합니다. true로 설정하면 애플리케이션은 전역 설정을 무시하고 스냅샷 중에 파일 시스템에 쓸 수 있습니다. false로 설정하면 애플리케이션은 전역 설정을 무시하고 스냅샷 중에 파일 시스템이 동결됩니다. 지정되었지만 애플리케이션 정의에 가상 머신이 없는 경우 어노테이션은 무시됩니다. 지정하지 않으면 애플리케이션은 "전역 파일 시스템 고정 설정"를 따릅니다.

      • protect.trident.netapp.io/protection-command: (선택 사항) 이 주석을 사용하여 Backup and Recovery에 애플리케이션을 보호하거나 보호를 중지하도록 지시합니다. 가능한 값은 protect 또는 `unprotect`입니다.

      • protect.trident.netapp.io/protection-policy-name: (선택 사항) 이 어노테이션을 사용하여 이 애플리케이션을 보호하는 데 사용할 NetApp Backup and Recovery 보호 정책의 이름을 지정합니다. 이 보호 정책은 NetApp Backup and Recovery에 이미 존재해야 합니다.

애플리케이션이 이미 생성된 후에 이 주석을 적용해야 하는 경우 다음 명령을 사용할 수 있습니다.

kubectl annotate application -n <application CR namespace> <application CR name> protect.trident.netapp.io/skip-vm-freeze="true"

+
YAML 예:

+

apiVersion: protect.trident.netapp.io/v1
kind: Application
metadata:
  annotations:
    protect.trident.netapp.io/skip-vm-freeze: "false"
    protect.trident.netapp.io/protection-command: "protect"
    protect.trident.netapp.io/protection-policy-name: "policy-name"
  name: my-app-name
  namespace: my-app-namespace
spec:
  includedNamespaces:
    - namespace: namespace-1
      labelSelector:
        matchLabels:
          app: example-app
    - namespace: namespace-2
      labelSelector:
        matchLabels:
          app: another-example-app
  includedClusterScopedResources:
    - groupVersionKind:
        group: rbac.authorization.k8s.io
        kind: ClusterRole
        version: v1
      labelSelector:
        matchLabels:
          mylabel: test
  1. (선택 사항) 특정 레이블로 표시된 리소스를 포함하거나 제외하는 필터링을 추가합니다.

    • resourceFilter.resourceSelectionCriteria: (필터링에 필수) Include 또는 `Exclude`를 사용하여 resourceMatchers에 정의된 리소스를 포함하거나 제외합니다. 포함 또는 제외할 리소스를 정의하려면 다음 resourceMatchers 매개변수를 추가하십시오.

      • resourceFilter.resourceMatchers: resourceMatcher 객체의 배열입니다. 이 배열에 여러 요소를 정의하는 경우, 요소들은 OR 연산으로 일치하며, 각 요소 내부의 필드(그룹, 종류, 버전)는 AND 연산으로 일치합니다.

        • resourceMatchers[].group: (선택 사항) 필터링할 리소스의 그룹입니다.

        • resourceMatchers[].kind: (선택 사항) 필터링할 리소스의 종류입니다.

        • resourceMatchers[].version: (선택 사항) 필터링할 리소스의 버전입니다.

        • resourceMatchers[].names: (선택 사항) 필터링할 리소스의 Kubernetes metadata.name 필드에 있는 이름입니다.

        • resourceMatchers[].namespaces: (선택 사항) 필터링할 리소스의 Kubernetes metadata.name 필드에 있는 네임스페이스입니다.

        • resourceMatchers[].labelSelectors: (선택 사항) "Kubernetes 문서"에 정의된 리소스의 Kubernetes metadata.name 필드에 있는 레이블 선택기 문자열입니다. 예: "trident.netapp.io/os=linux"

          참고 `resourceFilter`와 `labelSelector`가 모두 사용될 경우, `resourceFilter`가 먼저 실행된 다음 `labelSelector`가 결과 리소스에 적용됩니다.

      예를 들면 다음과 같습니다.

    spec:
      resourceFilter:
        resourceSelectionCriteria: "Include"
        resourceMatchers:
          - group: my-resource-group-1
            kind: my-resource-kind-1
            version: my-resource-version-1
            names: ["my-resource-names"]
            namespaces: ["my-resource-namespaces"]
            labelSelectors: ["trident.netapp.io/os=linux"]
          - group: my-resource-group-2
            kind: my-resource-kind-2
            version: my-resource-version-2
            names: ["my-resource-names"]
            namespaces: ["my-resource-namespaces"]
            labelSelectors: ["trident.netapp.io/os=linux"]
  2. 사용 환경에 맞는 애플리케이션 CR을 생성한 후 CR을 적용합니다. 예를 들면 다음과 같습니다.

    kubectl apply -f my-app-name.yaml