4.7. OpenStack에 호스팅된 제어 평면 배포
Red Hat OpenStack Platform(RHOSP)에 호스팅된 제어 플레인 클러스터를 배포하는 것은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
Red Hat OpenStack Platform(RHOSP) 17.1에서 실행되는 호스팅 클러스터를 사용하여 호스팅된 제어 플레인을 배포할 수 있습니다.
호스팅 클러스터 는 관리 클러스터에 호스팅된 API 엔드포인트와 제어 평면을 갖춘 OpenShift Container Platform 클러스터입니다. 호스팅된 제어 평면을 사용하면 제어 평면이 관리 클러스터의 포드로 존재하므로 각 제어 평면에 대한 전용 가상 또는 물리적 머신이 필요하지 않습니다.
4.7.1. OpenStack의 전제 조건 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform(RHOSP)에서 호스팅 클러스터를 생성하기 전에 다음 요구 사항을 충족하는지 확인하세요.
- 관리 OpenShift Container Platform 클러스터 버전 4.17 이상에 대한 관리 액세스 권한이 있습니다. 이 클러스터는 베어 메탈, RHOSP 또는 지원되는 퍼블릭 클라우드에서 실행될 수 있습니다.
- HyperShift Operator는 "호스팅된 제어 평면 배포 준비"에 지정된 대로 관리 클러스터에 설치됩니다.
- 관리 클러스터는 기본 Pod 네트워크 CNI로 OVN-Kubernetes로 구성됩니다.
-
OpenShift CLI(
oc
)와 호스팅 제어 평면 CLI,hcp가
설치됩니다. 예를 들어 Octavia와 같은 로드 밸런서 백엔드는 관리 OCP 클러스터에 설치됩니다. 각 호스팅 클러스터에 대해
kube-api
서비스를 생성하려면 로드 밸런서가 필요합니다.- Octavia 부하 분산으로 수신이 구성된 경우 RHOSP Octavia 서비스는 게스트 클러스터를 호스팅하는 클라우드에서 실행됩니다.
-
quay.io/openshift-release-dev
저장소에 유효한 풀 비밀 파일이 있습니다. -
관리 클러스터의 기본 외부 네트워크는 게스트 클러스터에서 접근할 수 있습니다. 이 네트워크에
kube-apiserver
로드 밸런서 유형 서비스가 생성됩니다. 수신을 위해 미리 정의된 부동 IP 주소를 사용하는 경우 다음 와일드카드 도메인에 대해 해당 주소를 가리키는 DNS 레코드가 생성됩니다.
*.apps.<cluster_name>.<base_domain>
, 여기서:-
<cluster_name>
은 관리 클러스터의 이름입니다. -
<base_domain>
은 클러스터의 애플리케이션이 있는 부모 DNS 도메인입니다.
-
4.7.2. etcd 로컬 스토리지를 위한 관리 클러스터 준비 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform(RHOSP)의 호스팅 제어 평면(HCP) 배포에서 기본 Cinder 기반 영구 볼륨 클레임(PVC)에 의존하는 대신 TopoLVM CSI 드라이버로 프로비저닝된 로컬 임시 스토리지를 사용하면 etcd 성능을 개선할 수 있습니다.
사전 요구 사항
- HyperShift가 설치된 관리 클러스터에 액세스할 수 있습니다.
- RHOSP 플레이버와 머신 세트를 만들고 관리할 수 있습니다.
-
oc
및openstack
CLI 도구를 설치하고 구성했습니다. - TopoLVM 및 LVM(Logical Volume Manager) 저장 개념에 대해 잘 알고 있습니다.
- 관리 클러스터에 LVM 스토리지 운영자를 설치했습니다. 자세한 내용은 OpenShift Container Platform 설명서의 스토리지 섹션에서 "CLI를 사용하여 LVM 스토리지 설치"를 참조하세요.
프로세스
openstack
CLI를 사용하여 추가 임시 디스크가 있는 Nova 플레이버를 만듭니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Nova는 서버가 해당 플레이버로 생성될 때 임시 디스크를 인스턴스에 자동으로 연결하고 이를
vfat
로 포맷합니다.- 새로운 플레이버를 사용하는 컴퓨팅 머신 세트를 만듭니다. 자세한 내용은 OpenShift Container Platform 설명서의 "OpenStack에서 컴퓨팅 머신 세트 만들기"를 참조하세요.
- 귀하의 요구 사항에 맞게 기계 세트를 확장하세요. 고가용성을 위해 클러스터를 배포하는 경우 최소 3개의 작업자를 배포해야 포드를 적절히 분산할 수 있습니다.
etcd에서 사용할 수 있도록 새로운 워커 노드에 레이블을 지정합니다. 예를 들면 다음과 같습니다.
oc label node <node_name> hypershift-capable=true
$ oc label node <node_name> hypershift-capable=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 라벨은 임의적입니다. 나중에 업데이트할 수 있습니다.
lvmcluster.yaml
이라는 파일에서 etcd에 대한 로컬 스토리지 구성에 대한 다음LVMCluster
사용자 지정 리소스를 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제 리소스에서는:
-
임시 디스크 위치는
/dev/vdb
이며, 대부분의 경우에 해당합니다. 귀하의 경우 이 위치가 맞는지 확인하고, 심볼릭 링크는 지원되지 않는다는 점에 유의하세요. -
기본 Nova 임시 디스크는 VFAT로 포맷되어 제공되므로
forceWipeDevicesAndDestroyAllData
매개변수는True
값으로 설정됩니다.
-
임시 디스크 위치는
다음 명령을 실행하여
LVMCluster
리소스를 적용합니다.oc apply -f lvmcluster.yaml
oc apply -f lvmcluster.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
LVMCluster
리소스를 확인하세요.oc get lvmcluster -A
$ oc get lvmcluster -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME STATUS openshift-storage etcd-hcp Ready
NAMESPACE NAME STATUS openshift-storage etcd-hcp Ready
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
StorageClass
리소스를 확인하세요.oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE lvms-etcd-class topolvm.io Delete WaitForFirstConsumer true 23m standard-csi (default) cinder.csi.openstack.org Delete WaitForFirstConsumer true 56m
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE lvms-etcd-class topolvm.io Delete WaitForFirstConsumer true 23m standard-csi (default) cinder.csi.openstack.org Delete WaitForFirstConsumer true 56m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 성능이 뛰어난 etcd 구성으로 호스팅된 클러스터를 배포할 수 있습니다. 배포 프로세스는 "OpenStack에서 호스팅된 클러스터 만들기"에 설명되어 있습니다.
4.7.3. 수신을 위한 플로팅 IP 생성 링크 복사링크가 클립보드에 복사되었습니다!
수동 개입 없이 호스팅된 클러스터에서 인그레스를 사용할 수 있도록 하려면 미리 해당 클러스터에 대한 플로팅 IP 주소를 만들 수 있습니다.
사전 요구 사항
- Red Hat OpenStack Platform(RHOSP) 클라우드에 액세스할 수 있습니다.
수신을 위해 미리 정의된 부동 IP 주소를 사용하는 경우 다음 와일드카드 도메인에 대해 해당 주소를 가리키는 DNS 레코드가 생성됩니다.
*.apps.<cluster_name>.<base_domain>
, 여기서:-
<cluster_name>
은 관리 클러스터의 이름입니다. -
<base_domain>
은 클러스터의 애플리케이션이 있는 부모 DNS 도메인입니다.
-
프로세스
다음 명령을 실행하여 부동 IP 주소를 만듭니다.
openstack floating ip create <external_network_id>
$ openstack floating ip create <external_network_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
<external_network_id>
- 외부 네트워크의 ID를 지정합니다.
--openstack-ingress-floating-ip
플래그를 사용하여 미리 IP 주소를 생성하지 않고 해당 IP 주소를 지정하면 cloud-provider-openstack
구성 요소가 자동으로 해당 IP 주소를 생성하려고 시도합니다. 이 프로세스는 Neutron API 정책이 특정 IP 주소로 부동 IP 주소를 생성하는 것을 허용하는 경우에만 성공합니다.
4.7.4. OpenStack에 RHCOS 이미지 업로드 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 제어 플레인과 Red Hat OpenStack Platform(RHOSP) 배포에 노드 풀을 배포할 때 사용할 RHCOS 이미지를 지정하려면 이미지를 RHOSP 클라우드에 업로드합니다. 이미지를 업로드하지 않으면 OpenStack Resource Controller(ORC)가 OpenShift Container Platform 미러에서 이미지를 다운로드하고 호스팅된 클러스터를 삭제한 후 해당 이미지를 삭제합니다.
사전 요구 사항
- OpenShift Container Platform 미러에서 RHCOS 이미지를 다운로드했습니다.
- RHOSP 클라우드에 액세스할 수 있습니다.
프로세스
다음 명령을 실행하여 RHCOS 이미지를 RHOSP에 업로드합니다.
openstack image create --disk-format qcow2 --file <image_file_name> rhcos
$ openstack image create --disk-format qcow2 --file <image_file_name> rhcos
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
<image_file_name>
- RHCOS 이미지의 파일 이름을 지정합니다.
4.7.5. OpenStack에서 호스팅 클러스터 생성 링크 복사링크가 클립보드에 복사되었습니다!
hcp
CLI를 사용하여 Red Hat OpenStack Platform(RHOSP)에서 호스팅 클러스터를 생성할 수 있습니다.
사전 요구 사항
- "호스팅된 제어 평면 배포 준비"의 모든 필수 단계를 완료했습니다.
- "OpenStack의 필수 구성 요소"를 검토했습니다.
- "etcd 로컬 스토리지를 위한 관리 클러스터 준비"의 모든 단계를 완료했습니다.
- 관리 클러스터에 액세스할 수 있습니다.
- RHOSP 클라우드에 액세스할 수 있습니다.
프로세스
hcp create
명령을 실행하여 호스팅 클러스터를 만듭니다. 예를 들어, "etcd 로컬 스토리지를 위한 관리 클러스터 준비"에 자세히 설명된 고성능 etcd 구성을 활용하는 클러스터의 경우 다음을 입력합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
클러스터 생성 시에는 다양한 옵션을 사용할 수 있습니다. RHOSP 관련 옵션에 대한 자세한 내용은 "OpenStack에서 호스팅된 제어 평면 클러스터를 생성하기 위한 옵션"을 참조하세요. 일반 옵션에 대한 내용은 hcp
문서를 참조하세요.
검증
다음 명령을 실행하여 호스팅된 클러스터가 준비되었는지 확인하세요.
oc -n clusters-<cluster_name> get pods
$ oc -n clusters-<cluster_name> get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
<cluster_name>
- 클러스터의 이름을 지정합니다.
몇 분 후에는 호스팅된 제어 평면 포드가 실행 중이라는 출력이 표시됩니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터의 etcd 구성을 검증하려면:
다음 명령을 실행하여 etcd 영구 볼륨 클레임(PVC)을 검증합니다.
oc get pvc -A
$ oc get pvc -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스팅된 제어 평면 etcd Pod 내부에서 다음 명령을 실행하여 마운트 경로와 장치를 확인하세요.
df -h /var/lib
$ df -h /var/lib
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
클러스터 API(CAPI) 공급자가 생성하는 RHOSP 리소스에는 openshiftClusterID=<infraID>
레이블이 지정됩니다.
호스팅 클러스터를 생성하는 데 사용하는 YAML 매니페스트의 HostedCluster.Spec.Platform.OpenStack.Tags
필드의 값으로 리소스에 대한 추가 태그를 정의할 수 있습니다. 노드 풀을 확장한 후에는 태그가 리소스에 적용됩니다.
4.7.5.1. OpenStack에서 호스팅 제어 평면 클러스터를 생성하기 위한 옵션 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform(RHOSP)에서 호스팅 제어 플레인 클러스터를 배포하는 동안 hcp
CLI에 여러 옵션을 제공할 수 있습니다.
옵션 | 설명 | 필수 항목 |
---|---|---|
|
OpenStack CA 인증서 파일의 경로입니다. 제공되지 않으면 | 없음 |
|
| 없음 |
|
OpenStack 자격 증명 파일의 경로입니다. 제공되지 않으면
| 없음 |
| 서브넷을 생성할 때 제공되는 DNS 서버 주소 목록입니다. | 없음 |
| OpenStack 외부 네트워크의 ID입니다. | 없음 |
| OpenShift 수신을 위한 플로팅 IP. | 없음 |
|
노드에 연결할 추가 포트. 유효한 값은 | 없음 |
| 노드 풀의 가용성 영역입니다. | 없음 |
| 노드 풀에 대한 설명입니다. | 제공됨 |
| 노드 풀의 이미지 이름입니다. | 없음 |