4.5. Rsync를 root 또는 non-root로 실행

중요

이 섹션은 웹 콘솔이 아닌 OpenShift API로 작업하는 경우에만 적용됩니다.

OpenShift 환경에는 기본적으로 PodSecurityAdmission 컨트롤러가 활성화되어 있습니다. 이 컨트롤러를 사용하려면 클러스터 관리자가 네임스페이스 레이블을 통해 Pod 보안 표준을 적용해야 합니다. 클러스터의 모든 워크로드는 Privileged,Baseline 또는 Restricted 의 Pod 보안 표준 수준 중 하나를 실행해야 합니다. 모든 클러스터에는 자체 기본 정책 세트가 있습니다.

모든 환경에서 데이터 전송을 성공적으로 수행하기 위해 MTC(Migration Toolkit for Containers) 1.ECDHE에서는 기본적으로 Rsync Pod를 루트가 아닌 사용자로 실행하는 등 Rsync Pod에 변경 사항을 도입했습니다. 이렇게 하면 더 높은 권한이 필요하지 않은 워크로드에도 데이터 전송이 가능합니다. 이러한 변경은 가능한 가장 낮은 수준의 권한으로 워크로드를 실행하는 것이 가장 되었기 때문입니다.

데이터 전송을 위해 루트가 아닌 기본 작업 수동 덮어쓰기

대부분의 경우 Rsync Pod를 루트가 아닌 사용자로 실행해도 소스 측에서 워크로드를 root 사용자로 실행할 때 데이터 전송이 실패할 수 있습니다. MTC는 데이터 전송을 위해 루트가 아닌 기본 작업을 수동으로 재정의하는 두 가지 방법을 제공합니다.

  • 모든 마이그레이션에 대해 대상 클러스터에서 Rsync 포드를 root로 실행하도록 모든 마이그레이션을 구성합니다.
  • 마이그레이션당 대상 클러스터에서 Rsync 포드를 root로 실행합니다.

두 경우 모두 마이그레이션하기 전에 권한이 높은 워크로드를 실행하는 네임스페이스의 소스 측에 다음 레이블을 설정해야 합니다. 즉, ,감사warn을 적용합니다.

Pod Security Admission and setting values for labels에 대한 자세한 내용은 Pod 보안 승인 동기화 제어를 참조하십시오.

4.5.1. 모든 마이그레이션에 대해 MigrationController CR을 root 또는 non-root로 구성

기본적으로 Rsync는 root가 아닌 상태로 실행됩니다.

대상 클러스터에서 Rsync를 root로 실행하도록 MigrationController CR을 구성할 수 있습니다.

절차

  • 다음과 같이 MigrationController CR을 구성합니다.

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigrationController
    metadata:
      name: migration-controller
      namespace: openshift-migration
    spec:
      [...]
      migration_rsync_privileged: true

    이 구성은 향후 모든 마이그레이션에 적용됩니다.

4.5.2. MigMigration CR을 마이그레이션당 root 또는 비root로 구성

대상 클러스터에서 다음과 같은 루트가 아닌 옵션을 사용하여 Rsync를 root 또는 non-root로 실행하도록 MigMigration CR을 구성할 수 있습니다.

  • 특정 사용자 ID(UID)
  • 특정 그룹 ID(GID)

절차

  1. Rsync를 root로 실행하려면 다음 예에 따라 MigMigration CR을 구성합니다.

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigMigration
    metadata:
      name: migration-controller
      namespace: openshift-migration
    spec:
      [...]
      runAsRoot: true
  2. Rsync를 특정 UID(User ID) 또는 특정 그룹 ID(GID)로 실행하려면 다음 예에 따라 MigMigration CR을 구성합니다.

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigMigration
    metadata:
      name: migration-controller
      namespace: openshift-migration
    spec:
      [...]
      runAsUser: 10010001
      runAsGroup: 3