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에 변경 사항을 도입했습니다. 이렇게 하면 더 높은 권한이 필요하지 않은 워크로드에도 데이터 전송이 가능합니다. 이러한 변경은 가능한 가장 낮은 수준의 권한으로 워크로드를 실행하는 것이 가장 되었기 때문입니다.
4.5.1. 데이터 trannsfer에 대한 기본 non-root 작업 수동 덮어쓰기
대부분의 경우 Rsync Pod를 루트가 아닌 사용자로 실행해도 소스 측에서 워크로드를 root 사용자로 실행할 때 데이터 전송이 실패할 수 있습니다. MTC는 데이터 전송을 위해 루트가 아닌 기본 작업을 수동으로 재정의하는 두 가지 방법을 제공합니다.
- 모든 마이그레이션에 대해 대상 클러스터에서 Rsync 포드를 root로 실행하도록 모든 마이그레이션을 구성합니다.
- 마이그레이션당 대상 클러스터에서 Rsync 포드를 root로 실행합니다.
두 경우 모두 마이그레이션하기 전에 권한이 높은 워크로드를 실행하는 네임스페이스의 소스 측에 다음 레이블을 설정해야 합니다. 즉, ,감사
및 warn을
적용합니다
.
Pod Security Admission and setting values for labels에 대한 자세한 내용은 Pod 보안 승인 동기화 제어를 참조하십시오.
4.5.2. 모든 마이그레이션에 대해 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.3. MigMigration CR을 마이그레이션당 root 또는 비root로 구성
대상 클러스터에서 다음과 같은 루트가 아닌 옵션을 사용하여 Rsync를 root 또는 non-root로 실행하도록 MigMigration
CR을 구성할 수 있습니다.
- 특정 사용자 ID(UID)
- 특정 그룹 ID(GID)
절차
Rsync를 root로 실행하려면 다음 예에 따라
MigMigration
CR을 구성합니다.apiVersion: migration.openshift.io/v1alpha1 kind: MigMigration metadata: name: migration-controller namespace: openshift-migration spec: [...] runAsRoot: true
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