8.3. 직접 마이그레이션 알려진 문제
8.3.1. OpenShift Container Platform에서 실행되는 워크로드에 자동으로 spc_t
를 사용하여 Skip SELinux 재레이블 해결 방법 적용
MTC(Migration Toolkit for Containers)와 관련된 상당한 볼륨을 사용하여 네임스페이스를 마이그레이션하려고 할 때 rsync-server
는 문제를 해결하기 위한 추가 정보 없이 rsync-server가 고정될 수 있습니다.
8.3.1.1. Skip SELinux 재레이블 해결 방법 필요 진단
Unable to attach or mount volume for pod…timed out error of Unable to attach or mount volume for the pod…timed out waiting for the condition
in the kubelet logs where the rsync-server
for the Direct Volume Migration (DVM)이 실행되는 노드에서 kubelet 로그의 조건을 대기하거나 마운트할 수 없는 오류를 검색합니다.
kubelet 로그의 예
kubenswrapper[3879]: W0326 16:30:36.749224 3879 volume_linux.go:49] Setting volume ownership for /var/lib/kubelet/pods/8905d88e-6531-4d65-9c2a-eff11dc7eb29/volumes/kubernetes.io~csi/pvc-287d1988-3fd9-4517-a0c7-22539acd31e6/mount and fsGroup set. If the volume has a lot of files then setting volume ownership could be slow, see https://github.com/kubernetes/kubernetes/issues/69699 kubenswrapper[3879]: E0326 16:32:02.706363 3879 kubelet.go:1841] "Unable to attach or mount volumes for pod; skipping pod" err="unmounted volumes=[8db9d5b032dab17d4ea9495af12e085a], unattached volumes=[crane2-rsync-server-secret 8db9d5b032dab17d4ea9495af12e085a kube-api-access-dlbd2 crane2-stunnel-server-config crane2-stunnel-server-secret crane2-rsync-server-config]: timed out waiting for the condition" pod="caboodle-preprod/rsync-server" kubenswrapper[3879]: E0326 16:32:02.706496 3879 pod_workers.go:965] "Error syncing pod, skipping" err="unmounted volumes=[8db9d5b032dab17d4ea9495af12e085a], unattached volumes=[crane2-rsync-server-secret 8db9d5b032dab17d4ea9495af12e085a kube-api-access-dlbd2 crane2-stunnel-server-config crane2-stunnel-server-secret crane2-rsync-server-config]: timed out waiting for the condition" pod="caboodle-preprod/rsync-server" podUID=8905d88e-6531-4d65-9c2a-eff11dc7eb29
8.3.1.2. Skip SELinux 재레이블 해결 방법을 사용하여 해결
이 문제를 해결하려면 MigrationController
CR(사용자 정의 리소스)을 사용하여 source 및 destination MigClusters
에서 migration_rsync_super_privileged
매개변수를 true
로 설정합니다.
MigrationController CR의 예
apiVersion: migration.openshift.io/v1alpha1
kind: MigrationController
metadata:
name: migration-controller
namespace: openshift-migration
spec:
migration_rsync_super_privileged: true 1
azure_resource_group: ""
cluster_name: host
mig_namespace_limit: "10"
mig_pod_limit: "100"
mig_pv_limit: "100"
migration_controller: true
migration_log_reader: true
migration_ui: true
migration_velero: true
olm_managed: true
restic_timeout: 1h
version: 1.8.3
- 1
migration_rsync_super_privileged
매개변수의 값은 Rsync Pod를 슈퍼 권한이 있는 컨테이너로 실행할지 여부를 나타냅니다(spc_t selinux 컨텍스트
). 유효한 설정은true
또는false
입니다.