7.15.5.2. VDDK 이미지 준비
가져오기 프로세스에서는 VMware VDDK(가상 디스크 개발 키트)를 사용하여 VMware 가상 디스크를 복사합니다.
VDDK SDK를 다운로드하여 VDDK 이미지를 생성한 후 이미지를 이미지 레지스트리에 업로드하고 v2v-vmware
구성 맵에 추가할 수 있습니다.
VDDK 이미지에 사용할 내부 OpenShift Container Platform 이미지 레지스트리 또는 안전한 외부 이미지 레지스트리를 구성할 수 있습니다. OpenShift Virtualization 환경에서 레지스트리에 액세스할 수 있어야 합니다.
VDDK 이미지를 공용 레지스트리에 저장하면 VMware 라이센스 약관을 위반할 수 있습니다.
7.15.5.2.1. 내부 이미지 레지스트리 구성
Image Registry Operator 구성을 업데이트하여 베어 메탈에 내부 OpenShift Container Platform 이미지 레지스트리를 구성할 수 있습니다.
경로를 사용하여 레지스트리를 노출하면 OpenShift Container Platform 클러스터 내에서 직접 또는 외부에서 레지스트리에 액세스할 수 있습니다.
이미지 레지스트리의 관리 상태 변경
이미지 레지스트리를 시작하려면 Image Registry Operator 구성의 managementState
를 Removed
에서 Managed
로 변경해야 합니다.
절차
managementState
Image Registry Operator 구성을Removed
에서Managed
로 변경합니다. 예를 들면 다음과 같습니다.$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
베어메탈 및 기타 수동 설치를 위한 레지스트리 스토리지 구성
클러스터 관리자는 설치한 후 스토리지를 사용하도록 레지스트리를 구성해야 합니다.
사전 요구 사항
- 클러스터 관리자 권한이 있어야 합니다.
- 베어 메탈과 같이 수동으로 프로비저닝된 RHCOS(Red Hat Enterprise Linux CoreOS) 노드를 사용하는 클러스터입니다.
Red Hat OpenShift Container Storage와 같이 클러스터용 영구 스토리지 프로비저닝.
중요OpenShift Container Platform은 복제본이 하나만 있는 경우 이미지 레지스트리 스토리지에 대한
ReadWriteOnce
액세스를 지원합니다. 두 개 이상의 복제본으로 고 가용성을 지원하는 이미지 레지스트리를 배포하려면ReadWriteMany
액세스가 필요합니다.- "100Gi" 용량이 필요합니다.
절차
스토리지를 사용하도록 레지스트리를 구성하기 위해
configs.imageregistry/cluster
리소스에서spec.storage.pvc
를 변경합니다.참고공유 스토리지를 사용할 때 보안 설정을 확인하여 외부에서의 액세스를 방지합니다.
레지스트리 pod가 없는지 확인합니다.
$ oc get pod -n openshift-image-registry
참고스토리지 유형이
emptyDIR
인 경우, 복제본 번호가1
보다 클 수 없습니다.레지스트리 구성을 확인합니다.
$ oc edit configs.imageregistry.operator.openshift.io
출력 예
storage: pvc: claim:
image-registry-storage
PVC의 자동 생성을 허용하도록claim
필드를 비워 둡니다.clusteroperator
상태를 확인합니다.$ oc get clusteroperator image-registry
이미지를 빌드 및 푸시할 수 있도록 레지스트리의 관리가 설정되어 있는지 확인하십시오.
다음을 실행합니다.
$ oc edit configs.imageregistry/cluster
다음으로 라인을 변경하십시오.
managementState: Removed
다음으로 변경
managementState: Managed
클러스터에서 직접 레지스트리에 액세스
클러스터 내부에서 레지스트리에 액세스할 수 있습니다.
절차
내부 경로를 사용하여 클러스터에서 레지스트리에 액세스합니다.
노드의 이름을 가져와서 노드에 액세스합니다.
$ oc get nodes
$ oc debug nodes/<node_name>
노드에서
oc
및podman
과 같은 툴에 대한 액세스를 활성화하려면 다음 명령을 실행합니다.sh-4.2# chroot /host
액세스 토큰을 사용하여 컨테이너 이미지 레지스트리에 로그인합니다.
sh-4.2# oc login -u kubeadmin -p <password_from_install_log> https://api-int.<cluster_name>.<base_domain>:6443
sh-4.2# podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
다음과 같은 로그인 확인 메시지가 표시되어야합니다.
Login Succeeded!
참고사용자 이름에 모든 값을 지정할 수 있으므로 토큰에는 필요한 모든 정보가 포함됩니다. 콜론이 포함된 사용자 이름을 지정하면 로그인에 실패합니다.
이미지 레지스트리 Operator가 경로를 생성하므로
default-route-openshift-image-registry.<cluster_name>
과 유사합니다.레지스트리에 대해
podman pull
및podman push
작업을 수행합니다.중요모든 이미지를 가져올 수 있지만 system:registry 역할이 추가된 경우 프로젝트의 레지스트리에만 이미지를 푸시할 수 있습니다.
다음 예에서는 다음을 사용합니다.
구성 요소 값 <registry_ip>
172.30.124.220
<port>
5000
<project>
openshift
<image>
image
<tag>
생략됨 (기본값
latest
)모든 이미지를 가져옵니다.
sh-4.2# podman pull name.io/image
<registry_ip>:<port>/<project>/<image>
형식으로 새 이미지에 태그를 지정합니다. OpenShift Container Platform이 레지스트리에 이미지를 올바르게 배치하고 나중에 액세스할 수 있도록 이 풀 사양에 프로젝트 이름이 표시되어야합니다.sh-4.2# podman tag name.io/image image-registry.openshift-image-registry.svc:5000/openshift/image
참고사용자가 이미지를 작성하거나 푸시할 수 있도록 지정된 프로젝트에 대한
system:image-builder
역할이 있어야합니다. 그렇지 않으면 다음 단계의podman push
가 실패합니다. 테스트를 위해 이미지를 푸시할 새 프로젝트를 만들 수 있습니다.새로 태그가 지정된 이미지를 레지스트리로 푸시합니다.
sh-4.2# podman push image-registry.openshift-image-registry.svc:5000/openshift/image
수동으로 보안 레지스트리 공개
클러스터 내에서 OpenShift Container Platform 레지스트리에 로그인하지 않고 외부에서 레지스트리에 액세스할 수 있도록 레지스트리의 라우팅을 공개합니다. 이를 통해 라우팅 주소를 사용하여 클러스터 외부에서 레지스트리에 로그인하고 라우팅 호스트를 사용하여 기존 프로젝트에 이미지를 태그 지정하거나 푸시할 수 있습니다.
사전 요구 사항
다음 사전 요구 사항이 자동으로 수행됩니다.
- 레지스트리 Operator를 배포합니다.
- Ingress Operator를 배포합니다.
절차
configs.imageregistry.operator.openshift.io
리소스에서 DefaultRoute
매개 변수를 사용하거나 사용자 지정 라우팅을 사용하여 라우팅을 공개할 수 있습니다.
DefaultRoute
를 사용하여 레지스트리를 공개하려면 다음을 수행합니다.
DefaultRoute
를True
로 설정합니다.$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
podman
으로 로그인합니다.$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
$ podman login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $HOST 1
- 1
--tls-verify=false
는 클러스터의 기본 라우팅 인증서를 신뢰할 수없는 경우 필요합니다. Ingress Operator를 사용하여 신뢰할 수있는 사용자 지정 인증서를 기본 인증서로 설정할 수 있습니다.
사용자 지정 라우팅을 사용하여 레지스트리를 공개하려면 다음을 수행합니다.
라우팅의 TLS 키로 보안 시크릿을 만듭니다.
$ oc create secret tls public-route-tls \ -n openshift-image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>
이 단계는 선택 사항입니다. 보안 시크릿을 생성하지 않으면 라우팅은 Ingress Operator의 기본 TLS 구성을 사용합니다.
레지스트리 Operator에서 다음을 수행합니다.
spec: routes: - name: public-routes hostname: myregistry.mycorp.organization secretName: public-route-tls ...
참고레지스트리 라우팅에 대한 사용자 지정 TLS 구성을 제공하는 경우에만
secretName
을 설정합니다.