6.3. 연결이 끊긴 환경의 베어 메탈에 호스팅된 컨트롤 플레인 배포
베어 메탈에서 호스팅되는 컨트롤 플레인을 프로비저닝할 때 에이전트 플랫폼을 사용합니다. Kubernetes Operator의 에이전트 플랫폼과 다중 클러스터 엔진은 함께 작동하여 연결이 끊긴 배포를 활성화합니다. 에이전트 플랫폼은 중앙 인프라 관리 서비스를 사용하여 호스트된 클러스터에 작업자 노드를 추가합니다. 중앙 인프라 관리 서비스에 대한 소개는 중앙 인프라 관리 서비스 활성화를 참조하세요.
6.3.1. 베어 메탈의 연결이 끊긴 환경 아키텍처 링크 복사링크가 클립보드에 복사되었습니다!
다음 다이어그램은 연결이 끊긴 환경의 예제 아키텍처를 보여줍니다.
- 연결이 끊긴 배포가 작동하는지 확인하기 위해 TLS 지원, 웹 서버 및 DNS를 사용하여 레지스트리 인증서 배포를 포함한 인프라 서비스를 구성합니다.
openshift-config
네임스페이스에 구성 맵을 생성합니다. 이 예에서 구성 맵의 이름은registry-config
입니다. 구성 맵의 내용은 레지스트리 CA 인증서입니다. 구성 맵의 data 필드에는 다음 키/값이 포함되어야 합니다.-
키: <
registry_dns_domain_name>..<port
> (예:registry.hypershiftdomain.lab..5000:
). 포트를 지정할 때 레지스트리 DNS 도메인 이름 뒤에..
를 배치해야 합니다. value: 인증서 콘텐츠
구성 맵 생성에 대한 자세한 내용은 호스팅된 컨트롤 플레인의 연결이 끊긴 설치에 대한 TLS 인증서 구성 을 참조하십시오.
-
키: <
-
images.config.openshift.io
CR(사용자 정의 리소스) 사양을 수정하고 이름이registry-config
인additionalTrustedCA
라는 새 필드를 추가합니다. 두 개의 데이터 필드가 포함된 구성 맵을 생성합니다. 한 필드에는
RAW
형식의registries.conf
파일이 포함되어 있고 다른 필드에는 레지스트리 CA가 포함되어 있으며ca-bundle.crt
라는 이름이 있습니다. 구성 맵은multicluster-engine
네임스페이스에 속하며 구성 맵 이름은 다른 오브젝트에서 참조됩니다. 구성 맵의 예는 다음 샘플 구성을 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
다중 클러스터 엔진 Operator 네임스페이스에서 Agent 및
hypershift-addon
애드온을 둘 다 활성화하는multiclusterengine
CR을 생성합니다. 다중 클러스터 엔진 Operator 네임스페이스에는 연결이 끊긴 배포에서 동작을 수정하려면 구성 맵이 포함되어야 합니다. 네임스페이스에는multicluster-engine
,assisted-service
,hypershift-addon-manager
Pod도 포함되어 있습니다. 호스팅된 클러스터를 배포하는 데 필요한 다음 객체를 만듭니다.
- 비밀: 비밀에는 풀 비밀, SSH 키, etcd 암호화 키가 포함되어 있습니다.
- 구성 맵: 구성 맵에는 개인 레지스트리의 CA 인증서가 포함되어 있습니다.
-
HostedCluster
:HostedCluster
리소스는 사용자가 생성하려는 클러스터의 구성을 정의합니다. -
NodePool
:NodePool
리소스는 데이터 플레인에 사용할 머신을 참조하는 노드 풀을 식별합니다.
-
호스팅된 클러스터 객체를 생성한 후 HyperShift Operator는 제어 평면 포드를 수용하기 위해
HostedControlPlane
네임스페이스를 설정합니다. 네임스페이스는 에이전트, 베어 메탈 호스트(BMH),InfraEnv
리소스와 같은 구성 요소도 호스팅합니다. 나중에InfraEnv
리소스를 만들고 ISO를 만든 후 베이스보드 관리 컨트롤러(BMC) 자격 증명이 포함된 BMH와 해당 비밀을 만듭니다. -
openshift-machine-api
네임스페이스의 Metal3 Operator는 새로운 BMH를 검사합니다. 그런 다음 Metal3 Operator는 멀티클러스터 엔진 Operator 네임스페이스의AgentServiceConfig
CR을 통해 지정된 구성된LiveISO
및RootFS
값을 사용하여 BMC에 연결하여 시작하려고 시도합니다. -
HostedCluster
리소스의 작업자 노드가 시작된 후 에이전트 컨테이너가 시작됩니다. 이 에이전트는 배포를 완료하기 위한 작업을 조율하는 지원 서비스와 연락을 취합니다. 처음에는HostedCluster
리소스의 워커 노드 수에 맞춰NodePool
리소스를 확장해야 합니다. 지원 서비스는 나머지 업무를 관리합니다. - 이 시점에서 배포 프로세스가 완료될 때까지 기다립니다.
6.3.2. 연결이 끊긴 환경에서 베어 메탈에 호스팅된 제어 평면을 배포하기 위한 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
연결이 끊긴 환경에서 호스팅된 제어 평면을 구성하려면 다음 필수 조건을 충족해야 합니다.
- CPU: 제공된 CPU 수는 동시에 실행할 수 있는 호스팅 클러스터의 수를 결정합니다. 일반적으로 3개의 노드의 경우 각 노드에 16개의 CPU를 사용합니다. 최소한의 개발이라면 각 노드에 12개의 CPU를 사용하여 3개의 노드를 만들 수 있습니다.
- 메모리: RAM 용량은 호스팅할 수 있는 클러스터 수에 영향을 미칩니다. 각 노드에 48GB의 RAM을 사용하세요. 최소한의 개발이라면 18GB RAM이면 충분할 수 있습니다.
저장소: 멀티클러스터 엔진 운영자의 경우 SSD 저장소를 사용합니다.
- 관리 클러스터: 250GB.
- 레지스트리: 필요한 저장 공간은 호스팅되는 릴리스, 연산자 및 이미지의 수에 따라 달라집니다. 허용 가능한 크기는 500GB이며, 호스팅된 클러스터를 호스팅하는 디스크와 분리하는 것이 좋습니다.
- 웹 서버: 필요한 저장 공간은 호스팅되는 ISO와 이미지의 수에 따라 달라집니다. 허용 가능한 크기는 500GB입니다.
운영: 운영 환경의 경우 관리 클러스터, 레지스트리, 웹 서버를 서로 다른 디스크에 분리합니다. 이 예는 프로덕션을 위한 가능한 구성을 보여줍니다.
- 레지스트리: 2TB
- 관리 클러스터: 500GB
- 웹 서버: 2TB
6.3.3. 릴리스 이미지 다이제스트 추출 링크 복사링크가 클립보드에 복사되었습니다!
태그가 지정된 이미지를 사용하여 OpenShift 컨테이너 플랫폼 릴리스 이미지 다이제스트를 추출할 수 있습니다.
프로세스
다음 명령을 실행하여 이미지 다이제스트를 얻으세요.
oc adm release info <tagged_openshift_release_image> | grep "Pull From"
$ oc adm release info <tagged_openshift_release_image> | grep "Pull From"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <tagged_openshift_release_image>를
지원되는 OpenShift Container Platform 버전의 태그가 지정된 이미지로 바꾸세요(예:quay.io/openshift-release-dev/ocp-release:4.14.0-x8_64
).출력 예
Pull From: quay.io/openshift-release-dev/ocp-release@sha256:69d1292f64a2b67227c5592c1a7d499c7d00376e498634ff8e1946bc9ccdddfe
Pull From: quay.io/openshift-release-dev/ocp-release@sha256:69d1292f64a2b67227c5592c1a7d499c7d00376e498634ff8e1946bc9ccdddfe
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.4. 베어 메탈의 DNS 구성 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터의 API 서버는 NodePort
서비스로 노출됩니다. API 서버에 도달할 수 있는 대상을 가리키는 api.<hosted_cluster_name>.<base_domain>
에 대한 DNS 항목이 있어야 합니다.
DNS 항목은 호스팅된 제어 평면을 실행하는 관리 클러스터의 노드 중 하나를 가리키는 레코드만큼 간단할 수 있습니다. 또한, 진입점은 유입 트래픽을 인그레스 포드로 리디렉션하기 위해 배포된 로드 밸런서를 가리킬 수도 있습니다.
DNS 구성 예
이전 예에서, *.apps.example.krnl.es. 192.168.122.23에서
호스팅된 클러스터의 노드이거나 로드 밸런서가 구성된 경우 로드 밸런서입니다.
IPv6 네트워크에서 연결이 끊긴 환경에 대한 DNS를 구성하는 경우 구성은 다음 예와 같습니다.
IPv6 네트워크에 대한 DNS 구성 예
듀얼 스택 네트워크에서 연결이 끊긴 환경에 대한 DNS를 구성하는 경우 IPv4와 IPv6에 대한 DNS 항목을 모두 포함해야 합니다.
듀얼 스택 네트워크를 위한 DNS 구성 예
6.3.5. 연결이 끊긴 환경에서 호스팅된 제어 평면에 대한 레지스트리 배포 링크 복사링크가 클립보드에 복사되었습니다!
개발 환경의 경우 Podman 컨테이너를 사용하여 소규모의 자체 호스팅 레지스트리를 배포합니다. 프로덕션 환경의 경우 Red Hat Quay, Nexus 또는 Artifactory와 같은 엔터프라이즈 호스팅 레지스트리를 배포합니다.
프로세스
Podman을 사용하여 소규모 레지스트리를 배포하려면 다음 단계를 완료하세요.
권한이 있는 사용자로서
${HOME}
디렉토리에 액세스하여 다음 스크립트를 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
PULL_SECRET
의 위치를 설정에 적합한 위치로 바꾸세요.
스크립트 파일 이름을
registry.sh로
지정하고 저장합니다. 스크립트를 실행하면 다음 정보가 가져옵니다.- 하이퍼바이저 호스트 이름을 기반으로 하는 레지스트리 이름
- 필요한 자격 증명 및 사용자 액세스 세부 정보
다음과 같이 실행 플래그를 추가하여 권한을 조정합니다.
chmod u+x ${HOME}/registry.sh
$ chmod u+x ${HOME}/registry.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 매개변수 없이 스크립트를 실행하려면 다음 명령을 입력하세요.
${HOME}/registry.sh
$ ${HOME}/registry.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스크립트가 서버를 시작합니다. 스크립트는 관리 목적으로
systemd
서비스를 사용합니다.스크립트를 관리해야 하는 경우 다음 명령을 사용할 수 있습니다.
systemctl status
$ systemctl status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start
$ systemctl start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl stop
$ systemctl stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
레지스트리의 루트 폴더는 /opt/registry
디렉토리에 있으며 다음과 같은 하위 디렉토리를 포함합니다.
-
certs
에는 TLS 인증서가 포함되어 있습니다. -
auth
에는 자격 증명이 포함되어 있습니다. -
데이터
에는 레지스트리 이미지가 포함되어 있습니다. -
conf
에는 레지스트리 구성이 포함되어 있습니다.
6.3.6. 연결이 끊긴 환경에서 호스팅된 제어 평면에 대한 관리 클러스터 설정 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 관리 클러스터를 설정하려면 Kubernetes Operator용 멀티클러스터 엔진이 설치되어 있는지 확인해야 합니다. 멀티클러스터 엔진 운영자는 공급업체 전반에 클러스터를 배포하는 데 중요한 역할을 합니다.
사전 요구 사항
- 관리 클러스터와 대상 베어 메탈 호스트(BMH)의 베이스보드 관리 컨트롤러(BMC) 사이에는 양방향 연결이 있어야 합니다. 또는 에이전트 제공자를 통해 Boot It Yourself 방식을 따를 수도 있습니다.
호스팅된 클러스터는 관리 클러스터 호스트 이름과
*.apps
호스트 이름의 API 호스트 이름을 확인하고 연결할 수 있어야 합니다. 다음은 관리 클러스터의 API 호스트 이름과*.apps
호스트 이름의 예입니다.-
api.management-cluster.internal.domain.com
-
console-openshift-console.apps.management-cluster.internal.domain.com
-
관리 클러스터는 호스팅된 클러스터의 API 및
*.apps
호스트 이름을 확인하고 연결할 수 있어야 합니다. 다음은 호스팅된 클러스터의 API 호스트 이름과*.apps
호스트 이름의 예입니다.-
api.sno-hosted-cluster-1.internal.domain.com
-
console-openshift-console.apps.sno-hosted-cluster-1.internal.domain.com
-
프로세스
- OpenShift Container Platform 클러스터에 멀티클러스터 엔진 Operator 2.4 이상을 설치합니다. OpenShift Container Platform OperatorHub에서 Operator로 멀티클러스터 엔진 Operator를 설치할 수 있습니다. HyperShift Operator는 멀티클러스터 엔진 Operator에 포함되어 있습니다. 멀티클러스터 엔진 오퍼레이터 설치에 대한 자세한 내용은 Red Hat Advanced Cluster Management 문서의 "멀티클러스터 엔진 오퍼레이터 설치 및 업그레이드"를 참조하세요.
- HyperShift Operator가 설치되어 있는지 확인하세요. HyperShift Operator는 멀티클러스터 엔진 Operator에 자동으로 포함되지만, 수동으로 설치해야 하는 경우 "로컬 클러스터에 대한 HyperShift-addon 관리형 클러스터 애드온을 수동으로 활성화"의 단계를 따르세요.
다음 단계
다음으로, 웹 서버를 구성합니다.
6.3.7. 연결이 끊긴 환경에서 호스팅된 제어 평면에 대한 웹 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
호스팅 클러스터로 배포하는 OpenShift Container Platform 릴리스와 연관된 Red Hat Enterprise Linux CoreOS(RHCOS) 이미지를 호스팅하려면 추가 웹 서버를 구성해야 합니다.
프로세스
웹 서버를 구성하려면 다음 단계를 완료하세요.
다음 명령을 입력하여 사용하려는 OpenShift Container Platform 릴리스에서
openshift-install
바이너리를 추출합니다.oc adm -a ${LOCAL_SECRET_JSON} release extract --command=openshift-install \ "${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}"
$ oc adm -a ${LOCAL_SECRET_JSON} release extract --command=openshift-install \ "${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 스크립트를 실행합니다. 스크립트는
/opt/srv
디렉토리에 폴더를 생성합니다. 이 폴더에는 작업자 노드를 프로비저닝하는 RHCOS 이미지가 들어 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다운로드가 완료되면 컨테이너가 실행되어 웹 서버에서 이미지를 호스팅합니다. 컨테이너는 공식 HTTPd 이미지의 변형을 사용하는데, 이를 통해 IPv6 네트워크에서도 작동할 수 있습니다.
6.3.8. 연결이 끊긴 환경에서 호스팅된 제어 평면에 대한 이미지 미러링 구성 링크 복사링크가 클립보드에 복사되었습니다!
이미지 미러링은 registry.redhat.com
이나 quay.io
와 같은 외부 레지스트리에서 이미지를 가져와서 개인 레지스트리에 저장하는 프로세스입니다.
다음 절차에서는 ImageSetConfiguration
객체를 사용하는 바이너리인 oc-mirror
도구를 사용합니다. 파일에서 다음 정보를 지정할 수 있습니다.
-
미러링할 OpenShift 컨테이너 플랫폼 버전입니다. 해당 버전은
quay.io
에 있습니다. - 미러링할 추가 연산자입니다. 패키지를 개별적으로 선택하세요.
- 저장소에 추가하려는 추가 이미지입니다.
사전 요구 사항
- 미러링 프로세스를 시작하기 전에 레지스트리 서버가 실행 중인지 확인하세요.
프로세스
이미지 미러링을 구성하려면 다음 단계를 완료하세요.
-
미러링할 레지스트리와 이미지를 푸시할 개인 레지스트리로
${HOME}/.docker/config.json
파일이 업데이트되었는지 확인하세요. 다음 예제를 사용하여 미러링에 사용할
ImageSetConfiguration
객체를 만듭니다. 필요에 따라 값을 환경과 일치하도록 바꾸세요.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 미러링 프로세스를 시작합니다.
oc-mirror --v2 --config imagesetconfig.yaml \ --workspace file://mirror-file docker://<registry>
$ oc-mirror --v2 --config imagesetconfig.yaml \ --workspace file://mirror-file docker://<registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 미러링 프로세스가 완료되면
mirror-file
이라는 새 폴더가 생성되는데, 여기에는ImageDigestMirrorSet
(IDMS),ImageTagMirrorSet
(ITMS) 및 호스팅된 클러스터에 적용할 카탈로그 소스가 포함됩니다.다음과 같이
imagesetconfig.yaml
파일을 구성하여 OpenShift Container Platform의 야간 버전이나 CI 버전을 미러링합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 부분적으로 연결이 끊긴 환경이 있는 경우 다음 명령을 입력하여 이미지 세트 구성의 이미지를 레지스트리로 미러링합니다.
oc mirror -c imagesetconfig.yaml \ --workspace file://<file_path> docker://<mirror_registry_url> --v2
$ oc mirror -c imagesetconfig.yaml \ --workspace file://<file_path> docker://<mirror_registry_url> --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 "부분적으로 연결이 끊긴 환경에서 이미지 세트 미러링"을 참조하세요.
완전히 연결이 끊긴 환경인 경우 다음 단계를 수행하세요.
다음 명령을 입력하여 지정된 이미지 세트 구성의 이미지를 디스크로 미러링합니다.
oc mirror -c imagesetconfig.yaml file://<file_path> --v2
$ oc mirror -c imagesetconfig.yaml file://<file_path> --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 "완전히 연결되지 않은 환경에서 이미지 세트 미러링"을 참조하세요.
다음 명령을 입력하여 디스크에 있는 이미지 세트 파일을 처리하고 내용을 대상 미러 레지스트리로 미러링합니다.
oc mirror -c imagesetconfig.yaml \ --from file://<file_path> docker://<mirror_registry_url> --v2
$ oc mirror -c imagesetconfig.yaml \ --from file://<file_path> docker://<mirror_registry_url> --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 연결이 끊긴 네트워크에 설치 단계에 따라 최신 멀티클러스터 엔진 Operator 이미지를 미러링합니다.
6.3.9. 관리 클러스터에 객체 적용 링크 복사링크가 클립보드에 복사되었습니다!
미러링 프로세스가 완료되면 관리 클러스터에 두 개의 객체를 적용해야 합니다.
-
ImageContentSourcePolicy
(ICSP) 또는ImageDigestMirrorSet
(IDMS) - 카탈로그 소스
oc-mirror
도구를 사용하면 출력 아티팩트는 oc-mirror-workspace/results-XXXXXX/
라는 폴더에 저장됩니다.
ICSP 또는 IDMS는 노드를 다시 시작하지 않고 각 노드에서 kubelet을 다시 시작하는 MachineConfig
변경을 시작합니다. 노드가 READY
로 표시된 후 새로 생성된 카탈로그 소스를 적용해야 합니다.
카탈로그 소스는 openshift-marketplace
Operator에서 카탈로그 이미지를 다운로드하고 해당 이미지에 포함된 모든 PackageManifest를
검색하기 위해 처리하는 등의 작업을 시작합니다.
프로세스
새로운 소스를 확인하려면 새
CatalogSource를
소스로 사용하여 다음 명령을 실행하세요.oc get packagemanifest
$ oc get packagemanifest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 아티팩트를 적용하려면 다음 단계를 완료하세요.
다음 명령을 입력하여 ICSP 또는 IDMS 아티팩트를 만듭니다.
oc apply -f oc-mirror-workspace/results-XXXXXX/imageContentSourcePolicy.yaml
$ oc apply -f oc-mirror-workspace/results-XXXXXX/imageContentSourcePolicy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드가 준비될 때까지 기다린 후 다음 명령을 입력하세요.
oc apply -f catalogSource-XXXXXXXX-index.yaml
$ oc apply -f catalogSource-XXXXXXXX-index.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OLM 카탈로그를 미러링하고 호스팅된 클러스터가 미러를 가리키도록 구성합니다.
관리
(기본값) OLMCatalogPlacement 모드를 사용하면 OLM 카탈로그에 사용되는 이미지 스트림이 관리 클러스터의 ICSP에서 제공하는 재정의 정보로 자동으로 수정되지 않습니다.-
OLM 카탈로그가 원래 이름과 태그를 사용하여 내부 레지스트리에 올바르게 미러링된 경우,
Hypershift.openshift.io/olm-catalogs-is-registry-overrides
주석을HostedCluster
리소스에 추가합니다. 형식은"sr1=dr1,sr2=dr2"
이며, 여기서 소스 레지스트리 문자열은 키이고 대상 레지스트리는 값입니다. OLM 카탈로그 이미지 스트림 메커니즘을 우회하려면
HostedCluster
리소스에서 다음 네 가지 주석을 사용하여 OLM 운영자 카탈로그에 사용할 네 가지 이미지의 주소를 직접 지정합니다.-
hypershift.openshift.io/certified-operators-catalog-image
-
hypershift.openshift.io/community-operators-catalog-image
-
hypershift.openshift.io/redhat-marketplace-catalog-image
-
hypershift.openshift.io/redhat-operators-catalog-image
-
-
OLM 카탈로그가 원래 이름과 태그를 사용하여 내부 레지스트리에 올바르게 미러링된 경우,
이 경우 이미지 스트림이 생성되지 않으며, 내부 미러가 새로 고쳐질 때 주석 값을 업데이트하여 Operator 업데이트를 가져와야 합니다.
다음 단계
연결이 끊긴 호스팅 제어 평면 설치에 대한 멀티클러스터 엔진 연산자 배포의 단계를 완료하여 멀티클러스터 엔진 연산자 를 배포합니다.
6.3.10. AgentServiceConfig 리소스 배포 링크 복사링크가 클립보드에 복사되었습니다!
AgentServiceConfig
사용자 정의 리소스는 멀티클러스터 엔진 Operator의 일부인 Assisted Service 추가 기능의 필수 구성 요소입니다. 베어 메탈 클러스터 배포를 담당합니다. 추가 기능이 활성화되면 AgentServiceConfig
리소스를 배포하여 추가 기능을 구성합니다.
AgentServiceConfig
리소스를 구성하는 것 외에도, 멀티클러스터 엔진 Operator가 연결이 끊긴 환경에서도 제대로 작동하도록 하려면 추가 구성 맵을 포함해야 합니다.
프로세스
다음 구성 맵을 추가하여 사용자 정의 레지스트리를 구성합니다. 이 맵에는 배포를 사용자 정의하기 위한 연결 해제된 세부 정보가 포함되어 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
dns.base.domain.name을
DNS 기반 도메인 이름으로 바꾸세요.
객체에는 두 개의 필드가 포함되어 있습니다.
- 사용자 지정 CA: 이 필드에는 배포의 다양한 프로세스에 로드되는 인증 기관(CA)이 포함되어 있습니다.
-
레지스트리:
Registries.conf
필드에는 원본 소스 레지스트리가 아닌 미러 레지스트리에서 사용해야 하는 이미지와 네임스페이스에 대한 정보가 들어 있습니다.
다음 예와 같이
AssistedServiceConfig
객체를 추가하여 지원 서비스를 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
metadata.annotations["unsupported.agent-install.openshift.io/assisted-service-configmap"]
주석은 운영자가 동작을 사용자 정의하는 데 사용하는 구성 맵 이름을 참조합니다.- 2
spec.mirrorRegistryRef.name
주석은 지원 서비스 운영자가 사용하는 연결이 끊긴 레지스트리 정보를 포함하는 구성 맵을 가리킵니다. 이 구성 맵은 배포 프로세스 중에 해당 리소스를 추가합니다.- 3
spec.osImages
필드에는 이 운영자가 배포할 수 있는 다양한 버전이 포함되어 있습니다. 이 필드는 필수입니다. 이 예에서는RootFS
및LiveISO
파일을 이미 다운로드했다고 가정합니다.- 4
- 배포하려는 모든 OpenShift Container Platform 릴리스에 대해
cpuArchitecture
하위 섹션을 추가합니다. 이 예에서는 4.14와 4.15에 대한cpuArchitecture
하위 섹션이 포함되었습니다. - 5
rootFSUrl
및url
필드에서dns.base.domain.name을
DNS 기본 도메인 이름으로 바꿉니다.
모든 객체를 하나의 파일에 연결하여 배포하고 관리 클러스터에 적용합니다. 그렇게 하려면 다음 명령을 입력하세요.
oc apply -f agentServiceConfig.yaml
$ oc apply -f agentServiceConfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 두 개의 포드를 작동시킵니다.
출력 예
assisted-image-service-0 1/1 Running 2 11d assisted-service-668b49548-9m7xw 2/2 Running 5 11d
assisted-image-service-0 1/1 Running 2 11d
1 assisted-service-668b49548-9m7xw 2/2 Running 5 11d
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 단계
TLS 인증서를 구성합니다.
6.3.11. 호스팅된 제어 평면의 연결이 끊긴 설치를 위한 TLS 인증서 구성 링크 복사링크가 클립보드에 복사되었습니다!
연결이 끊긴 배포에서 적절한 기능을 보장하려면 관리 클러스터와 호스팅된 클러스터의 작업자 노드에서 레지스트리 CA 인증서를 구성해야 합니다.
6.3.11.1. 관리 클러스터에 레지스트리 CA 추가 링크 복사링크가 클립보드에 복사되었습니다!
관리 클러스터에 레지스트리 CA를 추가하려면 다음 단계를 완료하세요.
프로세스
다음 예와 유사한 구성 맵을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 전체 개체인
image.config.openshift.io
에 패치를 적용하여 다음 사양을 포함합니다.spec: additionalTrustedCA: - name: registry-config
spec: additionalTrustedCA: - name: registry-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 패치의 결과로 제어 평면 노드는 개인 레지스트리에서 이미지를 검색할 수 있으며 HyperShift Operator는 호스팅된 클러스터 배포를 위해 OpenShift Container Platform 페이로드를 추출할 수 있습니다.
객체에 패치를 적용하는 과정은 완료되기까지 몇 분 정도 걸릴 수 있습니다.
6.3.11.2. 호스팅된 클러스터의 작업자 노드에 레지스트리 CA 추가 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터의 데이터 플레인 작업자가 개인 레지스트리에서 이미지를 검색할 수 있도록 하려면 작업자 노드에 레지스트리 CA를 추가해야 합니다.
프로세스
hc.spec.additionalTrustBundle
파일에 다음 사양을 추가합니다.spec: additionalTrustBundle: - name: user-ca-bundle
spec: additionalTrustBundle: - name: user-ca-bundle
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
user-ca-bundle
항목은 다음 단계에서 생성하는 구성 맵입니다.
HostedCluster
개체가 생성된 동일한 네임스페이스에서user-ca-bundle
구성 맵을 생성합니다. 구성 맵은 다음 예와 유사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
HostedCluster
객체가 생성되는 네임스페이스를 지정합니다.
6.3.12. 베어 메탈에 호스팅된 클러스터 생성 링크 복사링크가 클립보드에 복사되었습니다!
호스팅 클러스터는 제어 평면과 API 엔드포인트가 관리 클러스터에 호스팅된 OpenShift Container Platform 클러스터입니다. 호스트된 클러스터에는 컨트롤 플레인과 해당 데이터 플레인이 포함됩니다.
6.3.12.1. 호스팅된 클러스터 객체 배포 링크 복사링크가 클립보드에 복사되었습니다!
일반적으로 HyperShift Operator는 HostedControlPlane
네임스페이스를 생성합니다. 하지만 이 경우에는 HyperShift Operator가 HostedCluster
개체를 조정하기 전에 모든 개체를 포함해야 합니다. 그런 다음 운영자가 조정 프로세스를 시작하면 모든 개체가 제자리에 있는 것을 찾을 수 있습니다.
프로세스
네임스페이스에 대한 다음 정보를 포함하는 YAML 파일을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HostedCluster
배포에 포함할 구성 맵과 비밀에 대한 다음 정보를 포함하는 YAML 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow RBAC 역할이 포함된 YAML 파일을 생성하여 지원 서비스 에이전트가 호스팅 제어 평면과 동일한
HostedControlPlane
네임스페이스에 있고 클러스터 API에서 계속 관리될 수 있도록 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow HostedCluster
개체에 대한 정보가 포함된 YAML 파일을 만들고 필요에 따라 값을 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 릴리스의 HyperShift Operator 릴리스를 가리키는
HostedCluster
개체에 주석을 추가합니다.다음 명령을 입력하여 이미지 페이로드를 얻습니다.
oc adm release info \ registry.<dns.base.domain.name>:5000/openshift-release-dev/ocp-release:<4.x.y>-x86_64 \ | grep hypershift
$ oc adm release info \ registry.<dns.base.domain.name>:5000/openshift-release-dev/ocp-release:<4.x.y>-x86_64 \ | grep hypershift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<dns.base.domain.name>
은 DNS 기반 도메인 이름이고<4.xy>는
사용하려는 지원되는 OpenShift Container Platform 버전입니다.출력 예
hypershift sha256:31149e3e5f8c5e5b5b100ff2d89975cf5f7a73801b2c06c639bf6648766117f8
hypershift sha256:31149e3e5f8c5e5b5b100ff2d89975cf5f7a73801b2c06c639bf6648766117f8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform Images 네임스페이스를 사용하여 다음 명령을 입력하여 다이제스트를 확인하세요.
podman pull registry.<dns.base.domain.name>:5000/openshift-release-dev/ocp-v4.0-art-dev@sha256:31149e3e5f8c5e5b5b100ff2d89975cf5f7a73801b2c06c639bf6648766117f8
podman pull registry.<dns.base.domain.name>:5000/openshift-release-dev/ocp-v4.0-art-dev@sha256:31149e3e5f8c5e5b5b100ff2d89975cf5f7a73801b2c06c639bf6648766117f8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<dns.base.domain.name>
은 DNS 기본 도메인 이름입니다.출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HostedCluster
개체에 설정된 릴리스 이미지는 태그가 아닌 다이제스트를 사용해야 합니다. 예:quay.io/openshift-release-dev/ocp-release@sha256:e3ba11bd1e5e8ea5a0b36a75791c90f29afb0fdbe4125be4e48f69c76a5c47a0
.
YAML 파일에서 정의한 모든 객체를 연결하여 파일로 만들고 관리 클러스터에 적용합니다. 그렇게 하려면 다음 명령을 입력하세요.
oc apply -f 01-4.14-hosted_cluster-nodeport.yaml
$ oc apply -f 01-4.14-hosted_cluster-nodeport.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스팅된 클러스터를 사용할 수 있는 경우 출력은 다음 예와 같습니다.
출력 예
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE clusters hosted-dual hosted-admin-kubeconfig Partial True False The hosted control plane is available
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE clusters hosted-dual hosted-admin-kubeconfig Partial True False The hosted control plane is available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.12.2. 호스팅된 클러스터에 대한 NodePool 객체 생성 링크 복사링크가 클립보드에 복사되었습니다!
NodePool
은 호스팅된 클러스터와 연관된 확장 가능한 작업자 노드 집합입니다. NodePool
머신 아키텍처는 특정 풀 내에서 일관성을 유지하며 제어 평면의 머신 아키텍처와 독립적입니다.
프로세스
NodePool
객체에 대한 다음 정보를 포함하는 YAML 파일을 만들고 필요에 따라 값을 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<hosted_cluster_name>을
호스팅 클러스터로 바꾸세요.- 2
<hosted_cluster_namespace>를
호스팅된 클러스터 네임스페이스의 이름으로 바꾸세요.- 3
- 노드가 제거되면 다시 생성되지 않으므로
autoRepair
필드는false
로 설정됩니다. - 4
upgradeType
이InPlace
로 설정되는데, 이는 업그레이드 중에 동일한 베어 메탈 노드가 재사용됨을 나타냅니다.- 5
- 이
NodePool
에 포함된 모든 노드는 다음 OpenShift Container Platform 버전을 기반으로 합니다:4.xy-x86_64
.<dns.base.domain.name>
값을 DNS 기반 도메인 이름으로 바꾸고4.xy
값을 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꾸세요. - 6
- 호스팅된 클러스터에 두 개의 노드 풀 복제본을 생성하려면
복제본
값을2
로 설정할 수 있습니다.
다음 명령을 입력하여
NodePool
객체를 만듭니다.oc apply -f 02-nodepool.yaml
$ oc apply -f 02-nodepool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters hosted-dual hosted 0 False False 4.x.y-x86_64
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters hosted-dual hosted 0 False False 4.x.y-x86_64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.12.3. 호스팅된 클러스터에 대한 InfraEnv 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
InfraEnv
리소스는 pullSecretRef
및 sshAuthorizedKey
와 같은 필수 세부 정보를 포함하는 지원 서비스 개체입니다. 이러한 세부 정보는 호스팅된 클러스터에 맞게 사용자 정의된 Red Hat Enterprise Linux CoreOS(RHCOS) 부팅 이미지를 만드는 데 사용됩니다.
두 개 이상의 InfraEnv
리소스를 호스팅할 수 있으며, 각 리소스는 특정 유형의 호스트를 채택할 수 있습니다. 예를 들어, RAM 용량이 더 큰 호스트에 서버 팜을 나눌 수 있습니다.
프로세스
InfraEnv
리소스에 대한 다음 정보를 포함하는 YAML 파일을 만들고 필요에 따라 값을 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여
InfraEnv
리소스를 만듭니다.oc apply -f 03-infraenv.yaml
$ oc apply -f 03-infraenv.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME ISO CREATED AT clusters-hosted-dual hosted 2023-09-11T15:14:10Z
NAMESPACE NAME ISO CREATED AT clusters-hosted-dual hosted 2023-09-11T15:14:10Z
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.12.4. 호스팅된 클러스터에 대한 베어 메탈 호스트 생성 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 호스트는 Metal3 운영자가 식별할 수 있도록 물리적, 논리적 세부 정보를 포함하는 오픈시프트 머신 API
객체입니다. 이러한 세부 정보는 에이전트 라고 하는 다른 지원 서비스 개체와 연결됩니다.
사전 요구 사항
- 베어 메탈 호스트와 대상 노드를 만들기 전에 대상 머신을 준비해야 합니다.
- 클러스터에서 사용하기 위해 베어 메탈 인프라에 Red Hat Enterprise Linux CoreOS(RHCOS) 컴퓨팅 머신을 설치했습니다.
프로세스
베어 메탈 호스트를 생성하려면 다음 단계를 완료하세요.
다음 정보를 사용하여 YAML 파일을 만듭니다. 베어 메탈 호스트에 입력해야 할 세부 정보에 대한 자세한 내용은 "BMO를 사용하여 사용자 프로비저닝 클러스터에 새 호스트 프로비저닝"을 참조하세요.
베어 메탈 호스트 자격 증명을 보관하는 비밀이 하나 이상 있으므로 각 작업자 노드에 대해 최소 두 개의 객체를 만들어야 합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<hosted_cluster_name>을
호스팅 클러스터로 바꾸세요.- 2 5
<hosted_cluster_name>을
호스팅 클러스터로 바꾸세요.<hosted_cluster_namespace>를
호스팅된 클러스터 네임스페이스의 이름으로 바꾸세요.- 3
- 베이스보드 관리 컨트롤러(BMC)의 비밀번호를 Base64 형식으로 지정합니다.
- 4
- BMC의 사용자 이름을 Base64 형식으로 지정합니다.
- 6
<hosted_cluster_name>을
호스팅 클러스터로 바꾸세요.infraenvs.agent-install.openshift.io
필드는 Assisted Installer와BareMetalHost
개체 간의 링크 역할을 합니다.- 7
<hosted_cluster_name>을
호스팅 클러스터로 바꾸세요.bmac.agent-install.openshift.io/hostname
필드는 배포 중에 채택되는 노드 이름을 나타냅니다.- 8
automatedCleaningMode
필드는 Metal3 Operator가 노드를 지우는 것을 방지합니다.- 9
disableCertificateVerification
필드는 클라이언트의 인증서 유효성 검사를 우회하기 위해true
로 설정됩니다.- 10
<hosted_cluster_name>을
호스팅 클러스터로 바꾸세요.주소
필드는 작업자 노드의 BMC 주소를 나타냅니다.- 11
<hosted_cluster_name>을
호스팅 클러스터로 바꾸세요.credentialsName
필드는 사용자 및 비밀번호 자격 증명이 저장된 비밀을 가리킵니다.- 12
bootMACAddress
필드는 노드가 시작되는 인터페이스 MAC 주소를 나타냅니다.- 13
온라인
필드는BareMetalHost
개체가 생성된 후 노드의 상태를 정의합니다.
다음 명령을 입력하여
BareMetalHost
객체를 배포합니다.oc apply -f 04-bmh.yaml
$ oc apply -f 04-bmh.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 과정에서 다음과 같은 출력을 볼 수 있습니다.
이 출력은 프로세스가 노드에 도달하려고 시도하고 있음을 나타냅니다.
출력 예
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE clusters-hosted hosted-worker0 registering true 2s clusters-hosted hosted-worker1 registering true 2s clusters-hosted hosted-worker2 registering true 2s
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE clusters-hosted hosted-worker0 registering true 2s clusters-hosted hosted-worker1 registering true 2s clusters-hosted hosted-worker2 registering true 2s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 출력은 노드가 시작되고 있음을 나타냅니다.
출력 예
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE clusters-hosted hosted-worker0 provisioning true 16s clusters-hosted hosted-worker1 provisioning true 16s clusters-hosted hosted-worker2 provisioning true 16s
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE clusters-hosted hosted-worker0 provisioning true 16s clusters-hosted hosted-worker1 provisioning true 16s clusters-hosted hosted-worker2 provisioning true 16s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 출력은 노드가 성공적으로 시작되었음을 나타냅니다.
출력 예
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE clusters-hosted hosted-worker0 provisioned true 67s clusters-hosted hosted-worker1 provisioned true 67s clusters-hosted hosted-worker2 provisioned true 67s
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE clusters-hosted hosted-worker0 provisioned true 67s clusters-hosted hosted-worker1 provisioned true 67s clusters-hosted hosted-worker2 provisioned true 67s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
노드가 시작된 후, 이 예에서 볼 수 있듯이 네임스페이스의 에이전트를 확인하세요.
출력 예
NAMESPACE NAME CLUSTER APPROVED ROLE STAGE clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0411 true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0412 true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0413 true auto-assign
NAMESPACE NAME CLUSTER APPROVED ROLE STAGE clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0411 true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0412 true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0413 true auto-assign
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 에이전트는 설치 가능한 노드를 나타냅니다. 호스팅된 클러스터에 노드를 할당하려면 노드 풀을 확장합니다.
6.3.12.5. 노드 풀 확장 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 호스트를 생성한 후에는 상태가 등록
에서 프로비저닝
, 프로비저닝
됨으로 변경됩니다. 노드는 에이전트의 LiveISO
와 agent
라는 이름의 기본 포드로 시작합니다. 해당 에이전트는 지원 서비스 운영자로부터 OpenShift 컨테이너 플랫폼 페이로드를 설치하라는 지시를 받는 역할을 합니다.
프로세스
노드 풀을 확장하려면 다음 명령을 입력하세요.
oc -n <hosted_cluster_namespace> scale nodepool <hosted_cluster_name> \ --replicas 3
$ oc -n <hosted_cluster_namespace> scale nodepool <hosted_cluster_name> \ --replicas 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
<hosted_cluster_namespace>
는 호스팅된 클러스터 네임스페이스의 이름입니다. -
<hosted_cluster_name>
은 호스팅된 클러스터의 이름입니다.
-
확장 프로세스가 완료되면 에이전트가 호스팅된 클러스터에 할당된 것을 확인할 수 있습니다.
출력 예
NAMESPACE NAME CLUSTER APPROVED ROLE STAGE clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0411 hosted true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0412 hosted true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0413 hosted true auto-assign
NAMESPACE NAME CLUSTER APPROVED ROLE STAGE clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0411 hosted true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0412 hosted true auto-assign clusters-hosted aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0413 hosted true auto-assign
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 노드 풀 복제본이 설정되어 있는지 확인하세요.
출력 예
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters hosted hosted 3 False False <4.x.y>-x86_64 Minimum availability requires 3 replicas, current 0 available
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters hosted hosted 3 False False <4.x.y>-x86_64 Minimum availability requires 3 replicas, current 0 available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <4.xy>를
사용하려는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.- 노드가 클러스터에 가입할 때까지 기다립니다. 이 과정에서 에이전트는 자신의 단계와 상태에 대한 업데이트를 제공합니다.