1.5. 인프라 환경 생성
Kubernetes 콘솔용 Red Hat Advanced Cluster Management for Kubernetes 콘솔을 사용하여 호스트를 관리하고 해당 호스트에서 클러스터를 생성할 수 있는 인프라 환경을 생성할 수 있습니다.
인프라 환경은 다음과 같은 기능을 지원합니다.
- 클러스터의 제로 프로비저닝: 스크립트를 사용하여 클러스터를 배포합니다. 자세한 내용은 Red Hat OpenShift Container Platform 설명서의 연결이 끊긴 환경에서 대규모로 분산 단위 배포를 참조하십시오.
- 늦은 바인딩: 인프라 관리자가 호스트를 부팅하고 클러스터 작성자는 나중에 해당 호스트에 클러스터를 바인딩할 수 있습니다. 클러스터 작성자는 늦은 바인딩을 사용할 때 인프라에 대한 관리자 권한이 필요하지 않습니다.
-
듀얼 스택: IPv4 및 IPv6 주소가 모두 있는 클러스터를 배포합니다. 듀얼 스택은
OVN-Kubernetes
네트워킹 구현을 사용하여 여러 서브넷을 지원합니다. - 원격 작업자 노드 추가: 생성 및 실행 후 클러스터에 원격 작업자 노드를 추가하여 백업 목적으로 다른 위치에 노드를 추가할 수 있는 유연성을 제공합니다.
- NMState를 사용하는 고정 IP: NMState API를 사용하여 환경에 대한 고정 IP 주소를 정의합니다.
1.5.1. 사전 요구 사항
인프라 환경을 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- OpenShift Container Platform이 hub 클러스터에 배포되어 있어야 합니다.
- Red Hat Advanced Cluster Management hub 클러스터(연결됨) 클러스터의 인터넷 액세스 또는 환경 생성에 필요한 이미지를 검색하려면 인터넷에 연결되지 않은 내부 또는 미러 레지스트리에 연결해야 합니다.
- 허브 클러스터에 구성된 CIM(Central Infrastructure Management) 기능의 구성된 인스턴스가 필요합니다. 절차에 대한 중앙 인프라 관리 서비스 활성화를 참조하십시오.
- OpenShift Container Platform 풀 시크릿이 필요합니다. 자세한 내용은 이미지 풀 시크릿 사용을 참조하십시오.
-
기본적으로
~/.ssh/id_rsa.pub
파일에 있는 SSH 키가 필요합니다. - 구성된 스토리지 클래스가 필요합니다.
- 연결이 끊긴 환경만 해당: OpenShift Container Platform 설명서에서 연결이 끊긴 환경을 준비하는 절차를 완료합니다.
1.5.2. 중앙 인프라 관리 서비스 활성화
중앙 인프라 관리 서비스는 {mce-short}와 함께 제공되며 OpenShift Container Platform 클러스터를 배포합니다. CIM은 허브 클러스터에서 MultiClusterHub
Operator를 활성화할 때 배포되지만 활성화해야 합니다.
CIM 서비스를 활성화하려면 다음 단계를 완료합니다.
중요: 베어 메탈, Red Hat OpenStack Platform, VMware vSphere 또는 사용자 프로비저닝 인프라(UPI) 방법을 사용하여 hub 클러스터가 다음 플랫폼 중 하나에 설치되어 있고 플랫폼이 None
인 경우 다음 단계를 완료합니다. hub 클러스터가 다른 플랫폼에 있는 경우 이 단계를 건너뜁니다.
다음 명령을 실행하여 Bare Metal Operator가 모든 네임스페이스를 조사할 수 있도록
프로비저닝
리소스를 수정합니다.oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'
연결이 끊긴 환경의 경우: 인프라 Operator와 동일한 네임스페이스에
ConfigMap
을 생성하여 미러 레지스트리의ca-bundle.crt
및registries.conf
값을 지정합니다. 파일ConfigMap
은 다음 예와 유사해야 합니다.apiVersion: v1 kind: ConfigMap metadata: name: <mirror-config> namespace: "<infrastructure-operator-namespace>" labels: app: assisted-service data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- certificate contents -----END CERTIFICATE----- registries.conf: | unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] prefix = "" location = "quay.io/edge-infrastructure" mirror-by-digest-only = false [[registry.mirror]] location = "mirror1.registry.corp.com:5000/edge-infrastructure"
1.5.2.1. AgentServiceConfig 사용자 정의 리소스 생성
다음 단계를 완료하여 AgentServiceConfig
사용자 지정 리소스를 생성합니다.
연결이 끊긴 환경의 경우에만:
agent_service_config.yaml
파일에 다음YAML
콘텐츠를 저장하고 필요에 따라 값을 교체합니다.apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent spec: databaseStorage: accessModes: - ReadWriteOnce resources: requests: storage: <db_volume_size> filesystemStorage: accessModes: - ReadWriteOnce resources: requests: storage: <fs_volume_size> mirrorRegistryRef: name: <mirror_config> unauthenticatedRegistries: - <unauthenticated_registry> imageStorage: accessModes: - ReadWriteOnce resources: requests: storage: <img_volume_size> osImages: - openshiftVersion: "<ocp_version>" version: "<ocp_release_version>" url: "<iso_url>" rootFSUrl: "<root_fs_url>" cpuArchitecture: "x86_64"
mirror_config
를 미러 레지스트리 구성 세부 정보가 포함된ConfigMap
의 이름으로 교체합니다.인증이 필요하지 않은 미러 레지스트리를 사용하는 경우 선택적
unauthenticated_registry
매개변수를 포함합니다. 이 목록의 항목은 검증되지 않거나 가져오기 시크릿에 항목이 있어야 합니다.연결된 환경의 경우에만:
agent_service_config.yaml
파일에 다음YAML
콘텐츠를 저장합니다.apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent spec: databaseStorage: accessModes: - ReadWriteOnce resources: requests: storage: <db_volume_size> filesystemStorage: accessModes: - ReadWriteOnce resources: requests: storage: <fs_volume_size> imageStorage: accessModes: - ReadWriteOnce resources: requests: storage: <img_volume_size>
db_volume_size
를databaseStorage
필드의 볼륨 크기로 교체합니다(예:10G
). 이 값은 클러스터의 데이터베이스 테이블 및 데이터베이스 뷰와 같은 파일을 저장하기 위해 할당된 스토리지 양을 지정합니다. 클러스터가 많은 경우 더 높은 값을 사용해야 할 수 있습니다.fs_volume_size
를filesystemStorage
필드의 볼륨 크기로 교체합니다(예: 클러스터당200M
, 지원되는 OpenShift Container Platform 버전당2-3G
). 필요한 최소 값은100G
입니다. 이 값은 클러스터의 로그, 매니페스트,kubeconfig
파일을 저장하기 위해 할당된 스토리지 양을 지정합니다. 클러스터가 많은 경우 더 높은 값을 사용해야 할 수 있습니다.img_volume_size
를imageStorage
필드의 볼륨 크기(예: 운영 체제 이미지당2G
)로 바꿉니다. 최소 크기는50G
입니다. 이 값은 클러스터 이미지에 할당되는 스토리지 양을 지정합니다. 실행 중인 Red Hat Enterprise Linux CoreOS 인스턴스마다 1GB의 이미지 스토리지를 허용해야 합니다. Red Hat Enterprise Linux CoreOS의 여러 클러스터와 인스턴스가 있는 경우 더 높은 값을 사용해야 할 수 있습니다.ocp_version
을 설치할 OpenShift Container Platform 버전으로 교체합니다(예:4.9
).ocp_release_version
을 특정 설치 버전 (예:49.83.202103251640-0
)으로 바꿉니다.iso_url
을 ISO URL로 교체합니다(예:https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/rhcos-4.10.3-x86_64-live.x86_64.iso
). 다른 값은 https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/ 에서 확인할 수 있습니다.root_fs_url
을 루트 FS 이미지 URL로 교체합니다(예:https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/rhcos-4.10.3-x86_64-live-rootfs.x86_64.img
). 다른 값은 https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/ 에서 확인할 수 있습니다.다음 명령을 실행하여
AgentServiceConfig
사용자 지정 리소스를 생성합니다.oc create -f agent_service_config.yaml
출력은 다음 예와 유사할 수 있습니다.
agentserviceconfig.agent-install.openshift.io/agent created
assisted-service
및 assisted-image-service
배포를 확인하고 해당 Pod가 준비되고 실행 중인지 확인할 수 있습니다. 콘솔을 사용하여 인프라 환경 생성을 계속합니다.
1.5.2.2. 프로비저닝 사용자 정의 리소스(CR)를 수동으로 생성
다음 명령을 사용하여 자동화된 프로비저닝
용 서비스를 활성화하는 프로비저닝 CR을 수동으로 생성합니다.
oc create -f provisioning-configuration.yaml
CR은 다음 샘플과 유사할 수 있습니다.
apiVersion: metal3.io/v1alpha1 kind: Provisioning metadata: name: provisioning-configuration spec: provisioningNetwork: Disabled watchAllNamespaces: true
1.5.2.3. Amazon Web Services에서 중앙 인프라 관리 활성화
Amazon Web Services에서 hub 클러스터를 실행하고 CIM 서비스를 활성화하려면 CIM 활성화 후 다음 추가 단계를 완료합니다.
허브에 로그인했는지 확인하고 다음 명령을 실행하여
assisted-image-service
에서 구성된 고유 도메인을 찾습니다.oc get routes --all-namespaces | grep assisted-image-service
도메인은
assisted-image-service-multicluster-engine.apps.<yourdomain>.com과 유사할 수 있습니다.
허브에 로그인했는지 확인하고
NLB
type
매개변수를 사용하여 고유한 도메인이 있는 새IngressController
를 생성합니다. 다음 예제를 참조하십시오.apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: ingress-controller-with-nlb namespace: openshift-ingress-operator spec: domain: nlb-apps.<domain>.com routeSelector: matchLabels: router-type: nlb endpointPublishingStrategy: type: LoadBalancerService loadBalancer: scope: External providerParameters: type: AWS aws: type: NLB
-
nlb-apps.<
매개변수에 <domain
>.com에서 <yourdomain
>을 <yourdomain> 으로 교체하여IngressController
의 domainyourdomain
>을 추가합니다. 다음 명령을 사용하여 새
IngressController
를 적용합니다.oc apply -f ingresscontroller.yaml
다음 명령을 실행하여
nlb-apps
위치를 사용하도록assisted-image-service
경로를 편집합니다.oc edit route assisted-image-service -n <namespace>
팁: 기본 네임스페이스는 :mce:를 설치한 위치입니다.
assisted-image-service
경로에 다음 행을 추가합니다.metadata: labels: router-type: nlb name: assisted-image-service
assisted-image-service
경로에서spec.host
의 URL 값을 찾습니다. URL은 다음 예와 유사할 수 있습니다.assisted-image-service-multicluster-engine.apps.<yourdomain>.com
-
새
IngressController
에 구성된 도메인과 일치하도록 URL의 앱을nlb-
로 바꿉니다.apps
Amazon Web Services에서 CIM 서비스가 활성화되어 있는지 확인하려면 다음 단계를 완료합니다.
다음 명령을 실행하여 Pod가 정상인지 확인합니다.
oc get pods -n multicluster-engine | grep assist
-
새 인프라 환경을 생성하고 다운로드 URL에서 새
nlb-apps
URL을 사용하는지 확인합니다.
1.5.3. 콘솔을 사용하여 인프라 환경 생성
Red Hat Advanced Cluster Management 콘솔에서 인프라 환경을 생성하려면 다음 단계를 완료합니다.
- 탐색 메뉴에서 인프라 > 인프라 환경으로 이동 하여 인프라 환경 생성을 클릭합니다.
인프라 환경 설정에 다음 정보를 추가합니다.
- name: 사용자 환경의 고유 이름입니다.
- 네트워크 유형: 환경에 추가할 수 있는 호스트 유형을 지정합니다. 베어 메탈 호스트를 사용하는 경우에만 고정 IP 옵션을 사용할 수 있습니다.
- Location: 호스트의 지리적 위치를 지정합니다. 지리적 위치를 사용하여 클러스터를 생성할 때 클러스터의 데이터가 저장되는 위치를 쉽게 확인할 수 있습니다.
- 레이블: 인프라 환경에 레이블을 추가할 수 있는 선택적 필드로, 보다 쉽게 찾아 특성을 공유하는 다른 환경으로 환경을 그룹화할 수 있습니다. 네트워크 유형 및 위치에 대한 선택 사항이 레이블 목록에 자동으로 추가됩니다.
- 풀 시크릿: OpenShift Container Platform 리소스에 액세스할 수 있는 OpenShift Container Platform 풀 시크릿 입니다.
-
SSH 공개 키: 호스트와의 보안 통신을 활성화하는 SSH 키입니다. 기본적으로
~/.ssh/id_rsa.pub
파일에 있습니다. 모든 클러스터에서 프록시 설정을 활성화하려면 설정을 선택하여 활성화합니다. 이를 위해서는 다음 정보를 입력해야 합니다.
- HTTP 프록시 URL: 검색 서비스에 액세스할 때 사용해야 하는 URL입니다.
-
HTTPS 프록시 URL: 검색 서비스에 액세스할 때 사용해야 하는 보안 프록시 URL입니다.
https
는 아직 지원되지 않으므로http
형식이어야 합니다. -
프록시 도메인 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 도메인 목록입니다. 해당 도메인에 있는 모든 하위 도메인을 포함하려면 마침표로 도메인 이름을 시작합니다
.
모든 대상에 대한 프록시를 바이패스하려면 및 별표*
를 추가합니다.
이제 인프라 환경에 호스트를 추가하여 계속할 수 있습니다.
인프라 환경에 액세스하려면 콘솔에서 Infrastructure > Host inventory 를 선택합니다. 목록에서 인프라 환경을 선택하여 해당 인프라 환경에 대한 세부 정보 및 호스트를 확인합니다.
1.5.4. 인프라 환경에 호스트 추가
Red Hat Advanced Cluster Management for Kubernetes 콘솔을 사용하여 인프라 환경에 호스트를 추가할 수 있습니다. 호스트를 추가하면 클러스터를 생성할 때 이미 구성된 호스트를 더 쉽게 선택할 수 있습니다.
호스트를 추가하려면 다음 단계를 완료합니다.
- Red Hat Advanced Cluster Management 탐색에서 인프라 > 인프라 환경을 선택합니다.
- 호스트를 추가하여 설정을 볼 인프라 환경을 선택합니다.
- 호스트 탭을 선택하여 이미 해당 환경에 추가된 호스트를 확인하고 호스트를 추가합니다. 사용 가능한 호스트가 테이블에 표시되는 데 몇 분이 걸릴 수 있습니다.
- Discovery ISO 또는 BMC(Baseboard Management Controller) 를 선택하여 호스트 정보를 입력합니다.
Discovery ISO 옵션을 선택하는 경우 다음 단계를 완료합니다.
- 콘솔에 제공된 명령을 복사하여 ISO를 다운로드하거나 Discovery ISO 다운로드를 선택합니다.
- 부팅 가능한 장치에서 명령을 실행하여 각 호스트를 시작합니다.
- 보안을 강화하기 위해 검색된 각 호스트에 대해 Approve host 를 선택합니다. 이 추가 단계는 ISO 파일이 변경되어 인증되지 않은 사람이 실행하는 경우 일부 보호 조치를 제공합니다.
-
이름이 지정된 호스트,
localhost
의 이름을 고유한 이름으로 변경합니다.
BMC(Baseboard Management Controller) 옵션을 선택하는 경우 다음 단계를 완료합니다.
참고: 호스트를 추가하기 위한 BMC 옵션은 Red Hat Advanced Cluster Management hub 클러스터의 플랫폼이 베어 메탈, Red Hat OpenStack Platform, VMware vSphere 또는 사용자 프로비저닝 인프라(UPI) 방법을 사용하여 설치된 경우에만 사용할 수 있으며 플랫폼은
None
입니다.- 호스트의 BMC에 대한 연결 세부 정보를 추가합니다.
부팅 프로세스를 시작하려면 호스트 추가 를 선택합니다. 호스트는 검색 ISO 이미지를 사용하여 자동으로 부팅되며 호스트 목록이 시작될 때 추가됩니다.
BMC 옵션을 사용하여 호스트를 추가하면 호스트가 자동으로 승인됩니다.
이제 이 인프라 환경에서 온-프레미스 클러스터를 만들 수 있습니다. 클러스터 생성에 대한 자세한 내용은 온-프레미스 환경에서 클러스터 생성을 참조하십시오.