4.7. OpenStack에 호스팅된 컨트롤 플레인 배포
RHOSP(Red Hat OpenStack Platform)에 호스팅된 컨트롤 플레인 클러스터를 배포하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
RHOSP(Red Hat OpenStack Platform) 17.1에서 실행되는 호스팅된 클러스터로 호스팅되는 컨트롤 플레인을 배포할 수 있습니다.
호스팅 클러스터는 관리 클러스터에서 호스팅되 는 API 끝점 및 컨트롤 플레인이 있는 OpenShift Container Platform 클러스터입니다. 호스트된 컨트롤 플레인을 사용하면 각 컨트롤 플레인의 전용 가상 또는 물리적 시스템 필요 없이 컨트롤 플레인이 관리 클러스터에 Pod로 존재합니다.
4.7.1. OpenStack 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)에서 호스팅 클러스터를 생성하기 전에 다음 요구 사항을 충족해야 합니다.
- 관리 OpenShift Container Platform 클러스터 버전 4.17 이상에 대한 관리자 액세스 권한이 있어야 합니다. 이 클러스터는 베어 메탈, RHOSP 또는 지원되는 퍼블릭 클라우드에서 실행할 수 있습니다.
- HyperShift Operator는 "호스팅된 컨트롤 플레인 배포 준비"에 지정된 관리 클러스터에 설치됩니다.
- 관리 클러스터는 OVN-Kubernetes를 기본 Pod 네트워크 CNI로 사용하여 구성됩니다.
-
OpenShift CLI(
oc
) 및 호스팅된 컨트롤 플레인 CLI,hcp
가 설치됩니다. 로드 밸런서 백엔드(예: Octavia)는 관리 OCP 클러스터에 설치됩니다. 호스트된 각 클러스터에 대해
kube-api
서비스를 생성하려면 로드 밸런서가 필요합니다.- ingress가 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 로컬 스토리지를 위한 관리 클러스터 준비 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)에 HCP(Hosted Control Plane) 배포에서 기본 Cinder 기반 PVC(영구 볼륨 클레임)를 사용하는 대신 TopoLVM CSI 드라이버로 프로비저닝된 로컬 임시 스토리지를 사용하여 etcd 성능을 향상시킬 수 있습니다.
사전 요구 사항
- HyperShift가 설치된 관리 클러스터에 액세스할 수 있습니다.
- RHOSP 플레이버 및 머신 세트를 생성하고 관리할 수 있습니다.
-
oc
및openstack
CLI 툴이 설치되어 구성되어 있습니다. - TopoLVM 및 LVM(Logical Volume Manager) 스토리지 개념에 대해 잘 알고 있습니다.
- 관리 클러스터에 LVM Storage Operator가 설치되어 있어야 합니다. 자세한 내용은 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 이 예에서 resource는 다음과 같습니다.
-
임시 디스크 위치는 대부분의 경우
/dev/vdb
입니다. 경우에 따라 이 위치가 true인지 확인하고 심볼릭 링크가 지원되지 않습니다. -
기본 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. Ingress를 위한 유동 IP 생성 링크 복사링크가 클립보드에 복사되었습니다!
수동으로 개입하지 않고 호스팅 클러스터에서 수신을 사용하려면 유동 IP 주소를 미리 생성할 수 있습니다.
사전 요구 사항
- RHOSP(Red Hat OpenStack Platform) 클라우드에 액세스할 수 있습니다.
수신에 사전 정의된 유동 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 주소를 지정하면 cloud-provider-openstack
구성 요소가 자동으로 생성하려고 합니다. 이 프로세스는 Neutron API 정책에서 특정 IP 주소로 유동 IP 주소를 생성할 수 있는 경우에만 성공합니다.
4.7.4. OpenStack에 RHCOS 이미지 업로드 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 컨트롤 플레인 및 RHOSP(Red Hat OpenStack Platform) 배포에 노드 풀을 배포할 때 사용할 RHCOS 이미지를 지정하려면 이미지를 RHOSP 클라우드에 업로드합니다. 이미지를 업로드하지 않으면ORC(OpenStack Resource Controller)가 OpenShift Container Platform 미러에서 이미지를 다운로드하고 호스팅된 클러스터를 삭제한 후 이미지를 삭제합니다.
사전 요구 사항
- OpenShift Container Platform 미러에서 RHCOS 이미지를 다운로드했습니다.
- RHOSP 클라우드에 액세스할 수 있습니다.
프로세스
다음 명령을 실행하여 RHOSP에 RHCOS 이미지를 업로드합니다.
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를 사용하여 RHOSP(Red Hat OpenStack Platform)에서 호스팅 클러스터를 생성할 수 있습니다.
사전 요구 사항
- "호스트된 컨트롤 플레인 배포 준비"에서 모든 사전 요구 사항 단계를 완료했습니다.
- "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
CAPI(클러스터 API) 공급자가 생성하는 RHOSP 리소스에는 레이블 openshiftClusterID=<infraID>가 태그됩니다
.
호스팅된 클러스터를 생성하는 데 사용하는 YAML 매니페스트의 HostedCluster.Spec.Platform.OpenStack.Tags
필드에 있는 값으로 리소스에 대한 추가 태그를 정의할 수 있습니다. 노드 풀을 확장한 후 태그가 리소스에 적용됩니다.
4.7.5.1. OpenStack에서 호스팅 컨트롤 플레인 클러스터를 생성하는 옵션 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)에 호스팅 컨트롤 플레인 클러스터를 배포하는 동안 hcp
CLI에 여러 옵션을 제공할 수 있습니다.
옵션 | 설명 | 필수 항목 |
---|---|---|
|
OpenStack CA 인증서 파일의 경로입니다. 제공하지 않으면 | 없음 |
|
| 없음 |
|
OpenStack 자격 증명 파일의 경로입니다. 제공되지 않는 경우
| 없음 |
| 서브넷을 만들 때 제공되는 DNS 서버 주소 목록입니다. | 없음 |
| OpenStack 외부 네트워크의 ID입니다. | 없음 |
| OpenShift 인그레스의 유동 IP입니다. | 없음 |
|
노드에 연결할 추가 포트입니다. 유효한 값은 | 없음 |
| 노드 풀의 가용성 영역입니다. | 없음 |
| 노드 풀에 플레이버입니다. | 제공됨 |
| 노드 풀의 이미지 이름입니다. | 없음 |