OpenShift 컨테이너 플랫폼의 통합 이미지 레지스트리를 위한 백엔드 스토리지로서의 ONTAP

NetApp Tech Blog에 갔다가 Trident 관련해서 흥미로운 주제의 글이 보여서 AI 번역(+약간 수정)의 힘을 빌려 읽어보았습니다.
출처: https://community.netapp.com/t5/Tech-ONTAP-Blogs/ONTAP-as-backend-storage-for-the-integrated-image-registry-in-OpenShift/ba-p/453142

Red Hat OpenShift는 컨테이너 워크로드 플랫폼으로 널리 사용되고 있습니다. 현재 많은 고객이 OpenShift Containers에서 상태 저장 애플리케이션의 영구 저장소로 NetApp ONTAP을 사용하고 있습니다. 동일한 ONTAP 시스템을 사용하여 OpenShift 생태계의 다른 기능을 위한 스토리지를 제공할 수 있다는 사실을 알고 계셨나요? 이를 통해 고객은 스토리지에 대한 투자를 더욱 효율적으로 활용할 수 있습니다. 이전 블로그 에서는 OpenShift Container 플랫폼에 로그를 저장하기 위해 NetApp ONTAP 스토리지 시스템을 통합하는 방법을 설명했습니다. 이번 블로그에서는 OpenShift Container 플랫폼에 통합 이미지 레지스트리를 설치하는 자세한 방법을 제공합니다. 이 단계를 통해 사용자는 ONTAP 기반 레지스트리에서 이미지를 푸시하고 풀하여 OpenShift 클러스터에 Astra Control Center를 배포할 수 있습니다.

OpenShift Container Platform은 클러스터에서 표준 워크로드로 실행될 수 있는 내장 이미지 레지스트리를 제공합니다. 이 통합 레지스트리는 관리자가 기존 OpenShift 클러스터에 배포하여 사용자가 워크로드를 실행하는 이미지를 관리할 수 있는 레지스트리를 제공할 수 있습니다. 레지스트리는 다른 클러스터 워크로드처럼 확장 및 축소할 수 있습니다. 클러스터 사용자 인증 및 권한 부여 시스템에 통합되어 있어 이미지 리소스에 대한 사용자 권한을 정의하여 이미지를 생성하고 검색할 수 있습니다.

이미지 레지스트리를 설치하고, 레지스트리의 백업 저장소로 ONTAP NAS 스토리지를 설정한 다음, Astra Control Center 이미지를 여기에 푸시하고, 레지스트리에서 이미지를 가져와서 클러스터에 Astra Control Center를 설치합니다.

VMware, 베어 메탈 등과 같이 공유 가능한 객체 스토리지를 제공하지 않는 플랫폼에서는 OpenShift Image Registry Operator가 클러스터 설치 중에 ‘제거됨’ 상태로 부트스트랩됩니다 . 이를 통해 설치 프로그램이 이러한 플랫폼 유형에서 클러스터 설치를 완료할 수 있습니다.

필수 조건

OpenShift 클러스터가 작동 중이어야 합니다. 클러스터에 Astra Trident를 설치하고 백엔드, 스토리지 클래스 및 스냅샷 클래스 객체를 설정해야 합니다. 기본 스토리지 클래스를 ontap NAS 기반 스토리지 클래스로 변경해야 합니다(아직 변경하지 않은 경우). 명령줄이나 콘솔에서 변경할 수 있습니다. 아래 스크린샷은 ontap 기반 스토리지 클래스의 주석을 보여줍니다(콘솔에서 설정). 이를 통해 ontap 기반 스토리지 클래스를 기본 스토리지 클래스로 설정할 수 있습니다.

storageclass.kubernetes.io/is-default-class true

현재 기본 스토리지 클래스 주석 storageclass.kubernetes.io/is-default-class를 true 에서 false로 수정하는 것을 잊지 마세요.

2024년 6월 10일 오후 11시 1분 28초 스크린샷.png

