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

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

기여자 netapp-mwallis

NetApp Backup and Recovery 사용하면 kubeconfig 파일을 생성하고 업로드하지 않고도 Kubernetes 클러스터를 쉽게 검색할 수 있습니다. NetApp Console 사용자 인터페이스에서 복사한 간단한 명령을 사용하여 Kubernetes 클러스터를 연결하고 필요한 소프트웨어를 설치할 수 있습니다.

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

Kubernetes 애플리케이션을 보호하는 첫 번째 단계는 NetApp Backup and Recovery 내에서 애플리케이션을 만드는 것입니다. 애플리케이션을 만들면 Kubernetes 클러스터에서 실행 중인 애플리케이션을 콘솔에 알리게 됩니다.

시작하기 전에

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

웹 UI를 사용하여 애플리케이션 추가
단계
  1. NetApp Backup and Recovery 에서 *인벤토리*를 선택합니다.

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

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

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

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

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

    • 연관된 클러스터

    • 연관된 네임스페이스

    • 리소스 유형

    • 라벨 선택기

  7. 선택적으로, 클러스터 수준에서 범위가 지정된 리소스를 선택하려면 *클러스터 범위 리소스*를 선택합니다. 이 리소스를 포함하면 애플리케이션을 생성할 때 해당 리소스가 애플리케이션에 추가됩니다.

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

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

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

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

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

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

결과

애플리케이션이 생성되어 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