2024년 6월 10일 오후 11시 1분 55초 스크린샷.png

레지스트리 생성

클러스터에 액세스할 수 있는 VM에서 oc 도구를 사용하여 imageregistry 연산자 의 spec 섹션 에서 다음 3가지 편집을 수행합니다.

편집 #1:

oc edit configs.imageregistry.operator.openshift.io
storage:
pvc:
claim:

PVC( image-registry-storage )가 자동으로 생성되어 클레임 필드에 입력됩니다. PVC는 기본 스토리지 클래스를 기반으로 생성되며, 이 경우 ONTAP NAS 스토리지가 지원됩니다.

편집 #2:

routes: 
  - hostname: astra-registry.apps.<ocp-cluster-name>.<domain-name>   
   name: netapp-astra-route

위 코드를 사용하면 사용자 지정 호스트 이름과 레지스트리 경로를 생성할 수 있습니다. 이 레지스트리에 Astra Control Center 이미지를 호스팅할 예정이므로 호스트 이름에 astra-registry를 사용했습니다.

편집 #3:

운영자의 관리 상태를 관리 상태로 변경합니다.

spec:  managementState: Managed

편집이 완료되면 파일을 저장하세요. 이제 이미지 레지스트리에 대한 PVC, Pod 및 경로가 생성되었을 것입니다. 

다음과 같은 영구 볼륨 클레임이 생성되어 configs.imageregistry.operator.openshift.io 에 추가된 것을 볼 수 있습니다.

2024년 6월 10일 오후 11시 7분 56초 스크린샷.png

2024년 6월 10일 오후 11시 8분 33초 스크린샷.png

oc get all -n openshift-image-registry
2024년 6월 10일 오후 11시 11분 40초 스크린샷.png

레지스트리에 접근하기

OpenShift 노드에 TLS 인증서 추가

OpenShift 레지스트리 경로에 기본 TLS 인증서 또는 사용자 지정 TLS 인증서를 추가할 수 있습니다. 사용자 지정 TLS 인증서 사용에 대한 자세한 내용은 솔루션 설명서를 참조하세요 .

여기에서는 기본 TLS 인증서를 사용할 때의 단계를 보여드리겠습니다.

1. 시크릿에서 기본 인증서를 가져옵니다.

oc extract secret/router-ca --keys=tls.crt -n openshift-ingress-operator

2.  OpenShift 노드의 Docker 클라이언트에 인증서를 추가하여 이미지 레지스트리에 접근할 수 있도록 합니다. 이는 다음 두 단계를 통해 가능합니다.

a. TLS 인증서를 사용하여 openshift-config 네임스페이스에 configmap을 만듭니다.

oc create configmap astra-ca -n openshift-config --from-file=astra-registry.apps.ocp-cluster4.sddc.netapp.com=tls.crt

b. 클러스터 이미지 구성에 패치를 적용하여 인증서를 신뢰할 수 있도록 합니다.

oc patch image.config.openshift.io/cluster --patch {"spec":{"additionalTrustedCA":{"name":"astra-ca"}}}' --type=merge

관리 VM의 Docker 클라이언트에 TLS 인증서를 추가합니다.

Astra Control Center 이미지를 다운로드한 VM에서 이미지를 푸시하고 풀하려면 다음 단계를 완료해야 합니다.

sudo mkdir /etc/docker/certs.d/astra-registry.apps.<cluster-name>.<domain-name>
예:sudo mkdir /etc/docker/certs.d/astra-registry.apps.cluster4.sddc.netapp.com  

sudo cp /path/to/tls.crt /etc/docker/certs.d/astra-registry.apps.ocp-cluster4.sddc.netapp.com

Astra Control 이미지를 레지스트리에 푸시하기

여기의 지침에 따라 클러스터에 액세스할 수 있는 관리자 VM에 Astra Control Center 이미지를 다운로드하고 추출하세요. 토큰을 사용하여 OpenShift 클러스터에 로그인하세요. 콘솔에서 로그인 명령을 실행할 수 있습니다.

banusundhar_0-1718075911650.png
oc login --token=sha256~OJJdf5gPZamHqHsDKNJw6tRZnXt6fIyHSulypOBECl0 --server=https://api.ocp-cluster4.sddc.netapp.com:6443

이제 podman을 사용하여 레지스트리에 로그인하세요. (docker 명령어를 사용하여 로그인하고 레지스트리에서 푸시 및 풀할 수도 있습니다.)

podman login astra-registry.apps.ocp-cluster4.sddc.netapp.com -u kubeadmin -p $(oc whoami -t) --tls-verify=false

이미지를 푸시하기 위한 네임스페이스를 만듭니다.

oc create namespace netapp-astra -> 이것은 아래 push 스크립트에서 사용됩니다.

다음 스크립트를 사용하여 이미지를 레지스트리에 푸시합니다.

export REGISTRY=astra-registry.apps.ocp-cluster4.sddc.netapp.com
export DIRECTORYNAME=acc
for astraImageFile in $(ls acc/images/*.tar) ; do
 echo "loading images"
 echo "loading" $straImageFile
 # Load to local cache. And store the name of the loaded image trimming the 'Loaded images: '
 astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //')
 astraImage=$(echo ${astraImage} | sed 's!localhost/!!')
 # Tag with local image repo.
 echo "tagging"
 podman tag ${astraImage} ${REGISTRY}/${astraImage}
 echo ${REGISTRY}
 echo ${astraImage}
 # Push to the local repo.
 podman push $astraImage  ${REGISTRY}/netapp-astra/${astraImage} --tls-verify=false
done

레지스트리에서 Astra Control 이미지 가져오기

다음 명령을 실행하여 pull 기능이 제대로 작동하는지 확인할 수 있습니다. 이 명령은 태그가 지정되어 레지스트리에 푸시된 이미지 중 하나를 가져옵니다.

podman pull astra-registry.apps.ocp-cluster4.sddc.netapp.com/netapp-astra/vault-controller:1.12.1

이제 이 레지스트리의 이미지를 사용하여 OpenShift 클러스터 운영자 허브에 Astra Control Center를 배포해 보겠습니다.

여기의 지침에 따라 Astra Control Center 설치를 위한 모든 필수 구성 요소와 구성 단계를 완료할 수 있습니다. 여기서는 Astra Control Center를 배포하기 위해 이미지 레지스트리를 사용하는 방법만 강조하겠습니다.

이미지를 가져오는 데 사용할 사용자 이름과 비밀번호에 대한 이미지 풀 시크릿을 생성하세요. 사용자에게 적절한 권한이 있는지 확인하세요. 여기서는 kubeadmin 사용자 이름과 토큰을 비밀번호로 사용했습니다.

2024년 6월 10일 오후 11시 20분 59초 스크린샷.png

Create AstraControlCenter 양식 보기에서 이미지 레지스트리 필드에 이미지를 호스팅하는 서버의 이름과 이전에 만든 이미지 풀 비밀번호를 입력합니다.

나머지 필드에 대해서는 Astra Control Center 설명서에 제공된 지침을 따르세요.

2024년 6월 10일 오후 11시 22분 35초 스크린샷.png

레지스트리에서 가져온 이미지를 사용하여 포드가 ACC에 배포되는 것을 볼 수 있습니다.

요약

이 블로그에서는 OpenShift 클러스터에 통합 레지스트리를 배포하고 ONTAP을 백업 스토리지로 사용하는 방법을 보여드렸습니다. 이미지를 레지스트리에 푸시하고 이를 사용하여 Astra Control Center를 배포하는 방법도 살펴보았습니다. ONTAP은 이미지 레지스트리 스토리지를 백업하는 스토리지에서 제공되는 모든 익숙한 데이터 관리 기능을 제공합니다. 이를 통해 고객은 RedHat 생태계로 스토리지 시스템 활용을 확장할 수 있습니다. 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like