1.7. 클러스터 라이프사이클 소개
멀티 클러스터 엔진 Operator는 OpenShift Container Platform 및 Red Hat Advanced Cluster Management Hub 클러스터에 대한 클러스터 관리 기능을 제공하는 클러스터 라이프사이클 Operator입니다. 다중 클러스터 엔진 Operator는 클러스터 관리를 개선하고 클라우드 및 데이터 센터 전체에서 OpenShift Container Platform 클러스터 라이프사이클 관리를 지원하는 소프트웨어 운영자입니다. Red Hat Advanced Cluster Management를 사용하거나 사용하지 않고 다중 클러스터 엔진 Operator를 사용할 수 있습니다. Red Hat Advanced Cluster Management는 멀티 클러스터 엔진 Operator도 자동으로 설치하고 추가 다중 클러스터 기능을 제공합니다.
다음 설명서를 참조하십시오.
1.7.1. 클러스터 라이프사이클 아키텍처
클러스터 라이프사이클에는 허브 클러스터와 관리 클러스터의 두 가지 유형이 필요합니다.
hub 클러스터는 다중 클러스터 엔진 Operator가 자동으로 설치된 OpenShift Container Platform (또는 Red Hat Advanced Cluster Management) 기본 클러스터입니다. hub 클러스터를 사용하여 다른 Kubernetes 클러스터를 생성, 관리 및 모니터링할 수 있습니다. hub 클러스터에서 관리할 기존 클러스터를 가져오는 동안 hub 클러스터를 사용하여 클러스터를 생성할 수 있습니다.
관리형 클러스터를 생성할 때 Hive 리소스와 함께 Red Hat OpenShift Container Platform 클러스터 설치 프로그램을 사용하여 클러스터가 생성됩니다. OpenShift Container Platform 설치 프로그램을 사용하여 클러스터 설치 프로세스에 대한 자세한 내용은 OpenShift Container Platform 설명서에서 OpenShift Container Platform 클러스터 설치 및 구성 을 읽고 확인할 수 있습니다.
다음 다이어그램은 클러스터 관리를 위해 Kubernetes Operator용 다중 클러스터 엔진과 함께 설치된 구성 요소를 보여줍니다.
클러스터 라이프사이클 관리 아키텍처의 구성 요소에는 다음 항목이 포함됩니다.
1.7.1.1. hub 클러스터
- 관리 클러스터 가져오기 컨트롤러는 klusterlet Operator를 관리 클러스터에 배포합니다.
- Hive 컨트롤러는 Kubernetes Operator에 다중 클러스터 엔진을 사용하여 생성하는 클러스터를 프로비저닝합니다. Hive 컨트롤러는 Kubernetes Operator를 위해 다중 클러스터 엔진에 의해 생성된 관리형 클러스터도 제거합니다.
- 클러스터 큐레이터 컨트롤러는 관리 클러스터를 생성하거나 업그레이드할 때 클러스터 인프라 환경을 구성하기 위해 pre-hook 또는 post-hook로 Ansible 작업을 생성합니다.
- hub 클러스터에서 관리되는 클러스터 애드온이 활성화되면 허브 클러스터에 해당 애드온 허브 컨트롤러가 배포됩니다. 애드온 허브 컨트롤러는 관리형 클러스터에 애드온 에이전트 를 배포합니다.
1.7.1.2. 관리형 클러스터
- klusterlet Operator 는 관리 클러스터에 등록 및 작업 컨트롤러를 배포합니다.
등록 에이전트 는 관리 클러스터와 관리형 클러스터 애드온을 hub 클러스터에 등록합니다. 또한 등록 에이전트는 관리 클러스터 및 관리 클러스터 애드온의 상태를 유지 관리합니다. 다음 권한은 관리 클러스터가 hub 클러스터에 액세스할 수 있도록 Clusterrole 내에 자동으로 생성됩니다.
- 에이전트가 hub 클러스터에서 관리하는 소유 클러스터를 가져오거나 업데이트할 수 있습니다.
- 에이전트가 hub 클러스터에서 관리하는 소유 클러스터의 상태를 업데이트할 수 있습니다.
- 에이전트가 인증서를 회전하도록 허용
-
에이전트가 reconcile
.k8s.io
리스를얻거나
업데이트
하도록 허용 -
에이전트가 관리 클러스터 애드온을
가져올 수
있도록 허용 - 에이전트가 관리 클러스터 애드온의 상태를 업데이트하도록 허용
- 작업 에이전트 는 Add-on Agent를 관리 클러스터에 적용합니다. 관리 클러스터가 hub 클러스터에 액세스할 수 있도록 허용하는 권한은 Clusterrole 내에서 자동으로 생성되고 에이전트가 hub 클러스터에 이벤트를 보낼 수 있습니다.
클러스터를 계속 추가하고 관리하려면 클러스터 라이프사이클 소개 를 참조하십시오.
1.7.2. 이미지 릴리스
클러스터를 빌드할 때 릴리스 이미지가 지정하는 Red Hat OpenShift Container Platform 버전을 사용하십시오. 기본적으로 OpenShift Container Platform은 clusterImageSets
리소스를 사용하여 지원되는 릴리스 이미지 목록을 가져옵니다.
계속 읽고 릴리스 이미지에 대한 자세한 내용을 확인하십시오.
1.7.2.1. 릴리스 이미지 지정
Kubernetes Operator에 다중 클러스터 엔진을 사용하여 공급자에 클러스터를 생성하는 경우 새 클러스터에 사용할 릴리스 이미지를 지정합니다. 릴리스 이미지를 지정하려면 다음 항목을 참조하십시오.
1.7.2.1.1. ClusterImageSets위치
릴리스 이미지를 참조하는 YAML 파일은 acm-hive-openshift-releases GitHub 리포지토리에서 유지 관리됩니다. 파일은 콘솔에서 사용 가능한 릴리스 이미지 목록을 생성하는 데 사용됩니다. 여기에는 OpenShift Container Platform의 최신 빠른 채널 이미지가 포함됩니다.
콘솔에는 세 가지 최신 버전의 OpenShift Container Platform의 최신 릴리스 이미지만 표시됩니다. 예를 들어 콘솔 옵션에 다음 릴리스 이미지가 표시될 수 있습니다.
quay.io/openshift-release-dev/ocp-release:4.15.1-x86_64
콘솔에 최신 릴리스 이미지로 클러스터를 생성하는 데 도움이 되는 최신 버전이 표시됩니다. 특정 버전의 클러스터를 생성해야 하는 경우 이전 릴리스 이미지 버전도 사용할 수 있습니다.
참고: 콘솔에 클러스터를 생성할 때 표시되는 이미지: 'true'
레이블이 있는 이미지만 선택할 수 있습니다. ClusterImageSet
리소스의 이 레이블의 예는 다음 콘텐츠에 제공됩니다. 4.x.1
을 제품의 현재 버전으로 바꿉니다.
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: fast visible: 'true' name: img4.x.1-x86-64-appsub spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.x.1-x86_64
추가 릴리스 이미지가 저장되지만 콘솔에는 표시되지 않습니다. 사용 가능한 모든 릴리스 이미지를 보려면 다음 명령을 실행합니다.
oc get clusterimageset
리포지토리에는 릴리스 이미지로 작업할 때 사용하는 디렉터리인 clusterImageSets
디렉터리가 있습니다. clusterImageSets
디렉터리에는 다음과 같은 디렉터리가 있습니다.
- fast: 지원되는 각 OpenShift Container Platform 버전에 대한 최신 버전의 릴리스 이미지를 참조하는 파일이 포함되어 있습니다. 이 폴더의 릴리스 이미지는 테스트, 확인 및 지원됩니다.
릴리스: 각 OpenShift Container Platform 버전 (stable, fast, and candidate 채널)의 모든 릴리스 이미지를 참조하는 파일이 포함되어 있습니다.
참고: 이 릴리스는 모두 테스트된 것이 아니며 안정적인 것으로 확인되었습니다.
stable: 지원되는 각 OpenShift Container Platform 버전에 대해 안정적인 최신 버전의 릴리스 이미지를 참조하는 파일이 포함되어 있습니다.
참고: 기본적으로 현재 릴리스 이미지 목록은 시간마다 한 번씩 업데이트됩니다. 제품을 업그레이드한 후 새 버전의 제품에 권장되는 릴리스 이미지 버전을 반영하는 데 최대 1시간이 걸릴 수 있습니다.
1.7.2.1.2. ClusterImageSets구성
다음 옵션을 사용하여 ClusterImageSet
을 구성할 수 있습니다.
옵션 1: 콘솔에서 클러스터를 만들려면 원하는 특정
ClusterImageSet
에 대한 이미지 참조를 지정합니다. 유지를 지정하는 각 새 항목은 향후 모든 클러스터 프로비저닝에 대해 사용할 수 있으며 다음 예제 항목을 참조하십시오.quay.io/openshift-release-dev/ocp-release:4.6.8-x86_64
-
옵션 2:
acm-hive-openshift-releases
GitHub 리포지토리에서ClusterImageSets
YAML 파일을 수동으로 생성하고 적용합니다. -
옵션 3: 분기된 GitHub 리포지토리에서
ClusterImageSets
의 자동 업데이트를 활성화하려면 cluster-image-set-controller GitHub 리포지토리의README.md
를 따릅니다.
1.7.2.1.3. 다른 아키텍처에 클러스터를 배포할 릴리스 이미지 생성
두 아키텍처의 파일이 있는 릴리스 이미지를 수동으로 생성하여 허브 클러스터의 아키텍처와 다른 아키텍처에 클러스터를 생성할 수 있습니다.
예를 들어 ppc64le
,aarch64
또는 s390x
아키텍처에서 실행 중인 hub 클러스터에서 x86_64
클러스터를 생성해야 할 수 있습니다. 두 파일 세트를 모두 사용하여 릴리스 이미지를 생성하는 경우 새 릴리스 이미지를 사용하면 OpenShift Container Platform 릴리스 레지스트리에서 다중 아키텍처 이미지 매니페스트를 제공할 수 있으므로 클러스터 생성이 성공합니다.
OpenShift Container Platform은 기본적으로 여러 아키텍처를 지원합니다. 다음 clusterImageSet
을 사용하여 클러스터를 프로비저닝할 수 있습니다. 4.x.0
을 현재 지원되는 버전으로 교체합니다.
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: fast visible: 'true' name: img4.x.0-multi-appsub spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.x.0-multi
여러 아키텍처를 지원하지 않는 OpenShift Container Platform 이미지의 릴리스 이미지를 생성하려면 아키텍처 유형에 대해 다음 예와 유사한 단계를 완료합니다.
OpenShift Container Platform 릴리스 레지스트리에서
x86_64
,s390x
,aarch64
,ppc64le
릴리스 이미지가 포함된 매니페스트 목록을 생성합니다.다음 예제 명령을 실행하여 Quay 리포지토리에서 두 아키텍처 모두에 대한 매니페스트 목록을 가져옵니다.
4.x.1
을 제품의 현재 버전으로 바꿉니다.podman pull quay.io/openshift-release-dev/ocp-release:4.x.1-x86_64 podman pull quay.io/openshift-release-dev/ocp-release:4.x.1-ppc64le podman pull quay.io/openshift-release-dev/ocp-release:4.x.1-s390x podman pull quay.io/openshift-release-dev/ocp-release:4.x.1-aarch64
다음 명령을 실행하여 이미지를 유지 관리하는 개인 리포지토리에 로그인합니다. &
lt;private-repo
>를 리포지토리 경로로 바꿉니다.podman login <private-repo>
환경에 적용되는 다음 명령을 실행하여 프라이빗 리포지토리에 릴리스 이미지 매니페스트를 추가합니다.
4.x.1
을 제품의 현재 버전으로 바꿉니다. <private-repo
>를 리포지토리 경로로 바꿉니다.podman push quay.io/openshift-release-dev/ocp-release:4.x.1-x86_64 <private-repo>/ocp-release:4.x.1-x86_64 podman push quay.io/openshift-release-dev/ocp-release:4.x.1-ppc64le <private-repo>/ocp-release:4.x.1-ppc64le podman push quay.io/openshift-release-dev/ocp-release:4.x.1-s390x <private-repo>/ocp-release:4.x.1-s390x podman push quay.io/openshift-release-dev/ocp-release:4.x.1-aarch64 <private-repo>/ocp-release:4.x.1-aarch64
다음 명령을 실행하여 새 정보에 대한 매니페스트를 생성합니다.
podman manifest create mymanifest
다음 명령을 실행하여 두 릴리스 이미지에 대한 참조를 매니페스트 목록에 추가합니다.
4.x.1
을 제품의 현재 버전으로 바꿉니다. <private-repo
>를 리포지토리 경로로 바꿉니다.podman manifest add mymanifest <private-repo>/ocp-release:4.x.1-x86_64 podman manifest add mymanifest <private-repo>/ocp-release:4.x.1-ppc64le podman manifest add mymanifest <private-repo>/ocp-release:4.x.1-s390x podman manifest add mymanifest <private-repo>/ocp-release:4.x.1-aarch64
다음 명령을 실행하여 매니페스트 목록의 목록을 기존 매니페스트와 병합합니다. &
lt;private-repo
>를 리포지토리 경로로 바꿉니다.4.x.1
을 현재 버전으로 바꿉니다.podman manifest push mymanifest docker://<private-repo>/ocp-release:4.x.1
허브 클러스터에서 리포지토리의 매니페스트를 참조하는 릴리스 이미지를 생성합니다.
다음 예와 유사한 정보가 포함된 YAML 파일을 생성합니다. &
lt;private-repo
>를 리포지토리 경로로 바꿉니다.4.x.1
을 현재 버전으로 바꿉니다.apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: fast visible: "true" name: img4.x.1-appsub spec: releaseImage: <private-repo>/ocp-release:4.x.1
허브 클러스터에서 다음 명령을 실행하여 변경 사항을 적용합니다. &
lt;file-name
>을 이전 단계에서 생성한 YAML 파일의 이름으로 바꿉니다.oc apply -f <file-name>.yaml
- OpenShift Container Platform 클러스터를 생성할 때 새 릴리스 이미지를 선택합니다.
- Red Hat Advanced Cluster Management 콘솔을 사용하여 관리 클러스터를 배포하는 경우 클러스터 생성 프로세스 중 Architecture 필드에 관리 클러스터의 아키텍처를 지정합니다.
생성 프로세스에서는 병합된 릴리스 이미지를 사용하여 클러스터를 생성합니다.
1.7.2.1.4. 추가 리소스
- 릴리스 이미지를 참조하는 YAML 파일의 acm-hive-openshift-releases GitHub 리포지토리를 참조하십시오.
-
분기된 GitHub 리포지토리에서
ClusterImageSets
리소스의 자동 업데이트를 활성화하는 방법을 알아보려면 cluster-image-set-controller GitHub 리포지토리를 참조하십시오.
1.7.2.2. 연결된 경우 사용자 정의 릴리스 이미지 목록 유지
모든 클러스터에 동일한 릴리스 이미지를 사용해야 할 수 있습니다. 단순화하기 위해 클러스터를 생성할 때 사용할 수 있는 고유한 릴리스 이미지 목록을 생성할 수 있습니다. 사용 가능한 릴리스 이미지를 관리하려면 다음 단계를 완료합니다.
- acm-hive-openshift-releases GitHub 를 분기합니다.
-
클러스터를 생성할 때 사용할 수 있는 이미지의 YAML 파일을 추가합니다. Git 콘솔 또는 터미널을 사용하여 이미지를
./clusterImageSets/stable/
또는./clusterImageSets/fast/
디렉터리에 추가합니다. -
cluster-image-set-git-repo
라는multicluster-engine
네임스페이스에ConfigMap
을 생성합니다. 다음 예제를 참조하지만2.x
를 2.7로 바꿉니다.
apiVersion: v1 kind: ConfigMap metadata: name: cluster-image-set-git-repo namespace: multicluster-engine data: gitRepoUrl: <forked acm-hive-openshift-releases repository URL> gitRepoBranch: backplane-<2.x> gitRepoPath: clusterImageSets channel: <fast or stable>
다음 절차에 따라 분기된 리포지토리에 변경 사항을 병합하여 기본 리포지토리에서 사용 가능한 YAML 파일을 검색할 수 있습니다.
- 분기된 리포지토리에 변경 사항을 커밋하고 병합합니다.
-
acm-hive-openshift-releases
리포지토리를 복제한 후 빠른 릴리스 이미지 목록을 동기화하려면cluster-image-set-git-repo
ConfigMap
의 channel 필드를fast
로 업데이트합니다. -
안정적인 릴리스 이미지를 동기화하고 표시하려면
cluster-image-set-git-repo
ConfigMap
의 channel 필드 값을stable
로 업데이트합니다.
ConfigMap
을 업데이트한 후 사용 가능한 안정적인 릴리스 이미지 목록이 약 1분 내에 현재 사용 가능한 이미지로 업데이트됩니다.
다음 명령을 사용하여 사용 가능한 항목을 나열하고 기본값을 제거할 수 있습니다. &
lt;clusterImageSet_NAME>
;을 올바른 이름으로 바꿉니다.oc get clusterImageSets oc delete clusterImageSet <clusterImageSet_NAME>
클러스터를 생성할 때 콘솔에서 현재 사용 가능한 릴리스 이미지 목록을 확인합니다.
ConfigMap
을 통해 사용할 수 있는 다른 필드에 대한 자세한 내용은 cluster-image-set-controller GitHub 리포지토리 README를 참조하십시오.
1.7.2.3. 연결이 끊긴 동안 사용자 정의 릴리스 이미지 목록 유지 관리
hub 클러스터에 인터넷 연결이 없는 경우 사용자 정의 릴리스 이미지 목록을 유지 관리해야 하는 경우도 있습니다. 클러스터를 생성할 때 사용 가능한 자체 릴리스 이미지 목록을 생성할 수 있습니다. 연결이 끊긴 동안 사용 가능한 릴리스 이미지를 관리하려면 다음 단계를 완료합니다.
- 연결된 시스템에서 acm-hive-openshift-releases GitHub 리포지토리로 이동하여 사용 가능한 클러스터 이미지 세트에 액세스합니다.
-
연결이 끊긴 다중 클러스터 엔진 Operator 클러스터에 액세스할 수 있는 시스템에
clusterImageSets
디렉터리를 복사합니다. 관리 클러스터에 적합한 다음 단계를 완료하여 관리 클러스터와 클러스터 이미지 세트와 연결이 끊긴 리포지토리 간의 매핑을 추가합니다.
-
OpenShift Container Platform 관리형 클러스터의 경우
ImageContentSourcePolicy
개체를 사용하여 매핑을 완료하는 방법에 대한 자세한 내용은 이미지 레지스트리 저장소 미러링 구성 을 참조하십시오. -
OpenShift Container Platform 클러스터가 아닌 관리형 클러스터의 경우
ManageClusterImageRegistry
사용자 정의 리소스 정의를 사용하여 이미지 세트의 위치를 재정의합니다. 매핑에 대한 클러스터를 재정의하는 방법에 대한 정보는 가져오기에서 관리 클러스터에서 레지스트리 이미지 지정을 참조하십시오.
-
OpenShift Container Platform 관리형 클러스터의 경우
-
콘솔 또는 CLI를 사용하여
clusterImageSet
YAML 콘텐츠를 수동으로 추가하여 클러스터를 생성할 때 사용할 수 있는 이미지의 YAML 파일을 추가합니다. 이미지를 저장하는 올바른 오프라인 리포지토리를 참조하도록 나머지 OpenShift Container Platform 릴리스 이미지의
clusterImageSet
YAML 파일을 수정합니다. 업데이트는spec.releaseImage
가 사용 중인 이미지 레지스트리를 참조하는 다음 예제와 유사합니다.apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: fast name: img4.15.8-x86-64-appsub spec: releaseImage: IMAGE_REGISTRY_IPADDRESS_or_DNSNAME/REPO_PATH/ocp-release:4.15.8-x86_64
이미지가 YAML 파일에서 참조되는 오프라인 이미지 레지스트리에 로드되었는지 확인합니다.
참고: Red Hat OpenShift Virtualization의 호스팅 클러스터를 생성하는 경우 OpenShift Container Platform 버전이 콘솔의 릴리스 이미지 드롭다운 목록에
spec.releaseImage
이름을-release
로 종료해야 합니다.각 YAML 파일에 다음 명령을 입력하여 각
clusterImageSets
를 생성합니다.oc create -f <clusterImageSet_FILE>
clusterImageSet_FILE
을 클러스터 이미지 세트 파일의 이름으로 교체합니다. 예를 들면 다음과 같습니다.oc create -f img4.11.9-x86_64.yaml
추가할 각 리소스에 대해 이 명령을 실행하면 사용 가능한 릴리스 이미지 목록을 사용할 수 있습니다.
-
또는 클러스터 콘솔 생성에 이미지 URL을 직접 붙여넣을 수 있습니다. 이미지 URL을 추가하면 새
clusterImageSets
가 없는 경우 생성됩니다. - 클러스터를 생성할 때 콘솔에서 현재 사용 가능한 릴리스 이미지 목록을 확인합니다.
1.7.3. 클러스터 생성
다중 클러스터 엔진 Operator를 사용하여 클라우드 공급자 간에 Red Hat OpenShift Container Platform 클러스터를 생성하는 방법을 알아봅니다.
다중 클러스터 엔진 Operator는 OpenShift Container Platform과 함께 제공되는 Hive Operator를 사용하여 온프레미스 클러스터 및 호스팅 컨트롤 플레인을 제외한 모든 공급자의 클러스터를 프로비저닝합니다. 온프레미스 클러스터를 프로비저닝할 때 다중 클러스터 엔진 Operator는 OpenShift Container Platform과 함께 제공되는 중앙 인프라 관리 및 지원 설치 관리자 기능을 사용합니다. 호스팅된 컨트롤 플레인의 호스트 클러스터는 HyperShift Operator를 사용하여 프로비저닝됩니다.
1.7.3.1. CLI를 사용하여 클러스터 생성
Kubernetes Operator용 멀티 클러스터 엔진은 내부 Hive 구성 요소를 사용하여 Red Hat OpenShift Container Platform 클러스터를 생성합니다. 클러스터 생성 방법을 알아보려면 다음 정보를 참조하십시오.
1.7.3.1.1. 사전 요구 사항
클러스터를 생성하기 전에 clusterImageSets 리포지토리를 복제하여 hub 클러스터에 적용해야 합니다. 다음 단계를 참조하십시오.
다음 명령을 실행하여 복제하지만
2.x
를 2.7로 바꿉니다.git clone https://github.com/stolostron/acm-hive-openshift-releases.git cd acm-hive-openshift-releases git checkout origin/backplane-<2.x>
다음 명령을 실행하여 hub 클러스터에 적용합니다.
find clusterImageSets/fast -type d -exec oc apply -f {} \; 2> /dev/null
클러스터를 생성할 때 Red Hat OpenShift Container Platform 릴리스 이미지를 선택합니다.
참고: Nutanix 플랫폼을 사용하는 경우 ClusterImageSet
리소스의 releaseImage
에 x86_64
아키텍처를 사용하고 표시되는
라벨 값을 'true'
로 설정해야 합니다. 다음 예제를 참조하십시오.
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: stable visible: 'true' name: img4.x.47-x86-64-appsub spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.x.47-x86_64
1.7.3.1.2. ClusterDeployment을 사용하여 클러스터 생성
ClusterDeployment
은 클러스터의 라이프사이클을 제어하는 데 사용되는 Hive 사용자 정의 리소스입니다.
Hive 사용 설명서에 따라 ClusterDeployment
사용자 정의 리소스를 생성하고 개별 클러스터를 생성합니다.
1.7.3.1.3. ClusterPool로 클러스터 생성
ClusterPool
은 여러 클러스터를 생성하는 데 사용되는 Hive 사용자 정의 리소스이기도 합니다.
Cluster Pools 문서에 따라 Hive ClusterPool
API로 클러스터를 생성합니다.
1.7.3.2. 클러스터 생성 중 추가 매니페스트 구성
클러스터를 생성하는 설치 프로세스 중에 추가 Kubernetes 리소스 매니페스트를 구성할 수 있습니다. 이는 네트워킹 구성 또는 로드 밸런서 설정과 같은 시나리오에 대한 추가 매니페스트를 구성해야 하는 경우 도움이 될 수 있습니다.
1.7.3.2.1. 사전 요구 사항
추가 리소스 매니페스트가 포함된 구성 맵 리소스를 지정하는 ClusterDeployment
리소스에 참조를 추가합니다.
참고: ClusterDeployment
리소스 및 구성 맵은 동일한 네임스페이스에 있어야 합니다.
1.7.3.2.2. 예제를 사용하여 클러스터 생성 중 추가 매니페스트 구성
리소스 매니페스트가 있는 구성 맵을 사용하여 추가 매니페스트를 구성하려면 다음 단계를 완료합니다.
YAML 파일을 생성하고 다음 예제 콘텐츠를 추가합니다.
kind: ConfigMap apiVersion: v1 metadata: name: <my-baremetal-cluster-install-manifests> namespace: <mynamespace> data: 99_metal3-config.yaml: | kind: ConfigMap apiVersion: v1 metadata: name: metal3-config namespace: openshift-machine-api data: http_port: "6180" provisioning_interface: "enp1s0" provisioning_ip: "172.00.0.3/24" dhcp_range: "172.00.0.10,172.00.0.100" deploy_kernel_url: "http://172.00.0.3:6180/images/ironic-python-agent.kernel" deploy_ramdisk_url: "http://172.00.0.3:6180/images/ironic-python-agent.initramfs" ironic_endpoint: "http://172.00.0.3:6385/v1/" ironic_inspector_endpoint: "http://172.00.0.3:5150/v1/" cache_url: "http://192.168.111.1/images" rhcos_image_url: "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.3/43.81.201911192044.0/x86_64/rhcos-43.81.201911192044.0-openstack.x86_64.qcow2.gz"
참고: 예제
ConfigMap
에는 다른ConfigMap
리소스가 있는 매니페스트가 포함되어 있습니다. 리소스 매니페스트ConfigMap
은 다음 패턴에 추가된 리소스 구성으로 여러 키를 포함할 수 있습니다. data.<resource_name>\.yaml
.다음 명령을 실행하여 파일을 적용합니다.
oc apply -f <filename>.yaml
리소스 매니페스트
ConfigMap
을 참조하여ClusterDeployment
을 사용하여 추가 매니페스트를 구성하려면 다음 단계를 완료합니다.YAML 파일을 생성하고 다음 예제 콘텐츠를 추가합니다. 리소스 매니페스트
ConfigMap
은spec.provisioning.manifestsConfigMapRef
:에서 참조됩니다.apiVersion: hive.openshift.io/v1 kind: ClusterDeployment metadata: name: <my-baremetal-cluster> namespace: <mynamespace> annotations: hive.openshift.io/try-install-once: "true" spec: baseDomain: test.example.com clusterName: <my-baremetal-cluster> controlPlaneConfig: servingCertificates: {} platform: baremetal: libvirtSSHPrivateKeySecretRef: name: provisioning-host-ssh-private-key provisioning: installConfigSecretRef: name: <my-baremetal-cluster-install-config> sshPrivateKeySecretRef: name: <my-baremetal-hosts-ssh-private-key> manifestsConfigMapRef: name: <my-baremetal-cluster-install-manifests> imageSetRef: name: <my-clusterimageset> sshKnownHosts: - "10.1.8.90 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXvVVVKUYVkuyvkuygkuyTCYTytfkufTYAAAAIbmlzdHAyNTYAAABBBKWjJRzeUVuZs4yxSy4eu45xiANFIIbwE3e1aPzGD58x/NX7Yf+S8eFKq4RrsfSaK2hVJyJjvVIhUsU9z2sBJP8=" pullSecretRef: name: <my-baremetal-cluster-pull-secret>
다음 명령을 실행하여 파일을 적용합니다.
oc apply -f <filename>.yaml
1.7.3.3. Amazon Web Services에서 클러스터 생성
다중 클러스터 엔진 Operator 콘솔을 사용하여 AWS(Amazon Web Services)에서 Red Hat OpenShift Container Platform 클러스터를 생성할 수 있습니다.
클러스터를 생성할 때 생성 프로세스는 OpenShift Container Platform 설치 프로그램을 Hive 리소스와 함께 사용합니다. 이 절차를 완료한 후 클러스터 생성에 대한 질문이 있는 경우 OpenShift Container Platform 설명서에서 AWS에 설치 프로세스를 참조하십시오.
1.7.3.3.1. 사전 요구 사항
AWS에서 클러스터를 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- 배포된 허브 클러스터가 있어야 합니다.
- AWS 인증 정보가 필요합니다. 자세한 내용은 Amazon Web Services의 인증 정보 생성을 참조하십시오.
- AWS에 구성된 도메인이 필요합니다. 도메인 구성 방법에 대한 지침은 AWS 계정 구성을 참조하십시오.
- 사용자 이름, 암호, 액세스 키 ID 및 시크릿 액세스 키가 포함된 AWS(Amazon Web Services) 로그인 인증 정보가 있어야 합니다. 보안 인증 정보 이해 및 가져오기를 참조하십시오.
OpenShift Container Platform 이미지 풀 시크릿이 있어야 합니다. 이미지 풀 시크릿 사용을 참조하십시오.
참고: 클라우드 공급자의 클라우드 공급자 액세스 키를 변경하는 경우 콘솔에서 클라우드 공급자에 대한 해당 인증 정보도 수동으로 업데이트해야 합니다. 이는 관리 클러스터가 호스팅되는 클라우드 공급자에서 인증 정보가 만료되고 관리 클러스터를 삭제하려고 할 때 필요합니다.
1.7.3.3.2. AWS 클러스터 생성
AWS 클러스터 생성에 대한 다음 중요한 정보를 참조하십시오.
-
정보를 검토하고 선택적으로 클러스터를 생성하기 전에 사용자 지정할 때 YAML: On 을 선택하여 패널의
install-config.yaml
파일 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다. - 클러스터를 생성할 때 컨트롤러는 클러스터 및 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다.
- 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
-
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때
cluster-admin
권한이 없는 경우clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. -
지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 클러스터 세트에
clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오. -
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다.
ManagedClusterSet
에 관리 클러스터를 할당하지 않으면기본
관리 클러스터 세트에 자동으로 추가됩니다. - AWS 계정으로 구성한 선택한 인증 정보와 연결된 기본 DNS 도메인이 이미 있는 경우 해당 값이 필드에 채워집니다. 값을 덮어 쓰기하여 변경할 수 있습니다. 이 이름은 클러스터의 호스트 이름에 사용됩니다.
- 릴리스 이미지는 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 사용 가능한 이미지 목록에서 이미지를 선택합니다. 사용하려는 이미지를 사용할 수 없는 경우 사용하려는 이미지의 URL을 입력할 수 있습니다.
노드 풀에는 컨트롤 플레인 풀과 작업자 풀이 포함됩니다. 컨트롤 플레인 노드는 클러스터 활동 관리를 공유합니다. 정보에는 다음 필드가 포함됩니다.
- region: 노드 풀을 원하는 리전을 지정합니다.
- CPU 아키텍처: 관리 클러스터의 아키텍처 유형이 허브 클러스터의 아키텍처와 동일하지 않으면 풀에 있는 시스템의 명령 집합 아키텍처 값을 입력합니다. 유효한 값은 amd64,ppc64le,s390x 및 arm64 입니다.
- zones: 컨트롤 플레인 풀을 실행할 위치를 지정합니다. 더 분산된 컨트롤 플레인 노드 그룹에 대해 리전 내에서 여러 영역을 선택할 수 있습니다. 더 가까운 영역은 더 빠른 성능을 제공할 수 있지만 더 멀리 있는 영역이 더 분산될 수 있습니다.
- 인스턴스 유형: 컨트롤 플레인 노드의 인스턴스 유형을 지정합니다. 인스턴스 유형 및 크기를 생성한 후 변경할 수 있습니다.
- 루트 스토리지: 클러스터에 할당할 루트 스토리지 크기를 지정합니다.
작업자 풀에 0개 이상의 작업자 노드를 생성하여 클러스터의 컨테이너 워크로드를 실행할 수 있습니다. 이는 단일 작업자 풀에 있거나 여러 작업자 풀에 분산될 수 있습니다. 제로 작업자 노드가 지정되면 컨트롤 플레인 노드도 작업자 노드로 작동합니다. 선택적 정보에는 다음 필드가 포함됩니다.
- zones: 작업자 풀을 실행할 위치를 지정합니다. 더 분산된 노드 그룹에 대해 리전 내에서 여러 영역을 선택할 수 있습니다. 더 가까운 영역은 더 빠른 성능을 제공할 수 있지만 더 멀리 있는 영역이 더 분산될 수 있습니다.
- 인스턴스 유형: 작업자 풀의 인스턴스 유형을 지정합니다. 인스턴스 유형 및 크기를 생성한 후 변경할 수 있습니다.
- 노드 수: 작업자 풀의 노드 수를 지정합니다. 이 설정은 작업자 풀을 정의할 때 필요합니다.
- 루트 스토리지: 작업자 풀에 할당된 루트 스토리지의 양을 지정합니다. 이 설정은 작업자 풀을 정의할 때 필요합니다.
- 클러스터에 네트워킹 세부 정보가 필요하며 IPv6를 사용하려면 여러 네트워크가 필요합니다. 네트워크 추가를 클릭하여 추가 네트워크를 추가할 수 있습니다.
인증 정보에 제공된 프록시 정보는 프록시 필드에 자동으로 추가됩니다. 정보를 그대로 사용하거나, 덮어쓰거나 프록시를 활성화하려면 정보를 추가할 수 있습니다. 다음 목록에는 프록시를 생성하는 데 필요한 정보가 포함되어 있습니다.
-
HTTP 프록시:
HTTP
트래픽의 프록시로 사용해야 하는 URL을 지정합니다. -
HTTPS 프록시:
HTTPS
트래픽에 사용해야 하는 보안 프록시 URL을 지정합니다. 값을 제공하지 않으면 HTTP 및HTTPS
모두에HTTP
프록시 URL -
프록시 사이트 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 사이트 목록입니다. 마침표로 도메인 이름을 시작합니다
.
를 해당 도메인에 있는 모든 하위 도메인을 포함합니다. 모든 대상에 대해 프록시를 바이패스하려면 별표*
를 추가합니다. - 추가 신뢰 번들: HTTPS 연결을 프록시하는 데 필요한 하나 이상의 추가 CA 인증서입니다.
-
HTTP 프록시:
1.7.3.3.3. 콘솔을 사용하여 클러스터 생성
새 클러스터를 생성하려면 다음 절차를 참조하십시오. 대신 가져올 기존 클러스터가 있는 경우 클러스터 가져오기 를 참조하십시오.
참고: 클러스터를 가져오기 위해 클러스터 세부 정보가 제공된 oc
명령을 실행할 필요가 없습니다. 클러스터를 생성할 때 다중 클러스터 엔진 Operator 관리 아래에 자동으로 구성됩니다.
- Infrastructure > Clusters 로 이동합니다.
- 클러스터 페이지에서 다음을 수행합니다. 클러스터 > 클러스터 생성 을 클릭하고 콘솔의 단계를 완료합니다.
- 선택 사항: 콘솔에서 정보를 입력할 때 콘텐츠 업데이트를 보려면 YAML 을 선택합니다.
인증 정보를 생성해야 하는 경우 자세한 내용은 Amazon Web Services에 대한 인증 정보 생성 을 참조하십시오.
클러스터 이름은 클러스터의 호스트 이름에 사용됩니다.
Kubernetes용 Red Hat Advanced Cluster Management를 사용하고 관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 필요한 단계를 위해 특정 노드에서 실행되도록 klusterlet 구성 을 참조하십시오.
1.7.3.3.4. 추가 리소스
- AWS 개인 구성 정보는 AWS GovCloud 클러스터를 생성할 때 사용됩니다. 해당 환경에서 클러스터 생성에 대한 정보는 Amazon Web Services GovCloud 에서 클러스터 생성을 참조하십시오.
- 자세한 내용은 AWS 계정 구성을 참조하십시오.
- 릴리스 이미지에 대한 자세한 내용은 릴리스 이미지 릴리스를 참조하십시오.
- AWS General purpose instances 와 같은 클라우드 공급자 사이트를 방문하여 지원되는 즉시 유형에 대한 자세한 내용을 확인하십시오.
1.7.3.4. Amazon Web Services GovCloud에서 클러스터 생성
콘솔을 사용하여 AWS(Amazon Web Services) 또는 AWS GovCloud에 Red Hat OpenShift Container Platform 클러스터를 생성할 수 있습니다. 다음 절차에서는 AWS GovCloud에 클러스터를 생성하는 방법을 설명합니다. AWS 에서 클러스터를 생성하는 방법은 Amazon Web Services 에서 클러스터 생성을 참조하십시오.
AWS GovCloud는 정부 문서를 클라우드에 저장하는 데 필요한 추가 요구 사항을 충족하는 클라우드 서비스를 제공합니다. AWS GovCloud에서 클러스터를 생성할 때 환경을 준비하려면 추가 단계를 완료해야 합니다.
클러스터를 생성할 때 생성 프로세스는 OpenShift Container Platform 설치 프로그램을 Hive 리소스와 함께 사용합니다. 이 절차를 완료한 후 클러스터 생성에 대한 질문이 있는 경우 OpenShift Container Platform 설명서의 정부 리전에 AWS의 클러스터 설치를 참조하십시오. 다음 섹션에서는 AWS GovCloud에 클러스터를 생성하는 단계를 제공합니다.
1.7.3.4.1. 사전 요구 사항
AWS GovCloud 클러스터를 생성하기 전에 다음 사전 요구 사항이 있어야합니다.
- 사용자 이름, 암호, 액세스 키 ID 및 시크릿 액세스 키가 포함된 AWS 로그인 인증 정보가 있어야 합니다. 보안 인증 정보 이해 및 가져오기를 참조하십시오.
- AWS 인증 정보가 필요합니다. 자세한 내용은 Amazon Web Services의 인증 정보 생성을 참조하십시오.
- AWS에 구성된 도메인이 필요합니다. 도메인 구성 방법에 대한 지침은 AWS 계정 구성을 참조하십시오.
- OpenShift Container Platform 이미지 풀 시크릿이 있어야 합니다. 이미지 풀 시크릿 사용을 참조하십시오.
- 허브 클러스터용 기존 Red Hat OpenShift Container Platform 클러스터가 있는 Amazon VPC(Virtual Private Cloud)가 있어야 합니다. 이 VPC는 관리 클러스터 리소스 또는 관리형 클러스터 서비스 엔드 포인트에 사용되는 VPC와 달라야 합니다.
- 관리 클러스터 리소스가 배포되는 VPC가 필요합니다. 허브 클러스터 또는 관리 클러스터 서비스 엔드 포인트에 사용되는 VPC와 같을 수 없습니다.
- 관리 클러스터 서비스 엔드 포인트를 제공하는 VPC가 하나 이상 필요합니다. Hub 클러스터 또는 관리 클러스터 리소스에 사용되는 VPC와 같을 수 없습니다.
- CIDR(Classless Inter-Domain Routing)으로 지정된 VPC의 IP 주소가 겹치지 않는지 확인합니다.
-
Hive 네임스페이스 내에서 인증 정보를 참조하는
HiveConfig
사용자 정의 리소스가 필요합니다. 이 사용자 정의 리소스는 관리형 클러스터 서비스 엔드포인트에 대해 생성한 VPC에 리소스를 생성할 수 있어야 합니다.
참고: 클라우드 공급자의 클라우드 공급자 액세스 키를 변경하는 경우 다중 클러스터 엔진 Operator 콘솔에서 클라우드 공급자에 대한 해당 인증 정보도 수동으로 업데이트해야 합니다. 이는 관리 클러스터가 호스팅되는 클라우드 공급자에서 인증 정보가 만료되고 관리 클러스터를 삭제하려고 할 때 필요합니다.
1.7.3.4.2. AWS GovCloud에 배포하도록 Hive 구성
AWS GovCloud에서 클러스터를 생성하는 것은 표준 AWS에서 클러스터를 생성하는 것과 거의 동일하지만 AWS GovCloud에서 클러스터에 대한 AWS PrivateLink를 준비하기 위해 몇 가지 추가 단계를 완료해야 합니다.
1.7.3.4.2.1. 리소스 및 엔드포인트에 대한 VPC 생성
사전 요구 사항에 나열된 대로 허브 클러스터가 포함된 VPC 외에도 두 개의 VPC가 필요합니다. VPC를 생성하기 위한 특정 단계는 Amazon Web Services 설명서에서 VPC 생성을 참조하십시오.
- 프라이빗 서브넷을 사용하여 관리형 클러스터의 VPC를 생성합니다.
- 프라이빗 서브넷을 사용하여 관리형 클러스터 서비스 엔드 포인트에 대해 VPC를 하나 이상 생성합니다. 리전의 각 VPC에는 255개의 VPC 끝점이 있으므로 해당 리전에서 255개 이상의 클러스터를 지원하려면 여러 VPC가 필요합니다.
각 VPC에 대해 해당 리전의 지원되는 모든 가용성 영역에 서브넷을 생성합니다. 각 서브넷에는 컨트롤러 요구 사항으로 인해 최소 255개의 사용 가능한 IP 주소가 있어야 합니다.
다음 예제에서는
us-gov-east-1
리전에 6개의 가용성 영역이 있는 VPC의 서브넷을 구조화하는 방법을 보여줍니다.vpc-1 (us-gov-east-1) : 10.0.0.0/20 subnet-11 (us-gov-east-1a): 10.0.0.0/23 subnet-12 (us-gov-east-1b): 10.0.2.0/23 subnet-13 (us-gov-east-1c): 10.0.4.0/23 subnet-12 (us-gov-east-1d): 10.0.8.0/23 subnet-12 (us-gov-east-1e): 10.0.10.0/23 subnet-12 (us-gov-east-1f): 10.0.12.0/2
vpc-2 (us-gov-east-1) : 10.0.16.0/20 subnet-21 (us-gov-east-1a): 10.0.16.0/23 subnet-22 (us-gov-east-1b): 10.0.18.0/23 subnet-23 (us-gov-east-1c): 10.0.20.0/23 subnet-24 (us-gov-east-1d): 10.0.22.0/23 subnet-25 (us-gov-east-1e): 10.0.24.0/23 subnet-26 (us-gov-east-1f): 10.0.28.0/23
- 모든 허브 환경(hub 클러스터 VPC)이 피어링, 전송 게이트웨이를 사용하는 VPC 끝점에 대해 생성한 VPC에 대한 네트워크 연결이 있고 모든 DNS 설정이 활성화되어 있는지 확인합니다.
- AWS GovCloud 연결에 필요한 AWS PrivateLink의 DNS 설정을 확인하는 데 필요한 VPC 목록을 수집합니다. 여기에는 최소한 구성 중인 다중 클러스터 엔진 Operator 인스턴스의 VPC가 포함되며, 다양한 Hive 컨트롤러가 존재하는 모든 VPC 목록을 포함할 수 있습니다.
1.7.3.4.2.2. VPC 끝점의 보안 그룹 구성
AWS의 각 VPC 끝점에는 끝점에 대한 액세스를 제어하기 위해 연결된 보안 그룹이 있습니다. Hive는 VPC 끝점을 생성할 때 보안 그룹을 지정하지 않습니다. VPC의 기본 보안 그룹은 VPC 끝점에 연결되어 있습니다. VPC의 기본 보안 그룹에는 Hive 설치 프로그램 Pod에서 VPC 엔드 포인트가 생성되는 트래픽을 허용하기 위한 규칙이 있어야 합니다. 자세한 내용은 AWS 문서의 엔드 포인트 정책을 사용하여 VPC 끝점에 대한 액세스 제어를 참조하십시오.
예를 들어 Hive가 hive-vpc(10.1.0.0/16)
에서 실행되는 경우 VPC의 기본 보안 그룹에는 10.1.0.0/16
에서 수신할 수 있는 VPC 끝점이 생성되는 규칙이 있어야 합니다.
1.7.3.4.2.3. AWS PrivateLink에 대한 권한 설정
AWS PrivateLink를 구성하려면 여러 인증 정보가 필요합니다. 이러한 인증 정보에 필요한 권한은 인증 정보 유형에 따라 다릅니다.
ClusterDeployment의 인증 정보에는 다음 권한이 필요합니다.
ec2:CreateVpcEndpointServiceConfiguration ec2:DescribeVpcEndpointServiceConfigurations ec2:ModifyVpcEndpointServiceConfiguration ec2:DescribeVpcEndpointServicePermissions ec2:ModifyVpcEndpointServicePermissions ec2:DeleteVpcEndpointServiceConfigurations
끝점 VPC 계정
.spec.awsPrivateLink.credentialsSecretRef
에 대한 HiveConfig의 인증 정보에는 다음 권한이 필요합니다.ec2:DescribeVpcEndpointServices ec2:DescribeVpcEndpoints ec2:CreateVpcEndpoint ec2:CreateTags ec2:DescribeNetworkInterfaces ec2:DescribeVPCs ec2:DeleteVpcEndpoints route53:CreateHostedZone route53:GetHostedZone route53:ListHostedZonesByVPC route53:AssociateVPCWithHostedZone route53:DisassociateVPCFromHostedZone route53:CreateVPCAssociationAuthorization route53:DeleteVPCAssociationAuthorization route53:ListResourceRecordSets route53:ChangeResourceRecordSets route53:DeleteHostedZone
VPC를 프라이빗 호스팅 영역(
.spec.awsPrivateLink.associatedVPCs[$idx].credentialsSecretRef
)에 연결하기 위해HiveConfig
사용자 정의 리소스에 지정된 인증 정보입니다. VPC가 있는 계정에는 다음 권한이 필요합니다.route53:AssociateVPCWithHostedZone route53:DisassociateVPCFromHostedZone ec2:DescribeVPCs
hub 클러스터의 Hive 네임스페이스에 인증 정보 시크릿이 있는지 확인합니다.
HiveConfig
사용자 정의 리소스는 제공된 특정 VPC에서 리소스를 생성할 수 있는 권한이 있는 Hive 네임스페이스 내의 인증 정보를 참조해야 합니다. AWS GovCloud에서 AWS 클러스터를 프로비저닝하기 위해 사용 중인 인증 정보가 Hive 네임스페이스에 이미 있는 경우 다른 인증서를 생성할 필요가 없습니다. AWS GovCloud에서 AWS 클러스터를 프로비저닝하기 위해 사용 중인 인증 정보가 Hive 네임스페이스에 없는 경우 현재 인증 정보를 교체하거나 Hive 네임스페이스에서 추가 인증 정보를 생성할 수 있습니다.
HiveConfig
사용자 정의 리소스에는 다음 콘텐츠를 포함해야 합니다.
- 지정된 VPC의 리소스를 프로비저닝하는 데 필요한 권한이 있는 AWS GovCloud 인증 정보입니다.
OpenShift Container Platform 클러스터 설치용 VPC 주소와 관리형 클러스터의 서비스 끝점입니다.
모범 사례: OpenShift Container Platform 클러스터 설치 및 서비스 끝점에 다른 VPC를 사용합니다.
다음 예제에서는 인증 정보 콘텐츠를 보여줍니다.
spec: awsPrivateLink: ## The list of inventory of VPCs that can be used to create VPC ## endpoints by the controller. endpointVPCInventory: - region: us-east-1 vpcID: vpc-1 subnets: - availabilityZone: us-east-1a subnetID: subnet-11 - availabilityZone: us-east-1b subnetID: subnet-12 - availabilityZone: us-east-1c subnetID: subnet-13 - availabilityZone: us-east-1d subnetID: subnet-14 - availabilityZone: us-east-1e subnetID: subnet-15 - availabilityZone: us-east-1f subnetID: subnet-16 - region: us-east-1 vpcID: vpc-2 subnets: - availabilityZone: us-east-1a subnetID: subnet-21 - availabilityZone: us-east-1b subnetID: subnet-22 - availabilityZone: us-east-1c subnetID: subnet-23 - availabilityZone: us-east-1d subnetID: subnet-24 - availabilityZone: us-east-1e subnetID: subnet-25 - availabilityZone: us-east-1f subnetID: subnet-26 ## The credentialsSecretRef points to a secret with permissions to create. ## The resources in the account where the inventory of VPCs exist. credentialsSecretRef: name: <hub-account-credentials-secret-name> ## A list of VPC where various mce clusters exists. associatedVPCs: - region: region-mce1 vpcID: vpc-mce1 credentialsSecretRef: name: <credentials-that-have-access-to-account-where-MCE1-VPC-exists> - region: region-mce2 vpcID: vpc-mce2 credentialsSecretRef: name: <credentials-that-have-access-to-account-where-MCE2-VPC-exists>
AWS PrivateLink가 endpointVPC인벤토리 목록에서 지원되는 모든 리전의 VPC
를 포함할 수 있습니다. 컨트롤러는 ClusterDeployment의 요구 사항을 충족하는 VPC를 선택합니다.
자세한 내용은 Hive 설명서를 참조하십시오.
1.7.3.4.3. 콘솔을 사용하여 클러스터 생성
콘솔에서 클러스터를 생성하려면 Infrastructure > Clusters > Create cluster > Standalone 로 이동하여 콘솔의 단계를 완료합니다.
참고: 이 절차는 클러스터를 생성하기 위한 것입니다. 가져올 기존 클러스터가 있는 경우 해당 단계에 대한 클러스터 가져오기 를 참조하십시오.
선택한 인증 정보는 AWS GovCloud 클러스터를 생성하는 경우 AWS GovCloud 리전의 리소스에 액세스할 수 있어야 합니다. 클러스터를 배포하는 데 필요한 권한이 있는 경우 Hive 네임스페이스에 이미 있는 AWS GovCloud 시크릿을 사용할 수 있습니다. 기존 인증 정보가 콘솔에 표시됩니다. 인증 정보를 생성해야 하는 경우 자세한 내용은 Amazon Web Services에 대한 인증 정보 생성 을 참조하십시오.
클러스터 이름은 클러스터의 호스트 이름에 사용됩니다.
중요: 클러스터를 생성할 때 컨트롤러는 클러스터 및 해당 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
팁: 콘솔에서 정보를 입력할 때 콘텐츠 업데이트를 보려면 YAML 을 선택합니다.
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 클러스터 세트에 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다. ManagedClusterSet
에 관리 클러스터를 할당하지 않으면 기본
관리 클러스터 세트에 자동으로 추가됩니다.
AWS 또는 AWS GovCloud 계정으로 구성한 선택한 인증 정보와 연결된 기본 DNS 도메인이 이미 있는 경우 해당 값이 필드에 채워집니다. 값을 덮어 쓰기하여 변경할 수 있습니다. 이 이름은 클러스터의 호스트 이름에 사용됩니다. 자세한 내용은 AWS 계정 구성을 참조하십시오.
릴리스 이미지는 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 사용하려는 버전을 사용할 수 있는 경우 이미지 목록에서 이미지를 선택할 수 있습니다. 사용하려는 이미지가 표준 이미지가 아닌 경우 사용하려는 이미지의 URL을 입력할 수 있습니다. 릴리스 이미지에 대한 자세한 내용은 릴리스 이미지 릴리스를 참조하십시오.
노드 풀에는 컨트롤 플레인 풀과 작업자 풀이 포함됩니다. 컨트롤 플레인 노드는 클러스터 활동 관리를 공유합니다. 정보에는 다음 필드가 포함됩니다.
-
region: 클러스터 리소스를 생성하는 리전입니다. AWS GovCloud 공급자에 클러스터를 생성하는 경우 노드 풀의 AWS GovCloud 리전을 포함해야 합니다. 예를 들면
us-gov-west-1
입니다. - CPU 아키텍처: 관리 클러스터의 아키텍처 유형이 허브 클러스터의 아키텍처와 동일하지 않으면 풀에 있는 시스템의 명령 집합 아키텍처 값을 입력합니다. 유효한 값은 amd64,ppc64le,s390x 및 arm64 입니다.
- zones: 컨트롤 플레인 풀을 실행할 위치를 지정합니다. 더 분산된 컨트롤 플레인 노드 그룹에 대해 리전 내에서 여러 영역을 선택할 수 있습니다. 더 가까운 영역은 더 빠른 성능을 제공할 수 있지만 더 멀리 있는 영역이 더 분산될 수 있습니다.
- 인스턴스 유형: 이전에 지정한 CPU 아키텍처와 동일해야 하는 컨트롤 플레인 노드의 인스턴스 유형을 지정합니다. 인스턴스 유형 및 크기를 생성한 후 변경할 수 있습니다.
- 루트 스토리지: 클러스터에 할당할 루트 스토리지 크기를 지정합니다.
작업자 풀에 0개 이상의 작업자 노드를 생성하여 클러스터의 컨테이너 워크로드를 실행할 수 있습니다. 단일 작업자 풀에 있거나 여러 작업자 풀에 배포할 수 있습니다. 제로 작업자 노드가 지정되면 컨트롤 플레인 노드도 작업자 노드로 작동합니다. 선택적 정보에는 다음 필드가 포함됩니다.
- 풀 이름: 풀에 고유한 이름을 제공합니다.
- zones: 작업자 풀을 실행할 위치를 지정합니다. 더 분산된 노드 그룹에 대해 리전 내에서 여러 영역을 선택할 수 있습니다. 더 가까운 영역은 더 빠른 성능을 제공할 수 있지만 더 멀리 있는 영역이 더 분산될 수 있습니다.
- 인스턴스 유형: 작업자 풀의 인스턴스 유형을 지정합니다. 인스턴스 유형 및 크기를 생성한 후 변경할 수 있습니다.
- 노드 수: 작업자 풀의 노드 수를 지정합니다. 이 설정은 작업자 풀을 정의할 때 필요합니다.
- 루트 스토리지: 작업자 풀에 할당된 루트 스토리지의 양을 지정합니다. 이 설정은 작업자 풀을 정의할 때 필요합니다.
클러스터에 네트워킹 세부 정보가 필요하며 IPv6를 사용하려면 여러 네트워크가 필요합니다. AWS GovCloud 클러스터의 경우 Machine CIDR 필드에 Hive VPC의 주소 블록 값을 입력합니다. 네트워크 추가를 클릭하여 추가 네트워크를 추가할 수 있습니다.
인증 정보에 제공된 프록시 정보는 프록시 필드에 자동으로 추가됩니다. 정보를 그대로 사용하거나, 덮어쓰거나 프록시를 활성화하려면 정보를 추가할 수 있습니다. 다음 목록에는 프록시를 생성하는 데 필요한 정보가 포함되어 있습니다.
-
HTTP 프록시 URL:
HTTP
트래픽의 프록시로 사용해야 하는 URL을 지정합니다. -
HTTPS 프록시 URL:
HTTPS
트래픽에 사용해야 하는 보안 프록시 URL을 지정합니다. 값을 제공하지 않으면 HTTP 및HTTPS
모두에HTTP
프록시 URL -
프록시 도메인 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 도메인 목록입니다. 마침표로 도메인 이름을 시작합니다
.
를 해당 도메인에 있는 모든 하위 도메인을 포함합니다. 모든 대상에 대해 프록시를 바이패스하려면 별표*
를 추가합니다. - 추가 신뢰 번들: HTTPS 연결을 프록시하는 데 필요한 하나 이상의 추가 CA 인증서입니다.
AWS GovCloud 클러스터를 생성하거나 프라이빗 환경을 사용하는 경우 AMI ID 및 서브넷 값을 사용하여 AWS 개인 구성 페이지의 필드를 완료합니다. ClusterDeployment.yaml
파일에서 spec:platform:aws:privateLink:enabled
값이 true
로 설정되어 있는지 확인합니다. 이 값은 개인 구성 사용을 선택할 때 자동으로 설정됩니다.
정보를 검토하고 선택적으로 클러스터를 생성하기 전에 사용자 지정할 때 YAML: On 을 선택하여 패널의 install-config.yaml
파일 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다.
참고: 클러스터를 가져오기 위해 클러스터 세부 정보가 제공된 oc
명령을 실행할 필요가 없습니다. 클러스터를 생성할 때 Kubernetes 운영자를 위한 다중 클러스터 엔진 관리 아래에 자동으로 구성됩니다.
Kubernetes용 Red Hat Advanced Cluster Management를 사용하고 관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 필요한 단계를 위해 특정 노드에서 실행되도록 klusterlet 구성 을 참조하십시오.
클러스터에 액세스하는 방법에 대한 지침은 클러스터 액세스를 계속합니다.
1.7.3.5. Microsoft Azure에 클러스터 생성
다중 클러스터 엔진 Operator 콘솔을 사용하여 Microsoft Azure 또는 Microsoft Azure Government에 Red Hat OpenShift Container Platform 클러스터를 배포할 수 있습니다.
클러스터를 생성할 때 생성 프로세스는 OpenShift Container Platform 설치 프로그램을 Hive 리소스와 함께 사용합니다. 이 절차를 완료한 후 클러스터 생성에 대한 질문이 있는 경우 OpenShift Container Platform 설명서의 Azure에 프로세스에 대한 자세한 내용은 설치를 참조하십시오.
1.7.3.5.1. 사전 요구 사항
Azure에서 클러스터를 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- 배포된 허브 클러스터가 있어야 합니다.
- Azure 인증 정보가 필요합니다. 자세한 내용은 Microsoft Azure에 대한 인증 정보 생성 을 참조하십시오.
- Azure 또는 Azure Government에 구성된 도메인이 필요합니다. 도메인 구성 방법에 대한 지침은 Azure 클라우드 서비스의 사용자 정의 도메인 이름 구성을 참조하십시오.
- 사용자 이름과 암호를 포함하는 Azure 로그인 인증 정보가 필요합니다. Microsoft Azure Portal 을 참조하십시오.
-
clientId
,clientSecret
,tenantId
를 포함하는 Azure 서비스 주체가 필요합니다. azure.microsoft.com 을 참조하십시오. - OpenShift Container Platform 이미지 풀 시크릿이 필요합니다. 이미지 풀 시크릿 사용을 참조하십시오.
참고: 클라우드 공급자의 클라우드 공급자 액세스 키를 변경하는 경우 다중 클러스터 엔진 Operator 콘솔에서 클라우드 공급자에 대한 해당 인증 정보도 수동으로 업데이트해야 합니다. 이는 관리 클러스터가 호스팅되는 클라우드 공급자에서 인증 정보가 만료되고 관리 클러스터를 삭제하려고 할 때 필요합니다.
1.7.3.5.2. 콘솔을 사용하여 클러스터 생성
다중 클러스터 엔진 Operator 콘솔에서 클러스터를 생성하려면 Infrastructure > Clusters 로 이동합니다. 클러스터 페이지에서 클러스터 생성 을 클릭하고 콘솔의 단계를 완료합니다.
참고: 이 절차는 클러스터를 생성하기 위한 것입니다. 가져올 기존 클러스터가 있는 경우 해당 단계에 대한 클러스터 가져오기 를 참조하십시오.
인증 정보를 생성해야 하는 경우 자세한 내용은 Microsoft Azure에 대한 인증 정보 생성 을 참조하십시오.
클러스터 이름은 클러스터의 호스트 이름에 사용됩니다.
중요: 클러스터를 생성할 때 컨트롤러는 클러스터 및 해당 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
팁: 콘솔에서 정보를 입력할 때 콘텐츠 업데이트를 보려면 YAML 을 선택합니다.
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 클러스터 세트에 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다. ManagedClusterSet
에 관리 클러스터를 할당하지 않으면 기본
관리 클러스터 세트에 자동으로 추가됩니다.
Azure 계정에 대해 구성한 선택한 인증 정보와 연결된 기본 DNS 도메인이 이미 있는 경우 해당 값이 해당 필드에 채워집니다. 값을 덮어 쓰기하여 변경할 수 있습니다. 자세한 내용은 Azure 클라우드 서비스의 사용자 정의 도메인 이름 구성 을 참조하십시오. 이 이름은 클러스터의 호스트 이름에 사용됩니다.
릴리스 이미지는 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 사용하려는 버전을 사용할 수 있는 경우 이미지 목록에서 이미지를 선택할 수 있습니다. 사용하려는 이미지가 표준 이미지가 아닌 경우 사용하려는 이미지의 URL을 입력할 수 있습니다. 릴리스 이미지에 대한 자세한 내용은 릴리스 이미지 릴리스를 참조하십시오.
노드 풀에는 컨트롤 플레인 풀과 작업자 풀이 포함됩니다. 컨트롤 플레인 노드는 클러스터 활동 관리를 공유합니다. 정보에는 다음과 같은 선택적 필드가 포함됩니다.
- region: 노드 풀을 실행할 리전을 지정합니다. 더 분산된 컨트롤 플레인 노드 그룹에 대해 리전 내에서 여러 영역을 선택할 수 있습니다. 더 가까운 영역은 더 빠른 성능을 제공할 수 있지만 더 멀리 있는 영역이 더 분산될 수 있습니다.
- CPU 아키텍처: 관리 클러스터의 아키텍처 유형이 허브 클러스터의 아키텍처와 동일하지 않으면 풀에 있는 시스템의 명령 집합 아키텍처 값을 입력합니다. 유효한 값은 amd64,ppc64le,s390x 및 arm64 입니다.
클러스터를 생성한 후 컨트롤 플레인 풀의 인스턴스 유형 및 크기 및 루트 스토리지 할당(필수)을 변경할 수 있습니다.
작업자 풀에서 하나 이상의 작업자 노드를 생성하여 클러스터의 컨테이너 워크로드를 실행할 수 있습니다. 단일 작업자 풀에 있거나 여러 작업자 풀에 배포할 수 있습니다. 제로 작업자 노드가 지정되면 컨트롤 플레인 노드도 작업자 노드로 작동합니다. 정보에는 다음 필드가 포함됩니다.
- zones: 작업자 풀을 실행할 위치를 지정합니다. 더 분산된 노드 그룹에 대해 리전 내에서 여러 영역을 선택할 수 있습니다. 더 가까운 영역은 더 빠른 성능을 제공할 수 있지만 더 멀리 있는 영역이 더 분산될 수 있습니다.
- 인스턴스 유형: 인스턴스 유형을 만든 후 인스턴스의 유형과 크기를 변경할 수 있습니다.
네트워크 추가를 클릭하여 추가 네트워크를 추가할 수 있습니다. IPv6 주소를 사용하는 경우 두 개 이상의 네트워크가 있어야 합니다.
인증 정보에 제공된 프록시 정보는 프록시 필드에 자동으로 추가됩니다. 정보를 그대로 사용하거나, 덮어쓰거나 프록시를 활성화하려면 정보를 추가할 수 있습니다. 다음 목록에는 프록시를 생성하는 데 필요한 정보가 포함되어 있습니다.
-
HTTP 프록시:
HTTP
트래픽의 프록시로 사용해야 하는 URL입니다. -
HTTPS 프록시:
HTTPS
트래픽에 사용해야 하는 보안 프록시 URL입니다. 값을 제공하지 않으면 HTTP 및HTTPS
모두에HTTP
프록시 URL -
프록시 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 도메인 목록입니다. 마침표로 도메인 이름을 시작합니다
.
를 해당 도메인에 있는 모든 하위 도메인을 포함합니다. 모든 대상에 대해 프록시를 바이패스하려면 별표*
를 추가합니다. - 추가 신뢰 번들: HTTPS 연결을 프록시하는 데 필요한 하나 이상의 추가 CA 인증서입니다.
정보를 검토하고 선택적으로 클러스터를 생성하기 전에 사용자 지정할 때 YAML 스위치를 클릭하여 패널의 install-config.yaml
파일 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다.
Kubernetes용 Red Hat Advanced Cluster Management를 사용하고 관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 필요한 단계를 위해 특정 노드에서 실행되도록 klusterlet 구성 을 참조하십시오.
참고: 클러스터를 가져오기 위해 클러스터 세부 정보가 제공된 oc
명령을 실행할 필요가 없습니다. 클러스터를 생성할 때 다중 클러스터 엔진 Operator 관리 아래에 자동으로 구성됩니다.
클러스터에 액세스하는 방법에 대한 지침은 클러스터 액세스를 계속합니다.
1.7.3.6. Google Cloud Platform에서 클러스터 생성
GCP(Google Cloud Platform)에 Red Hat OpenShift Container Platform 클러스터를 생성하려면 절차를 따르십시오. GCP에 대한 자세한 내용은 Google Cloud Platform 을 참조하십시오.
클러스터를 생성할 때 생성 프로세스는 OpenShift Container Platform 설치 프로그램을 Hive 리소스와 함께 사용합니다. 이 절차를 완료한 후 클러스터 생성에 대한 질문이 있는 경우 OpenShift Container Platform 설명서의 GCP에 프로세스에 대한 자세한 내용은 설치를 참조하십시오.
1.7.3.6.1. 사전 요구 사항
GCP에서 클러스터를 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- 배포된 허브 클러스터가 있어야 합니다.
- GCP 인증 정보가 있어야 합니다. 자세한 내용은 Google Cloud Platform의 인증 정보 생성을 참조하십시오.
- GCP에 구성된 도메인이 있어야 합니다. 도메인 구성 방법에 대한 지침은 사용자 정의 도메인 설정을 참조하십시오.
- 사용자 이름과 암호가 포함된 GCP 로그인 인증 정보가 필요합니다.
- OpenShift Container Platform 이미지 풀 시크릿이 있어야 합니다. 이미지 풀 시크릿 사용을 참조하십시오.
참고: 클라우드 공급자의 클라우드 공급자 액세스 키를 변경하는 경우 다중 클러스터 엔진 Operator 콘솔에서 클라우드 공급자에 대한 해당 인증 정보도 수동으로 업데이트해야 합니다. 이는 관리 클러스터가 호스팅되는 클라우드 공급자에서 인증 정보가 만료되고 관리 클러스터를 삭제하려고 할 때 필요합니다.
1.7.3.6.2. 콘솔을 사용하여 클러스터 생성
다중 클러스터 엔진 Operator 콘솔에서 클러스터를 생성하려면 Infrastructure > Clusters 로 이동합니다. 클러스터 페이지에서 클러스터 생성 을 클릭하고 콘솔의 단계를 완료합니다.
참고: 이 절차는 클러스터를 생성하기 위한 것입니다. 가져올 기존 클러스터가 있는 경우 해당 단계에 대한 클러스터 가져오기 를 참조하십시오.
인증 정보를 생성해야 하는 경우 자세한 내용은 Google Cloud Platform의 인증 정보 생성 을 참조하십시오.
클러스터 이름은 클러스터의 호스트 이름에 사용됩니다. GCP 클러스터 이름 지정에 적용되는 몇 가지 제한 사항이 있습니다. 이러한 제한에는 goog
로 이름을 시작하거나 이름에 Google
과 유사한 문자 및 숫자 그룹이 포함되어 있지 않습니다. 전체 제한 목록은 버킷 이름 지정 지침을 참조하십시오.
중요: 클러스터를 생성할 때 컨트롤러는 클러스터 및 해당 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
팁: 콘솔에서 정보를 입력할 때 콘텐츠 업데이트를 보려면 YAML 을 선택합니다.
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 클러스터 세트에 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다. ManagedClusterSet
에 관리 클러스터를 할당하지 않으면 기본
관리 클러스터 세트에 자동으로 추가됩니다.
GCP 계정에 대해 선택한 인증 정보와 연결된 기본 DNS 도메인이 이미 있는 경우 해당 값이 필드에 채워집니다. 값을 덮어 쓰기하여 변경할 수 있습니다. 자세한 내용은 사용자 정의 도메인 설정을 참조하십시오. 이 이름은 클러스터의 호스트 이름에 사용됩니다.
릴리스 이미지는 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 사용하려는 버전을 사용할 수 있는 경우 이미지 목록에서 이미지를 선택할 수 있습니다. 사용하려는 이미지가 표준 이미지가 아닌 경우 사용하려는 이미지의 URL을 입력할 수 있습니다. 릴리스 이미지에 대한 자세한 내용은 릴리스 이미지 릴리스를 참조하십시오.
노드 풀에는 컨트롤 플레인 풀과 작업자 풀이 포함됩니다. 컨트롤 플레인 노드는 클러스터 활동 관리를 공유합니다. 정보에는 다음 필드가 포함됩니다.
- region: 컨트롤 플레인 풀을 실행할 리전을 지정합니다. 가까운 리전은 더 빠른 성능을 제공할 수 있지만 더 멀리 있는 영역이 더 분산될 수 있습니다.
- CPU 아키텍처: 관리 클러스터의 아키텍처 유형이 허브 클러스터의 아키텍처와 동일하지 않으면 풀에 있는 시스템의 명령 집합 아키텍처 값을 입력합니다. 유효한 값은 amd64,ppc64le,s390x 및 arm64 입니다.
컨트롤 플레인 풀의 인스턴스 유형을 지정할 수 있습니다. 인스턴스 유형 및 크기를 생성한 후 변경할 수 있습니다.
작업자 풀에서 하나 이상의 작업자 노드를 생성하여 클러스터의 컨테이너 워크로드를 실행할 수 있습니다. 단일 작업자 풀에 있거나 여러 작업자 풀에 배포할 수 있습니다. 제로 작업자 노드가 지정되면 컨트롤 플레인 노드도 작업자 노드로 작동합니다. 정보에는 다음 필드가 포함됩니다.
- 인스턴스 유형: 인스턴스 유형을 만든 후 인스턴스의 유형과 크기를 변경할 수 있습니다.
- 노드 수: 이 설정은 작업자 풀을 정의할 때 필요합니다.
네트워킹 세부 정보가 필요하며 IPv6 주소를 사용하려면 여러 네트워크가 필요합니다. 네트워크 추가를 클릭하여 추가 네트워크를 추가할 수 있습니다.
인증 정보에 제공된 프록시 정보는 프록시 필드에 자동으로 추가됩니다. 정보를 그대로 사용하거나, 덮어쓰거나 프록시를 활성화하려면 정보를 추가할 수 있습니다. 다음 목록에는 프록시를 생성하는 데 필요한 정보가 포함되어 있습니다.
-
HTTP 프록시:
HTTP
트래픽의 프록시로 사용해야 하는 URL입니다. -
HTTPS 프록시:
HTTPS
트래픽에 사용해야 하는 보안 프록시 URL입니다. 값을 제공하지 않으면 HTTP 및HTTPS
모두에HTTP
프록시 URL -
프록시 사이트 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 사이트 목록입니다. 마침표로 도메인 이름을 시작합니다
.
를 해당 도메인에 있는 모든 하위 도메인을 포함합니다. 모든 대상에 대해 프록시를 바이패스하려면 별표*
를 추가합니다. - 추가 신뢰 번들: HTTPS 연결을 프록시하는 데 필요한 하나 이상의 추가 CA 인증서입니다.
정보를 검토하고 선택적으로 클러스터를 생성하기 전에 사용자 지정할 때 YAML: On 을 선택하여 패널의 install-config.yaml
파일 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다.
Kubernetes용 Red Hat Advanced Cluster Management를 사용하고 관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 필요한 단계를 위해 특정 노드에서 실행되도록 klusterlet 구성 을 참조하십시오.
참고: 클러스터를 가져오기 위해 클러스터 세부 정보가 제공된 oc
명령을 실행할 필요가 없습니다. 클러스터를 생성할 때 다중 클러스터 엔진 Operator 관리 아래에 자동으로 구성됩니다.
클러스터에 액세스하는 방법에 대한 지침은 클러스터 액세스를 계속합니다.
1.7.3.7. VMware vSphere에서 클러스터 생성
다중 클러스터 엔진 Operator 콘솔을 사용하여 VMware vSphere에 Red Hat OpenShift Container Platform 클러스터를 배포할 수 있습니다.
클러스터를 생성할 때 생성 프로세스는 OpenShift Container Platform 설치 프로그램을 Hive 리소스와 함께 사용합니다. 이 절차를 완료한 후 클러스터 생성에 대한 질문이 있는 경우 OpenShift Container Platform 설명서의 vSphere에 프로세스에 대한 자세한 내용은 설치를 참조하십시오.
1.7.3.7.1. 사전 요구 사항
vSphere에서 클러스터를 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- 지원되는 OpenShift Container Platform 버전에 배포된 허브 클러스터가 있어야 합니다.
- vSphere 인증 정보가 필요합니다. 자세한 내용은 VMware vSphere의 인증 정보 생성 을 참조하십시오.
- OpenShift Container Platform 이미지 풀 시크릿이 필요합니다. 이미지 풀 시크릿 사용을 참조하십시오.
배포 중인 VMware 인스턴스에 대한 다음 정보가 있어야 합니다.
- API 및 Ingress 인스턴스에 필요한 고정 IP 주소
DNS 레코드:
다음 API 기본 도메인은 정적 API VIP를 가리켜야 합니다.
api.<cluster_name>.<base_domain>
다음 애플리케이션 기본 도메인은 Ingress VIP의 고정 IP 주소를 가리켜야 합니다.
*.apps.<cluster_name>.<base_domain>
1.7.3.7.2. 콘솔을 사용하여 클러스터 생성
다중 클러스터 엔진 Operator 콘솔에서 클러스터를 생성하려면 Infrastructure > Clusters 로 이동합니다. 클러스터 페이지에서 클러스터 생성 을 클릭하고 콘솔의 단계를 완료합니다.
참고: 이 절차는 클러스터를 생성하기 위한 것입니다. 가져올 기존 클러스터가 있는 경우 해당 단계에 대한 클러스터 가져오기 를 참조하십시오.
인증 정보를 생성해야 하는 경우 인증 정보 생성에 대한 자세한 내용은 VMware vSphere의 인증 정보 생성 을 참조하십시오.
클러스터 이름은 클러스터의 호스트 이름에 사용됩니다.
중요: 클러스터를 생성할 때 컨트롤러는 클러스터 및 해당 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
팁: 콘솔에서 정보를 입력할 때 콘텐츠 업데이트를 보려면 YAML 을 선택합니다.
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 클러스터 세트에 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다. ManagedClusterSet
에 관리 클러스터를 할당하지 않으면 기본
관리 클러스터 세트에 자동으로 추가됩니다.
vSphere 계정에 대해 구성한 선택한 인증 정보와 연결된 기본 도메인이 이미 있는 경우 해당 값이 필드에 채워집니다. 값을 덮어 쓰기하여 변경할 수 있습니다. 자세한 내용은 사용자 지정으로 vSphere에 클러스터 설치를 참조하십시오. 이 값은 사전 요구 사항 섹션에 나열된 DNS 레코드를 생성하는 데 사용한 이름과 일치해야 합니다. 이 이름은 클러스터의 호스트 이름에 사용됩니다.
릴리스 이미지는 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 사용하려는 버전을 사용할 수 있는 경우 이미지 목록에서 이미지를 선택할 수 있습니다. 사용하려는 이미지가 표준 이미지가 아닌 경우 사용하려는 이미지의 URL을 입력할 수 있습니다. 릴리스 이미지에 대한 자세한 내용은 릴리스 이미지 릴리스를 참조하십시오.
참고: OpenShift Container Platform 버전 4.15 이상 버전의 릴리스 이미지가 지원됩니다.
노드 풀에는 컨트롤 플레인 풀과 작업자 풀이 포함됩니다. 컨트롤 플레인 노드는 클러스터 활동 관리를 공유합니다. 정보에는 CPU 아키텍처 필드가 포함됩니다. 다음 필드 설명을 표시합니다.
- CPU 아키텍처: 관리 클러스터의 아키텍처 유형이 허브 클러스터의 아키텍처와 동일하지 않으면 풀에 있는 시스템의 명령 집합 아키텍처 값을 입력합니다. 유효한 값은 amd64,ppc64le,s390x 및 arm64 입니다.
작업자 풀에서 하나 이상의 작업자 노드를 생성하여 클러스터의 컨테이너 워크로드를 실행할 수 있습니다. 단일 작업자 풀에 있거나 여러 작업자 풀에 배포할 수 있습니다. 제로 작업자 노드가 지정되면 컨트롤 플레인 노드도 작업자 노드로 작동합니다. 정보에는 소켓당 코어,CPU,Memory_min MiB, _Disk 크기 (GiB) 및 노드 수가 포함됩니다.
네트워킹 정보가 필요합니다. IPv6를 사용하려면 여러 네트워크가 필요합니다. 필수 네트워킹 정보 중 일부는 다음 필드를 포함합니다.
- vSphere 네트워크 이름: VMware vSphere 네트워크 이름을 지정합니다.
API VIP: 내부 API 통신에 사용할 IP 주소를 지정합니다.
참고: 이 값은 사전 요구 사항 섹션에 나열된 DNS 레코드를 생성하는 데 사용한 이름과 일치해야 합니다. 제공되지 않는 경우
api.
가 올바르게 확인되도록 DNS를 사전 구성해야 합니다.Ingress VIP: 인그레스 트래픽에 사용할 IP 주소를 지정합니다.
참고: 이 값은 사전 요구 사항 섹션에 나열된 DNS 레코드를 생성하는 데 사용한 이름과 일치해야 합니다. 제공되지 않는 경우
test.apps.
가 올바르게 확인되도록 DNS를 사전 구성해야 합니다.
네트워크 추가를 클릭하여 추가 네트워크를 추가할 수 있습니다. IPv6 주소를 사용하는 경우 두 개 이상의 네트워크가 있어야 합니다.
인증 정보에 제공된 프록시 정보는 프록시 필드에 자동으로 추가됩니다. 정보를 그대로 사용하거나, 덮어쓰거나 프록시를 활성화하려면 정보를 추가할 수 있습니다. 다음 목록에는 프록시를 생성하는 데 필요한 정보가 포함되어 있습니다.
-
HTTP 프록시:
HTTP
트래픽의 프록시로 사용해야 하는 URL을 지정합니다. -
HTTPS 프록시:
HTTPS
트래픽에 사용해야 하는 보안 프록시 URL을 지정합니다. 값을 제공하지 않으면 HTTP 및HTTPS
모두에HTTP
프록시 URL -
프록시 사이트 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 사이트 목록을 제공합니다. 마침표로 도메인 이름을 시작합니다
.
를 해당 도메인에 있는 모든 하위 도메인을 포함합니다. 모든 대상에 대해 프록시를 바이패스하려면 별표*
를 추가합니다. - 추가 신뢰 번들: HTTPS 연결을 프록시하는 데 필요한 하나 이상의 추가 CA 인증서입니다.
연결 해제된 설치를 클릭하여 연결 해제된 설치 이미지를 정의할 수 있습니다. Red Hat OpenStack Platform 공급자 및 연결이 끊긴 설치를 사용하여 클러스터를 생성할 때 인증서가 미러 레지스트리에 액세스해야 하는 경우, 클러스터를 생성할 때 연결 해제된 설치 구성 섹션의 추가 신뢰 번들 필드에 입력해야 합니다.
자동화 템플릿 추가를 클릭하여 템플릿을 생성할 수 있습니다.
정보를 검토하고 선택적으로 클러스터를 생성하기 전에 사용자 지정할 때 YAML 스위치를 클릭하여 패널의 install-config.yaml
파일 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다.
Kubernetes용 Red Hat Advanced Cluster Management를 사용하고 관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 필요한 단계를 위해 특정 노드에서 실행되도록 klusterlet 구성 을 참조하십시오.
참고: 클러스터를 가져오기 위해 클러스터 세부 정보가 제공된 oc
명령을 실행할 필요가 없습니다. 클러스터를 생성할 때 다중 클러스터 엔진 Operator 관리 아래에 자동으로 구성됩니다.
클러스터에 액세스하는 방법에 대한 지침은 클러스터 액세스를 계속합니다.
1.7.3.8. Red Hat OpenStack Platform에서 클러스터 생성
다중 클러스터 엔진 Operator 콘솔을 사용하여 Red Hat OpenStack Platform에 Red Hat OpenShift Container Platform 클러스터를 배포할 수 있습니다.
클러스터를 생성할 때 생성 프로세스는 OpenShift Container Platform 설치 프로그램을 Hive 리소스와 함께 사용합니다. 이 절차를 완료한 후 클러스터 생성에 대한 질문이 있는 경우 OpenShift Container Platform 설명서의 OpenStack에 프로세스에 대한 자세한 내용은 설치를 참조하십시오.
1.7.3.8.1. 사전 요구 사항
Red Hat OpenStack Platform에서 클러스터를 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- OpenShift Container Platform 버전 4.6 이상에 배포된 허브 클러스터가 있어야 합니다.
- Red Hat OpenStack Platform 인증 정보가 있어야 합니다. 자세한 내용은 Red Hat OpenStack Platform의 인증 정보 생성을 참조하십시오.
- OpenShift Container Platform 이미지 풀 시크릿이 필요합니다. 이미지 풀 시크릿 사용을 참조하십시오.
배포 중인 Red Hat OpenStack Platform 인스턴스에 대한 다음 정보가 필요합니다.
-
컨트롤 플레인 및 작업자 인스턴스의 플레이버 이름(예:
m1.xlarge
) - 유동 IP 주소를 제공하는 외부 네트워크의 네트워크 이름
- API 및 수신 인스턴스에 필요한 유동 IP 주소
DNS 레코드:
다음 API 기본 도메인은 API의 유동 IP 주소를 가리켜야 합니다.
api.<cluster_name>.<base_domain>
다음 애플리케이션 기본 도메인은 ingress:app-name의 유동 IP 주소를 가리켜야 합니다.
*.apps.<cluster_name>.<base_domain>
-
컨트롤 플레인 및 작업자 인스턴스의 플레이버 이름(예:
1.7.3.8.2. 콘솔을 사용하여 클러스터 생성
다중 클러스터 엔진 Operator 콘솔에서 클러스터를 생성하려면 Infrastructure > Clusters 로 이동합니다. 클러스터 페이지에서 클러스터 생성 을 클릭하고 콘솔의 단계를 완료합니다.
참고: 이 절차는 클러스터를 생성하기 위한 것입니다. 가져올 기존 클러스터가 있는 경우 해당 단계에 대한 클러스터 가져오기 를 참조하십시오.
인증 정보를 생성해야 하는 경우 자세한 내용은 Red Hat OpenStack Platform의 인증 정보 생성 을 참조하십시오.
클러스터 이름은 클러스터의 호스트 이름에 사용됩니다. 이름에는 15자 미만이 포함되어야 합니다. 이 값은 인증 정보 사전 요구 사항 섹션에 나열된 DNS 레코드를 생성하는 데 사용한 이름과 일치해야 합니다.
중요: 클러스터를 생성할 때 컨트롤러는 클러스터 및 해당 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
팁: 콘솔에서 정보를 입력할 때 콘텐츠 업데이트를 보려면 YAML 을 선택합니다.
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 클러스터 세트에 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다. ManagedClusterSet
에 관리 클러스터를 할당하지 않으면 기본
관리 클러스터 세트에 자동으로 추가됩니다.
Red Hat OpenStack Platform 계정에 대해 구성한 선택한 인증 정보와 연결된 기본 DNS 도메인이 이미 있는 경우 해당 값이 필드에 채워집니다. 값을 덮어 쓰기하여 변경할 수 있습니다. 자세한 내용은 Red Hat OpenStack Platform 설명서의 도메인 관리를 참조하십시오. 이 이름은 클러스터의 호스트 이름에 사용됩니다.
릴리스 이미지는 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 사용하려는 버전을 사용할 수 있는 경우 이미지 목록에서 이미지를 선택할 수 있습니다. 사용하려는 이미지가 표준 이미지가 아닌 경우 사용하려는 이미지의 URL을 입력할 수 있습니다. 릴리스 이미지에 대한 자세한 내용은 릴리스 이미지 릴리스를 참조하십시오. OpenShift Container Platform 버전 4.6.x 이상의 릴리스 이미지만 지원됩니다.
노드 풀에는 컨트롤 플레인 풀과 작업자 풀이 포함됩니다. 컨트롤 플레인 노드는 클러스터 활동 관리를 공유합니다. 관리 클러스터의 아키텍처 유형이 허브 클러스터의 아키텍처와 동일하지 않은 경우 풀에 있는 시스템의 명령 집합 아키텍처 값을 입력합니다. 유효한 값은 amd64,ppc64le,s390x 및 arm64 입니다.
컨트롤 플레인 풀에 인스턴스 유형을 추가해야 하지만 생성된 후 인스턴스의 유형과 크기를 변경할 수 있습니다.
작업자 풀에서 하나 이상의 작업자 노드를 생성하여 클러스터의 컨테이너 워크로드를 실행할 수 있습니다. 단일 작업자 풀에 있거나 여러 작업자 풀에 배포할 수 있습니다. 제로 작업자 노드가 지정되면 컨트롤 플레인 노드도 작업자 노드로 작동합니다. 정보에는 다음 필드가 포함됩니다.
- 인스턴스 유형: 인스턴스 유형을 만든 후 인스턴스의 유형과 크기를 변경할 수 있습니다.
- 노드 수: 작업자 풀의 노드 수를 지정합니다. 이 설정은 작업자 풀을 정의할 때 필요합니다.
클러스터에 네트워킹 세부 정보가 필요합니다. IPv4 네트워크에 대해 하나 이상의 네트워크에 대한 값을 제공해야 합니다. IPv6 네트워크의 경우 둘 이상의 네트워크를 정의해야 합니다.
네트워크 추가를 클릭하여 추가 네트워크를 추가할 수 있습니다. IPv6 주소를 사용하는 경우 두 개 이상의 네트워크가 있어야 합니다.
인증 정보에 제공된 프록시 정보는 프록시 필드에 자동으로 추가됩니다. 정보를 그대로 사용하거나, 덮어쓰거나 프록시를 활성화하려면 정보를 추가할 수 있습니다. 다음 목록에는 프록시를 생성하는 데 필요한 정보가 포함되어 있습니다.
-
HTTP 프록시:
HTTP
트래픽의 프록시로 사용해야 하는 URL을 지정합니다. -
HTTPS 프록시:
HTTPS
트래픽에 사용해야 하는 보안 프록시 URL입니다. 값을 제공하지 않으면 HTTP 및HTTPS
모두에HTTP
프록시 -
프록시 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 사이트 목록을 정의합니다. 마침표로 도메인 이름을 시작합니다
.
를 해당 도메인에 있는 모든 하위 도메인을 포함합니다. 모든 대상에 대해 프록시를 바이패스하려면 별표*
를 추가합니다. - 추가 신뢰 번들: HTTPS 연결을 프록시하는 데 필요한 하나 이상의 추가 CA 인증서입니다.
연결 해제된 설치를 클릭하여 연결 해제된 설치 이미지를 정의할 수 있습니다. Red Hat OpenStack Platform 공급자 및 연결이 끊긴 설치를 사용하여 클러스터를 생성할 때 인증서가 미러 레지스트리에 액세스해야 하는 경우, 클러스터를 생성할 때 연결 해제된 설치 구성 섹션의 추가 신뢰 번들 필드에 입력해야 합니다.
정보를 검토하고 선택적으로 클러스터를 생성하기 전에 사용자 지정할 때 YAML 스위치를 클릭하여 패널의 install-config.yaml
파일 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다.
내부 CA(인증 기관)를 사용하는 클러스터를 생성할 때 다음 단계를 완료하여 클러스터의 YAML 파일을 사용자 지정해야 합니다.
검토 단계에서 YAML 스위치를 사용하여 CA 인증서 번들로 목록 상단에
Secret
오브젝트를 삽입합니다. 참고: Red Hat OpenStack Platform 환경에서 여러 기관에서 서명한 인증서를 사용하여 서비스를 제공하는 경우 번들에 필요한 모든 엔드포인트를 검증하기 위해 인증서가 포함되어야 합니다.ocp3
이라는 클러스터 추가는 다음 예와 유사합니다.apiVersion: v1 kind: Secret type: Opaque metadata: name: ocp3-openstack-trust namespace: ocp3 stringData: ca.crt: | -----BEGIN CERTIFICATE----- <Base64 certificate contents here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <Base64 certificate contents here> -----END CERTIFICATE----
Hive
ClusterDeployment
오브젝트를 수정하여 다음 예와 유사하게spec.platform.openstack
에서certificatesSecretRef
값을 지정합니다.platform: openstack: certificatesSecretRef: name: ocp3-openstack-trust credentialsSecretRef: name: ocp3-openstack-creds cloud: openstack
이전 예제에서는
clouds.yaml
파일의 클라우드 이름이openstack
이라고 가정합니다.
Kubernetes용 Red Hat Advanced Cluster Management를 사용하고 관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 필요한 단계를 위해 특정 노드에서 실행되도록 klusterlet 구성 을 참조하십시오.
참고: 클러스터를 가져오기 위해 클러스터 세부 정보가 제공된 oc
명령을 실행할 필요가 없습니다. 클러스터를 생성할 때 다중 클러스터 엔진 Operator 관리 아래에 자동으로 구성됩니다.
클러스터에 액세스하는 방법에 대한 지침은 클러스터 액세스를 계속합니다.
1.7.3.9. 온-프레미스 환경에서 클러스터 생성
콘솔을 사용하여 온프레미스 Red Hat OpenShift Container Platform 클러스터를 생성할 수 있습니다. 클러스터는 단일 노드 OpenShift 클러스터, 다중 노드 클러스터, VMware vSphere, Red Hat OpenStack, Nutanix 또는 베어 메탈 환경에서 3노드 컴팩트 클러스터일 수 있습니다.
플랫폼 값이 platform=none
으로 설정되어 있으므로 클러스터를 설치하는 플랫폼과의 통합은 없습니다. 단일 노드 OpenShift 클러스터에는 컨트롤 플레인 서비스와 사용자 워크로드를 호스팅하는 단일 노드만 포함됩니다. 이 구성은 클러스터의 리소스 공간을 최소화하려는 경우 유용할 수 있습니다.
Red Hat OpenShift Container Platform에서 사용할 수 있는 기능인 제로 터치 프로비저닝 기능을 사용하여 에지 리소스에 여러 개의 단일 노드 OpenShift 클러스터를 프로비저닝할 수도 있습니다. 제로 터치 프로비저닝에 대한 자세한 내용은 OpenShift Container Platform 설명서 의 네트워크 맨 위 엣지의 클러스터를 참조하십시오.
1.7.3.9.1. 사전 요구 사항
온-프레미스 환경에서 클러스터를 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- 지원되는 OpenShift Container Platform 버전에 배포된 허브 클러스터가 있어야 합니다.
- 구성된 호스트의 호스트 인벤토리를 사용하여 구성된 인프라 환경이 필요합니다.
- 허브 클러스터(연결됨)에 대한 인터넷 액세스 권한이 있거나 클러스터를 생성하는 데 필요한 이미지를 검색하려면 인터넷에 연결되어 있는 내부 또는 미러 레지스트리에 대한 연결이 있어야 합니다.
- 구성된 온-프레미스 인증 정보가 필요합니다.
- OpenShift Container Platform 이미지 풀 시크릿이 필요합니다. 이미지 풀 시크릿 사용을 참조하십시오.
다음 DNS 레코드가 필요합니다.
다음 API 기본 도메인은 정적 API VIP를 가리켜야 합니다.
api.<cluster_name>.<base_domain>
다음 애플리케이션 기본 도메인은 Ingress VIP의 고정 IP 주소를 가리켜야 합니다.
*.apps.<cluster_name>.<base_domain>
1.7.3.9.2. 콘솔을 사용하여 클러스터 생성
콘솔에서 클러스터를 생성하려면 다음 단계를 완료합니다.
- Infrastructure > Clusters 로 이동합니다.
- 클러스터 페이지에서 클러스터 생성 을 클릭하고 콘솔의 단계를 완료합니다.
- 클러스터 유형으로 Host inventory 를 선택합니다.
지원되는 설치에 다음 옵션을 사용할 수 있습니다.
- 기존 호스트 사용: 기존 호스트 인벤토리에 있는 호스트 목록에서 호스트를 선택합니다.
- 새 호스트 검색: 기존 인프라 환경에 없는 호스트를 검색합니다. 이미 인프라 환경에 있는 호스트를 사용하는 대신 자체 호스트를 검색합니다.
인증 정보를 생성해야 하는 경우 자세한 내용은 온-프레미스 환경에 대한 인증 정보 만들기 를 참조하십시오.
클러스터 이름은 클러스터의 호스트 이름에 사용됩니다.
중요: 클러스터를 생성할 때 컨트롤러는 클러스터 및 해당 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
참고: 콘솔에서 정보를 입력할 때 콘텐츠 업데이트를 보려면 YAML 을 선택합니다.
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 클러스터 세트에 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다. ManagedClusterSet
에 관리 클러스터를 할당하지 않으면 기본
관리 클러스터 세트에 자동으로 추가됩니다.
공급자 계정에 대해 구성한 선택한 인증 정보와 연결된 기본 DNS 도메인이 이미 있는 경우 해당 값이 해당 필드에 채워집니다. 값을 덮어 쓰기하여 변경할 수 있지만 클러스터를 생성한 후에는 이 설정을 변경할 수 없습니다. 공급자의 기본 도메인은 Red Hat OpenShift Container Platform 클러스터 구성 요소에 대한 경로를 생성하는 데 사용됩니다. 클러스터 공급자의 DNS에서 SOA(시작 기관) 레코드로 구성됩니다.
OpenShift 버전은 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 사용하려는 버전을 사용할 수 있는 경우 이미지 목록에서 이미지를 선택할 수 있습니다. 사용하려는 이미지가 표준 이미지가 아닌 경우 사용하려는 이미지의 URL을 입력할 수 있습니다. 자세한 내용은 릴리스 이미지를 참조하십시오.
지원되는 OpenShift Container Platform 버전을 선택하면 Install single-node OpenShift 를 선택하는 옵션이 표시됩니다. 단일 노드 OpenShift 클러스터에는 컨트롤 플레인 서비스와 사용자 워크로드를 호스팅하는 단일 노드가 포함되어 있습니다. 생성된 후 단일 노드 OpenShift 클러스터에 노드를 추가하는 방법에 대한 자세한 내용은 인프라 환경으로 호스트 스케일링을 참조하십시오.
클러스터가 단일 노드 OpenShift 클러스터로 전환하려면 단일 노드 OpenShift 옵션을 선택합니다. 다음 단계를 완료하여 단일 노드 OpenShift 클러스터에 작업자를 추가할 수 있습니다.
- 콘솔에서 Infrastructure > Clusters 로 이동하여 생성 또는 액세스하려는 클러스터의 이름을 선택합니다.
- 작업 > 호스트 추가를 선택하여 추가 작업자를 추가합니다.
참고: 단일 노드 OpenShift 컨트롤 플레인에는 8개의 CPU 코어가 필요하지만 다중 노드 컨트롤 플레인 클러스터의 컨트롤 플레인 노드는 4개의 CPU 코어만 필요합니다.
클러스터를 검토하고 저장하면 클러스터가 초안 클러스터로 저장됩니다. 클러스터 페이지에서 클러스터 이름을 선택하여 생성 프로세스를 종료하고 나중에 프로세스를 완료할 수 있습니다.
기존 호스트를 사용하는 경우 호스트를 직접 선택할지 아니면 자동으로 선택하려는 경우 선택합니다. 호스트 수는 선택한 노드 수를 기반으로 합니다. 예를 들어 단일 노드 OpenShift 클러스터에는 하나의 호스트만 필요하지만 표준 3-노드 클러스터에는 3개의 호스트가 필요합니다.
이 클러스터의 요구 사항을 충족하는 사용 가능한 호스트의 위치는 호스트 위치 목록에 표시됩니다. 호스트 배포 및 고가용성 구성을 위해 여러 위치를 선택합니다.
기존 인프라 환경이 없는 새 호스트를 검색하는 경우 Discovery Image를 사용하여 호스트 인벤토리에 호스트 추가 단계를 완료합니다.
호스트가 바인딩되고 검증이 통과되면 다음 IP 주소를 추가하여 클러스터의 네트워킹 정보를 완료합니다.
API VIP: 내부 API 통신에 사용할 IP 주소를 지정합니다.
참고: 이 값은 사전 요구 사항 섹션에 나열된 DNS 레코드를 생성하는 데 사용한 이름과 일치해야 합니다. 제공되지 않는 경우
api.
가 올바르게 확인되도록 DNS를 사전 구성해야 합니다.Ingress VIP: 인그레스 트래픽에 사용할 IP 주소를 지정합니다.
참고: 이 값은 사전 요구 사항 섹션에 나열된 DNS 레코드를 생성하는 데 사용한 이름과 일치해야 합니다. 제공되지 않는 경우
test.apps.
가 올바르게 확인되도록 DNS를 사전 구성해야 합니다.
Kubernetes용 Red Hat Advanced Cluster Management를 사용하고 관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 필요한 단계를 위해 특정 노드에서 실행되도록 klusterlet 구성 을 참조하십시오.
클러스터 탐색 페이지에서 설치 상태를 볼 수 있습니다.
클러스터에 액세스하는 방법에 대한 지침은 클러스터 액세스를 계속합니다.
1.7.3.9.3. 명령줄을 사용하여 클러스터 생성
중앙 인프라 관리 구성 요소 내에서 지원 설치 관리자 기능을 사용하여 콘솔 없이 클러스터를 생성할 수도 있습니다. 이 절차를 완료하면 생성된 검색 이미지에서 호스트를 부팅할 수 있습니다. 절차 순서는 일반적으로 중요하지 않지만 필요한 순서가 있을 때 표시됩니다.
1.7.3.9.3.1. 네임스페이스 생성
리소스에 대한 네임스페이스가 필요합니다. 공유 네임스페이스의 모든 리소스를 유지하는 것이 더 편리합니다. 이 예제에서는 네임스페이스 이름에 sample-namespace
를 사용하지만 assisted-installer
를 제외한 모든 이름을 사용할 수 있습니다. 다음 파일을 생성하고 적용하여 네임스페이스를 생성합니다.
apiVersion: v1 kind: Namespace metadata: name: sample-namespace
1.7.3.9.3.2. 네임스페이스에 풀 시크릿 추가
다음 사용자 정의 리소스를 생성하고 적용하여 네임스페이스에 풀 시크릿 을 추가합니다.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
name: <pull-secret>
namespace: sample-namespace
stringData:
.dockerconfigjson: 'your-pull-secret-json' 1
1.7.3.9.3.3. Generate a ClusterImageSet
다음 사용자 정의 리소스를 생성하고 적용하여 클러스터의 OpenShift Container Platform 버전을 지정하는 CustomImageSet
을 생성합니다.
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: openshift-v4.15.0 spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.15.0-rc.0-x86_64
1.7.3.9.3.4. ClusterDeployment 사용자 정의 리소스 생성
ClusterDeployment
사용자 정의 리소스 정의는 클러스터의 라이프사이클을 제어하는 API입니다. 클러스터 매개변수를 정의하는 spec.ClusterInstallRef
설정에서 AgentClusterInstall
사용자 정의 리소스를 참조합니다.
다음 예제를 기반으로 ClusterDeployment
사용자 정의 리소스를 생성하고 적용합니다.
apiVersion: hive.openshift.io/v1 kind: ClusterDeployment metadata: name: single-node namespace: demo-worker4 spec: baseDomain: hive.example.com clusterInstallRef: group: extensions.hive.openshift.io kind: AgentClusterInstall name: test-agent-cluster-install 1 version: v1beta1 clusterName: test-cluster controlPlaneConfig: servingCertificates: {} platform: agentBareMetal: agentSelector: matchLabels: location: internal pullSecretRef: name: <pull-secret> 2
1.7.3.9.3.5. AgentClusterInstall 사용자 정의 리소스 생성
AgentClusterInstall
사용자 정의 리소스에서 클러스터에 대한 많은 요구 사항을 지정할 수 있습니다. 예를 들어 클러스터 네트워크 설정, 플랫폼, 컨트롤 플레인 수 및 작업자 노드를 지정할 수 있습니다.
다음 예와 유사한 사용자 정의 리소스를 생성하고 추가합니다.
apiVersion: extensions.hive.openshift.io/v1beta1 kind: AgentClusterInstall metadata: name: test-agent-cluster-install namespace: demo-worker4 spec: platformType: BareMetal 1 clusterDeploymentRef: name: single-node 2 imageSetRef: name: openshift-v4.15.0 3 networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 192.168.111.0/24 serviceNetwork: - 172.30.0.0/16 provisionRequirements: controlPlaneAgents: 1 sshPublicKey: ssh-rsa <your-public-key-here> 4
- 1
- 클러스터가 생성되는 환경의 플랫폼 유형을 지정합니다. 유효한 값은
BareMetal
,None
,VSphere
,Nutanix
또는External
입니다. - 2
ClusterDeployment
리소스에 사용한 것과 동일한 이름을 사용합니다.- 3
- Generate a
ClusterImageSet
에서 생성한 ClusterImageSet을 사용합니다. - 4
- SSH 공개 키를 지정하여 호스트를 설치한 후 액세스할 수 있습니다.
1.7.3.9.3.6. 선택 사항: NMStateConfig 사용자 정의 리소스 생성
NMStateConfig
사용자 지정 리소스는 정적 IP 주소와 같은 호스트 수준 네트워크 구성이 있는 경우에만 필요합니다. 이 사용자 정의 리소스를 포함하는 경우 InfraEnv
사용자 정의 리소스를 생성하기 전에 이 단계를 완료해야 합니다. NMStateConfig
는 InfraEnv
사용자 정의 리소스의 spec.nmStateConfigLabelSelector
값으로 참조합니다.
다음 예와 유사한 NMStateConfig
사용자 지정 리소스를 생성하고 적용합니다. 필요한 경우 값을 바꿉니다.
apiVersion: agent-install.openshift.io/v1beta1 kind: NMStateConfig metadata: name: <mynmstateconfig> namespace: <demo-worker4> labels: demo-nmstate-label: <value> spec: config: interfaces: - name: eth0 type: ethernet state: up mac-address: 02:00:00:80:12:14 ipv4: enabled: true address: - ip: 192.168.111.30 prefix-length: 24 dhcp: false - name: eth1 type: ethernet state: up mac-address: 02:00:00:80:12:15 ipv4: enabled: true address: - ip: 192.168.140.30 prefix-length: 24 dhcp: false dns-resolver: config: server: - 192.168.126.1 routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.168.111.1 next-hop-interface: eth1 table-id: 254 - destination: 0.0.0.0/0 next-hop-address: 192.168.140.1 next-hop-interface: eth1 table-id: 254 interfaces: - name: "eth0" macAddress: "02:00:00:80:12:14" - name: "eth1" macAddress: "02:00:00:80:12:15"
참고: demo-nmstate-label
레이블 이름과 값을 InfraEnv
리소스 spec.nmStateConfigLabelSelector.matchLabels
필드에 포함해야 합니다.
1.7.3.9.3.7. InfraEnv 사용자 정의 리소스 생성
InfraEnv
사용자 지정 리소스는 검색 ISO를 생성하는 구성을 제공합니다. 이 사용자 정의 리소스 내에서 프록시 설정, ignition 덮어쓰기 및 NMState
레이블의 값을 식별합니다. 이 사용자 정의 리소스의 spec.nmStateConfigLabelSelector
값은 NMStateConfig
사용자 지정 리소스를 참조합니다.
참고: optional NMStateConfig
사용자 지정 리소스를 포함하려는 경우 InfraEnv
사용자 정의 리소스에서 참조해야 합니다. NMStateConfig
사용자 지정 리소스를 생성하기 전에 InfraEnv
사용자 지정 리소스를 생성하는 경우 InfraEnv
사용자 정의 리소스를 편집하여 NMStateConfig
사용자 지정 리소스를 참조하고 참조가 추가된 후 ISO를 다운로드합니다.
다음 사용자 정의 리소스를 생성하고 적용합니다.
apiVersion: agent-install.openshift.io/v1beta1 kind: InfraEnv metadata: name: myinfraenv namespace: demo-worker4 spec: clusterRef: name: single-node 1 namespace: demo-worker4 2 pullSecretRef: name: pull-secret sshAuthorizedKey: <your_public_key_here> nmStateConfigLabelSelector: matchLabels: demo-nmstate-label: value proxy: httpProxy: http://USERNAME:PASSWORD@proxy.example.com:PORT httpsProxy: https://USERNAME:PASSWORD@proxy.example.com:PORT noProxy: .example.com,172.22.0.0/24,10.10.0.0/24
- 1
- ClusterDeployment 만들기 에서
clusterDeployment
리소스 이름을 바꿉니다. - 2
1.7.3.9.3.7.1. InfraEnv 필드 테이블
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 선택 사항 | 검색 ISO 이미지에서 부팅될 때 호스트에 액세스할 수 있는 SSH 공개 키를 지정할 수 있습니다. |
| 선택 사항 |
호스트의 고정 IP, 브리지 및 본딩과 같은 고급 네트워크 구성을 통합합니다. 호스트 네트워크 구성은 선택한 라벨을 사용하여 하나 이상의 |
| 선택 사항 | proxy 섹션에서 검색하는 동안 호스트에 필요한 프록시 설정을 지정할 수 있습니다. |
참고: IPv6로 프로비저닝할 때 noProxy
설정에서 CIDR 주소 블록을 정의할 수 없습니다. 각 주소를 별도로 정의해야 합니다.
1.7.3.9.3.8. 검색 이미지에서 호스트 부팅
나머지 단계에서는 이전 절차의 결과 검색 ISO 이미지에서 호스트를 부팅하는 방법을 설명합니다.
다음 명령을 실행하여 네임스페이스에서 검색 이미지를 다운로드합니다.
curl --insecure -o image.iso $(kubectl -n sample-namespace get infraenvs.agent-install.openshift.io myinfraenv -o=jsonpath="{.status.isoDownloadURL}")
- 검색 이미지를 가상 미디어, USB 드라이브 또는 다른 스토리지 위치로 이동하고 다운로드한 검색 이미지에서 호스트를 부팅합니다.
에이전트
리소스는 자동으로 생성됩니다. 클러스터에 등록되어 있으며 검색 이미지에서 부팅되는 호스트를 나타냅니다.Agent
사용자 정의 리소스를 승인하고 다음 명령을 실행하여 설치를 시작합니다.oc -n sample-namespace patch agents.agent-install.openshift.io 07e80ea9-200c-4f82-aff4-4932acb773d4 -p '{"spec":{"approved":true}}' --type merge
에이전트 이름 및 UUID를 값으로 바꿉니다.
이전 명령의 출력에
APPROVED
매개변수에true
값이 포함된 대상 클러스터의 항목이 포함될 때 승인되었는지 확인할 수 있습니다.
1.7.3.9.4. 추가 리소스
- CLI를 사용하여 Nutanix 플랫폼에서 클러스터를 생성할 때 필요한 추가 단계는 Red Hat OpenShift Container Platform 설명서 의 API 및 Nutanix 후 설치 구성으로 Nutanix에 호스트 추가 를 참조하십시오.
- 제로 터치 프로비저닝에 대한 자세한 내용은 OpenShift Container Platform 설명서 의 네트워크 맨 위에 있는 클러스터를 참조하십시오.
- 이미지 풀 시크릿 사용을참조하십시오.
- 온-프레미스 환경에 대한 인증 정보 생성을 참조하십시오.
- 릴리스 이미지참조
- Discovery Image를 사용하여 호스트 인벤토리에 호스트 추가를참조하십시오.
1.7.3.10. 프록시 환경에서 클러스터 생성
허브 클러스터가 프록시 서버를 통해 연결된 경우 Red Hat OpenShift Container Platform 클러스터를 생성할 수 있습니다. 클러스터 생성이 성공하려면 다음 상황 중 하나가 true여야 합니다.
- 다중 클러스터 엔진 Operator는 프록시를 사용하여 인터넷에 대한 관리 클러스터 액세스 권한이 있는 관리형 클러스터와의 개인 네트워크 연결이 있습니다.
- 관리 클러스터는 인프라 공급자에 있지만 방화벽 포트를 사용하면 관리 클러스터에서 허브 클러스터로 통신할 수 있습니다.
프록시로 구성된 클러스터를 생성하려면 다음 단계를 완료합니다.
Secret에 저장된
install-config
YAML에 다음 정보를 추가하여 hub 클러스터에서cluster-wide-proxy
설정을 구성합니다.apiVersion: v1 kind: Proxy baseDomain: <domain> proxy: httpProxy: http://<username>:<password>@<proxy.example.com>:<port> httpsProxy: https://<username>:<password>@<proxy.example.com>:<port> noProxy: <wildcard-of-domain>,<provisioning-network/CIDR>,<BMC-address-range/CIDR>
username
을 프록시 서버의 사용자 이름으로 바꿉니다.프록시 서버에 액세스하려면
password
를 암호로 바꿉니다.proxy.example.com
을 프록시 서버의 경로로 바꿉니다.port
를 프록시 서버로 통신 포트로 교체합니다.wildcard-of-domain
을 프록시를 바이패스해야 하는 도메인의 항목으로 교체합니다.CIDR 표기법에서
provisioning-network/CIDR
를 provisioning 네트워크의 IP 주소 및 할당된 IP 주소 수로 바꿉니다.CIDR 표기법에서
BMC-address-range/CIDR
를 BMC 주소 및 주소 수로 바꿉니다.- 클러스터 생성 절차를 완료하여 클러스터를 프로비저닝합니다. 공급자 를 선택하려면 클러스터 생성 을 참조하십시오.
참고: 클러스터를 배포할 때 install-config
YAML만 사용할 수 있습니다. 클러스터를 배포한 후 install-config
YAML에 대한 새 변경 사항이 적용되지 않습니다. 배포 후 구성을 업데이트하려면 정책을 사용해야 합니다. 자세한 내용은 Pod 정책을 참조하십시오.
1.7.3.10.1. 추가 리소스
- 공급자를 선택하려면 클러스터 생성 을 참조하십시오.
- 클러스터를 배포한 후 구성을 변경하는 방법을 알아보려면 Pod 정책을 참조하십시오.
1.7.3.11. AgentClusterInstall 프록시 구성
AgentClusterInstall 프록시 필드는 설치 중에 프록시 설정을 결정하고 생성된 클러스터에서 클러스터 전체 프록시 리소스를 생성하는 데 사용됩니다.
1.7.3.11.1. AgentClusterInstall구성
AgentClusterInstall
프록시를 구성하려면 AgentClusterInstall
리소스에 프록시
설정을 추가합니다. httpProxy
,httpsProxy
, noProxy
:를 사용하여 다음 YAML 샘플을 참조하십시오.
apiVersion: extensions.hive.openshift.io/v1beta1 kind: AgentClusterInstall spec: proxy: httpProxy: http://<username>:<password>@<proxy.example.com>:<port> 1 httpsProxy: https://<username>:<password>@<proxy.example.com>:<port> 2 noProxy: <wildcard-of-domain>,<provisioning-network/CIDR>,<BMC-address-range/CIDR> 3
- 1
httpProxy
는 HTTP 요청에 대한 프록시의 URL입니다. 사용자 이름 및 암호 값을 프록시 서버의 인증 정보로 바꿉니다.proxy.example.com
을 프록시 서버의 경로로 바꿉니다.- 2
httpsProxy
는 HTTPS 요청의 프록시 URL입니다. 값을 자격 증명으로 바꿉니다.port
를 프록시 서버로 통신 포트로 교체합니다.- 3
noProxy
는 프록시를 사용하지 않아야 하는 쉼표로 구분된 도메인 및 CIDR 목록입니다.wildcard-of-domain
을 프록시를 바이패스해야 하는 도메인의 항목으로 교체합니다. CIDR 표기법에서provisioning-network/CIDR
를 provisioning 네트워크의 IP 주소 및 할당된 IP 주소 수로 바꿉니다. CIDR 표기법에서BMC-address-range/CIDR
를 BMC 주소 및 주소 수로 바꿉니다.
1.7.3.11.2. 추가 리소스
1.7.4. 클러스터 가져오기
다른 Kubernetes 클라우드 공급자에서 클러스터를 가져올 수 있습니다. 가져오기 후 대상 클러스터는 다중 클러스터 엔진 Operator 허브 클러스터의 관리 클러스터가 됩니다. 별도로 지정하지 않는 한 일반적으로 hub 클러스터 및 대상 관리 클러스터에 액세스할 수 있는 가져오기 작업을 완료할 수 있습니다.
- 허브 클러스터는 다른 허브 클러스터를 관리할 수 없지만 자체적으로 관리할 수 있습니다. 허브 클러스터는 자동으로 가져와 자체 관리하도록 구성됩니다. 허브 클러스터를 수동으로 가져올 필요가 없습니다.
-
허브 클러스터를 제거하고 다시 가져오려고 하는 경우
ManagedCluster
리소스에local-cluster:true
레이블을 추가해야 합니다.
중요: 클러스터 라이프사이클은 이제 CCNCF(Cloud Native Computing Foundation) Kubernetes 적합성 프로그램을 통해 인증된 모든 공급자를 지원합니다. 하이브리드 클라우드 멀티 클러스터 관리를 위해 CNFC에서 인식하는 공급 업체를 선택합니다.
CNFC 공급자 사용에 대한 다음 정보를 참조하십시오.
- CNFC 공급자가 인증된 Kubernetes 적합성에서 인증 하는 방법을 알아보십시오.
- CNFC 타사 공급자에 대한 Red Hat 지원 정보는 타사 구성 요소와의 Red Hat 지원 또는 Red Hat 지원 문의 를 참조하십시오.
-
자체 CNFC 적합성 인증 클러스터를 가져오는 경우 OpenShift Container Platform CLI
oc
명령을 Kubernetes CLI 명령kubectl
로 변경해야 합니다.
다음 주제를 읽고 클러스터를 관리할 수 있도록 클러스터 가져오기에 대해 자세히 알아보십시오.
필수 사용자 유형 또는 액세스 수준: 클러스터 관리자
1.7.4.1. 콘솔을 사용하여 관리 클러스터 가져오기
Kubernetes Operator용 다중 클러스터 엔진을 설치한 후 관리할 클러스터를 가져올 준비가 된 것입니다. 다음 주제를 계속 읽으십시오. 콘솔을 사용하여 관리 클러스터를 가져오는 방법에 대해 알아봅니다.
1.7.4.1.1. 사전 요구 사항
- 배포된 허브 클러스터입니다. 베어 메탈 클러스터를 가져오는 경우 지원되는 Red Hat OpenShift Container Platform 버전에 hub 클러스터를 설치해야 합니다.
- 관리할 클러스터입니다.
-
base64
명령줄 툴입니다. -
OpenShift Container Platform에서 생성하지 않은 클러스터를 가져오는 경우 정의된
multiclusterhub.spec.imagePullSecret
입니다. 이 시크릿은 Kubernetes Operator의 다중 클러스터 엔진을 설치할 때 생성될 수 있습니다. 이 보안을 정의하는 방법에 대한 자세한 내용은 사용자 정의 이미지 가져오기 보안을 참조하십시오.
필수 사용자 유형 또는 액세스 수준: 클러스터 관리자
1.7.4.1.2. 새 풀 시크릿 생성
새 풀 시크릿을 생성해야 하는 경우 다음 단계를 완료합니다.
- cloud.redhat.com 에서 Kubernetes 풀 시크릿을 다운로드합니다.
- 허브 클러스터의 네임스페이스에 풀 시크릿을 추가합니다.
다음 명령을 실행하여
open-cluster-management
네임스페이스에 새 시크릿을 생성합니다.oc create secret generic pull-secret -n <open-cluster-management> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjson
open-cluster-management
를 hub 클러스터의 네임스페이스 이름으로 교체합니다. hub 클러스터의 기본 네임스페이스는open-cluster-management
입니다.path-to-pull-secret
을 다운로드한 풀 시크릿 경로로 교체합니다.시크릿을 가져올 때 관리 클러스터에 자동으로 복사됩니다.
-
이전에 설치한 에이전트가 가져올 클러스터에서 삭제되었는지 확인합니다. 오류를 방지하려면
open-cluster-management-agent
및open-cluster-management-agent-addon
네임스페이스를 제거해야 합니다. Red Hat OpenShift Dedicated 환경에서 가져오려면 다음 노트를 참조하십시오.
- Red Hat OpenShift Dedicated 환경에 hub 클러스터가 배포되어 있어야 합니다.
-
Red Hat OpenShift Dedicated의 기본 권한은 dedicated-admin이지만 네임스페이스를 생성할 수 있는 모든 권한이 포함되지는 않습니다. 다중 클러스터 엔진 Operator를 사용하여 클러스터를 가져오고 관리하려면
cluster-admin
권한이 있어야 합니다.
-
이전에 설치한 에이전트가 가져올 클러스터에서 삭제되었는지 확인합니다. 오류를 방지하려면
1.7.4.1.3. 클러스터 가져오기
사용 가능한 각 클라우드 공급자에 대해 콘솔에서 기존 클러스터를 가져올 수 있습니다.
참고: 허브 클러스터는 다른 허브 클러스터를 관리할 수 없습니다. 허브 클러스터는 자동으로 자체적으로 가져오기 및 관리하도록 설정되어 있으므로 자체적으로 관리하기 위해 허브 클러스터를 수동으로 가져올 필요가 없습니다.
기본적으로 네임스페이스는 클러스터 이름과 네임스페이스에 사용되지만 변경할 수 있습니다.
중요: 클러스터를 생성할 때 컨트롤러는 클러스터 및 해당 리소스에 대한 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 모든 리소스가 삭제됩니다.
모든 관리 클러스터는 관리 클러스터 세트와 연결되어 있어야 합니다. ManagedClusterSet
에 관리 클러스터를 할당하지 않으면 클러스터가 기본
관리 클러스터 세트에 자동으로 추가됩니다.
다른 클러스터 세트에 클러스터를 추가하려면 클러스터 세트에 clusterset-admin
권한이 있어야 합니다. 클러스터를 가져올 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터 세트를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없는 경우 클러스터 가져오기에 실패합니다. 클러스터에서 선택할 수 있는 옵션이 없는 경우 클러스터 세트에 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
OpenShift Container Platform Dedicated 클러스터를 가져오고 vendor=OpenShiftDedicated
의 레이블을 추가하여 공급 업체를 지정하지 않거나 vendor=auto-detect
에 대한 레이블을 추가하면 managed-by=platform
레이블이 클러스터에 자동으로 추가됩니다. 이 추가된 레이블을 사용하여 OpenShift Container Platform Dedicated 클러스터로 클러스터를 식별하고 OpenShift Container Platform Dedicated 클러스터를 그룹으로 검색할 수 있습니다.
다음 표에서는 클러스터를 가져오는 방법을 지정하는 가져오기 모드에 사용할 수 있는 옵션을 제공합니다.
수동으로 가져오기 명령 실행 | Red Hat Ansible Automation Platform 템플릿을 포함하여 콘솔에 정보를 작성하고 제출한 후 대상 클러스터에서 제공된 명령을 실행하여 클러스터를 가져옵니다. |
기존 클러스터의 서버 URL 및 API 토큰을 입력합니다. | 가져오려는 클러스터의 서버 URL 및 API 토큰을 제공합니다. 클러스터를 업그레이드할 때 실행할 Red Hat Ansible Automation Platform 템플릿을 지정할 수 있습니다. |
|
가져오려는 클러스터의 |
참고: Ansible Automation Platform 작업을 생성하고 실행하려면 OperatorHub에서 Red Hat Ansible Automation Platform Resource Operator가 설치되어 있어야 합니다.
클러스터 API 주소를 구성하려면 선택 사항: 클러스터 API 주소 구성을 참조하십시오.
관리 클러스터 klusterlet을 특정 노드에서 실행하도록 구성하려면 선택 사항: 특정 노드에서 실행되도록 klusterlet 구성을 참조하십시오.
1.7.4.1.3.1. 선택사항: 클러스터 API 주소 구성
oc get managedcluster
명령을 실행할 때 표에 표시되는 URL을 구성하여 클러스터 세부 정보 페이지에 있는 클러스터 API 주소를 선택적으로 구성하려면 다음 단계를 완료합니다.
-
cluster-admin
권한이 있는 ID를 사용하여 허브 클러스터에 로그인합니다. -
대상 관리 클러스터에 대한
kubeconfig
파일을 구성합니다. 다음 명령을 실행하여 가져오는 클러스터의 관리 클러스터 항목을 편집하고
cluster-name
을 관리 클러스터의 이름으로 교체합니다.oc edit managedcluster <cluster-name>
다음 예와 같이
ManagedClusterClientConfigs
섹션을 YAML 파일의ManagedCluster
사양에 추가합니다.spec: hubAcceptsClient: true managedClusterClientConfigs: - url: <https://api.new-managed.dev.redhat.com> 1
- 1
- URL 값을 가져오는 관리 클러스터에 대한 외부 액세스를 제공하는 URL로 바꿉니다.
1.7.4.1.3.2. 선택 사항: 특정 노드에서 실행되도록 klusterlet 구성
관리 클러스터에 대한 nodeSelector
및 허용 오차
주석을 구성하여 관리 클러스터 klusterlet을 실행할 노드를 지정할 수 있습니다. 다음 설정을 구성하려면 다음 단계를 완료합니다.
- 콘솔의 클러스터 페이지에서 업데이트할 관리 클러스터를 선택합니다.
YAML 스위치를
On
으로 설정하여 YAML 콘텐츠를 확인합니다.참고: YAML 편집기는 클러스터를 가져오거나 생성하는 경우에만 사용할 수 있습니다. 가져오기 또는 생성 후 관리형 클러스터 YAML 정의를 편집하려면 OpenShift Container Platform 명령줄 인터페이스 또는 Red Hat Advanced Cluster Management 검색 기능을 사용해야 합니다.
-
관리 클러스터 YAML 정의에
nodeSelector
주석을 추가합니다. 이 주석의 키는open-cluster-management/nodeSelector
입니다. 이 주석의 값은 JSON 형식의 문자열 맵입니다. 관리 클러스터 YAML 정의에
허용 오차
항목을 추가합니다. 이 주석의 키는open-cluster-management/tolerations
입니다. 이 주석의 값은 JSON 형식의 허용 오차 목록을 나타냅니다. 결과 YAML은 다음 예와 유사할 수 있습니다.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: annotations: open-cluster-management/nodeSelector: '{"dedicated":"acm"}' open-cluster-management/tolerations: '[{"key":"dedicated","operator":"Equal","value":"acm","effect":"NoSchedule"}]'
KlusterletConfig
를 사용하여 관리 클러스터에 대한 nodeSelector
및 허용 오차
를 구성할 수도 있습니다. 다음 설정을 구성하려면 다음 단계를 완료합니다.
참고: KlusterletConfig
를 사용하는 경우 관리 클러스터는 관리 클러스터 주석의 설정 대신 KlusterletConfig
설정의 구성을 사용합니다.
다음 샘플 YAML 콘텐츠를 적용합니다. 필요한 경우 값을 바꿉니다.
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: <klusterletconfigName> spec: nodePlacement: nodeSelector: dedicated: acm tolerations: - key: dedicated operator: Equal value: acm effect: NoSchedule
-
agent.open-cluster-management.io/klusterlet-config: '<klusterletconfigName
> 주석을 관리 클러스터에 추가하고 <klusterletconfigName
>을KlusterletConfig
의 이름으로 교체합니다.
1.7.4.1.4. 가져온 클러스터 제거
가져온 클러스터와 관리 클러스터에서 생성된 open-cluster-management-agent-addon
을 제거하려면 다음 절차를 완료합니다.
클러스터 페이지에서 Actions > Detach cluster 를 클릭하여 관리에서 클러스터를 제거합니다.
참고: local-cluster
라는 허브 클러스터를 분리하려고 하면 disableHubSelfManagement
의 기본 설정은 false
입니다. 이 설정으로 인해 허브 클러스터가 분리될 때 자체적으로 다시 가져와서 자체적으로 관리되고 MultiClusterHub
컨트롤러를 조정합니다. hub 클러스터에서 분리 프로세스를 완료하고 다시 가져오는 데 몇 시간이 걸릴 수 있습니다. 프로세스가 완료될 때까지 기다리지 않고 허브 클러스터를 다시 가져오려면 다음 명령을 실행하여 multiclusterhub-operator
Pod를 재시작하고 더 빨리 다시 가져올 수 있습니다.
oc delete po -n open-cluster-management `oc get pod -n open-cluster-management | grep multiclusterhub-operator| cut -d' ' -f1`
disableHubSelfManagement
값을 true
로 변경하여 hub 클러스터의 값을 자동으로 가져오지 않도록 할 수 있습니다. 자세한 내용은 disableHubSelfManagement 주제를 참조하십시오.
1.7.4.1.4.1. 추가 리소스
- 사용자 정의 이미지 가져오기 보안을 정의하는 방법에 대한 자세한 내용은 사용자 정의 이미지 가져오기 보안을 참조하십시오.
- disableHubSelfManagement 주제를 참조하십시오.
1.7.4.2. CLI를 사용하여 관리 클러스터 가져오기
Kubernetes Operator용 다중 클러스터 엔진을 설치한 후 Red Hat OpenShift Container Platform CLI를 사용하여 클러스터를 가져오고 관리할 수 있습니다. 자동 가져오기 보안을 사용하거나 수동 명령을 사용하여 CLI로 관리 클러스터를 가져오는 방법을 알아보려면 다음 주제를 계속 읽으십시오.
중요: 허브 클러스터는 다른 허브 클러스터를 관리할 수 없습니다. 허브 클러스터는 로컬 클러스터로 자동으로 가져오기 및 관리하도록 설정됩니다. 자체적으로 관리하기 위해 허브 클러스터를 수동으로 가져올 필요는 없습니다. 허브 클러스터를 제거하고 다시 가져오려고 하는 경우 local-cluster:true
레이블을 추가해야 합니다.
1.7.4.2.1. 사전 요구 사항
- 배포된 허브 클러스터입니다. 베어 메탈 클러스터를 가져오는 경우 hub 클러스터를 지원되는 OpenShift Container Platform 버전에 설치해야 합니다.
- 관리할 별도의 클러스터입니다.
- OpenShift Container Platform CLI입니다. OpenShift Container Platform CLI 설치 및 구성에 대한 정보는 OpenShift CLI 시작하기 를 참조하십시오.
-
OpenShift Container Platform에서 생성하지 않은 클러스터를 가져오는 경우 정의된
multiclusterhub.spec.imagePullSecret
입니다. 이 시크릿은 Kubernetes Operator의 다중 클러스터 엔진을 설치할 때 생성될 수 있습니다. 이 보안을 정의하는 방법에 대한 자세한 내용은 사용자 정의 이미지 가져오기 보안을 참조하십시오.
1.7.4.2.2. 지원되는 아키텍처
- Linux (x86_64, s390x, ppc64le)
- macOS
1.7.4.2.3. 클러스터 가져오기 준비
CLI를 사용하여 관리 클러스터를 가져오기 전에 다음 단계를 완료해야 합니다.
다음 명령을 실행하여 허브 클러스터에 로그인합니다.
oc login
허브 클러스터에서 다음 명령을 실행하여 프로젝트와 네임스페이스를 생성합니다. <
cluster_name&
gt;에 정의된 클러스터 이름은 YAML 파일 및 명령에서 클러스터 네임스페이스로도 사용됩니다.oc new-project <cluster_name>
중요:
cluster.open-cluster-management.io/managedCluster
레이블이 관리 클러스터 네임스페이스에 자동으로 추가되고 제거됩니다. 관리 클러스터 네임스페이스에서 수동으로 추가하거나 제거하지 마십시오.다음 예제 콘텐츠를 사용하여
managed-cluster.yaml
이라는 파일을 생성합니다.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: <cluster_name> labels: cloud: auto-detect vendor: auto-detect spec: hubAcceptsClient: true
클라우드
및벤더
의 값이자동 감지
로 설정된 경우 Red Hat Advanced Cluster Management는 가져오는 클러스터에서 클라우드 및 벤더 유형을 자동으로 감지합니다. 선택적으로자동 감지
값을 클러스터의 클라우드 및 벤더 값으로 교체할 수 있습니다. 다음 예제를 참조하십시오.cloud: Amazon vendor: OpenShift
다음 명령을 실행하여
ManagedCluster
리소스에 YAML 파일을 적용합니다.oc apply -f managed-cluster.yaml
1.7.4.2.4. 자동 가져오기 보안을 사용하여 클러스터 가져오기
자동 가져오기 보안을 사용하여 관리 클러스터를 가져오려면 클러스터의 kubeconfig
파일 또는 클러스터의 kube API 서버 및 토큰 쌍에 대한 참조가 포함된 시크릿을 생성해야 합니다. 자동 가져오기 보안을 사용하여 클러스터를 가져오려면 다음 단계를 완료합니다.
-
가져올 관리 클러스터의
kubeconfig
파일 또는 kube API 서버 및 토큰을 검색합니다.kubeconfig
파일 또는 kube API 서버 및 토큰을 찾을 위치를 알아보려면 Kubernetes 클러스터에 대한 설명서를 참조하십시오. ${CLUSTER_NAME} 네임스페이스에
auto-import-secret.yaml
파일을 생성합니다.다음 템플릿과 유사한 콘텐츠를 사용하여
auto-import-secret.yaml
이라는 YAML 파일을 생성합니다.apiVersion: v1 kind: Secret metadata: name: auto-import-secret namespace: <cluster_name> stringData: autoImportRetry: "5" # If you are using the kubeconfig file, add the following value for the kubeconfig file # that has the current context set to the cluster to import: kubeconfig: |- <kubeconfig_file> # If you are using the token/server pair, add the following two values instead of # the kubeconfig file: token: <Token to access the cluster> server: <cluster_api_url> type: Opaque
다음 명령을 실행하여 <cluster_name> 네임스페이스에 YAML 파일을 적용합니다.
oc apply -f auto-import-secret.yaml
참고: 기본적으로 자동 가져오기 보안은 한 번 사용되며 가져오기 프로세스가 완료되면 삭제됩니다. 자동 가져오기 보안을 유지하려면
managedcluster-import-controller.open-cluster-management.io/keeping-auto-import-secret
을 시크릿에 추가합니다. 다음 명령을 실행하여 추가할 수 있습니다.oc -n <cluster_name> annotate secrets auto-import-secret managedcluster-import-controller.open-cluster-management.io/keeping-auto-import-secret=""
가져온 클러스터에 대한
JOINED
및AVAILABLE
상태를 확인합니다. hub 클러스터에서 다음 명령을 실행합니다.oc get managedcluster <cluster_name>
클러스터에서 다음 명령을 실행하여 관리 클러스터에 로그인합니다.
oc login
다음 명령을 실행하여 가져오기 중인 클러스터에서 Pod 상태를 확인할 수 있습니다.
oc get pod -n open-cluster-management-agent
1.7.4.2.5. 수동으로 클러스터 가져오기
중요: 가져오기 명령에는 가져온 각 관리 클러스터에 복사되는 풀 시크릿 정보가 포함되어 있습니다. 가져온 클러스터에 액세스할 수 있는 사용자는 풀 시크릿 정보도 볼 수 있습니다.
관리 클러스터를 수동으로 가져오려면 다음 단계를 완료합니다.
다음 명령을 실행하여 허브 클러스터에서 가져오기 컨트롤러에서 생성한
klusterlet-crd.yaml
파일을 가져옵니다.oc get secret <cluster_name>-import -n <cluster_name> -o jsonpath={.data.crds\\.yaml} | base64 --decode > klusterlet-crd.yaml
다음 명령을 실행하여 허브 클러스터의 가져오기 컨트롤러에서 생성한
import.yaml
파일을 가져옵니다.oc get secret <cluster_name>-import -n <cluster_name> -o jsonpath={.data.import\\.yaml} | base64 --decode > import.yaml
가져올 클러스터에서 다음 단계를 진행합니다.
다음 명령을 입력하여 가져오는 관리 클러스터에 로그인합니다.
oc login
다음 명령을 실행하여 1단계에서 생성한
klusterlet-crd.yaml
을 적용합니다.oc apply -f klusterlet-crd.yaml
다음 명령을 실행하여 이전에 생성한
import.yaml
파일을 적용합니다.oc apply -f import.yaml
hub 클러스터에서 다음 명령을 실행하여 가져오는 관리 클러스터에 대한
JOINED
및AVAILABLE
상태를 확인할 수 있습니다.oc get managedcluster <cluster_name>
1.7.4.2.6. klusterlet 애드온 가져오기
KlusterletAddonConfig
klusterlet 애드온 구성을 구현하여 관리 클러스터에서 다른 애드온을 활성화합니다. 다음 단계를 완료하여 구성 파일을 생성하고 적용합니다.
다음 예와 유사한 YAML 파일을 생성합니다.
apiVersion: agent.open-cluster-management.io/v1 kind: KlusterletAddonConfig metadata: name: <cluster_name> namespace: <cluster_name> spec: applicationManager: enabled: true certPolicyController: enabled: true iamPolicyController: enabled: true policyController: enabled: true searchCollector: enabled: true
-
파일을
klusterlet-addon-config.yaml
로 저장합니다. 다음 명령을 실행하여 YAML을 적용합니다.
oc apply -f klusterlet-addon-config.yaml
추가 기능은 가져오는 관리 클러스터 상태가
AVAILABLE
이면 설치됩니다.다음 명령을 실행하여 가져오는 클러스터에서 애드온의 Pod 상태를 확인할 수 있습니다.
oc get pod -n open-cluster-management-agent-addon
1.7.4.2.7. 명령줄 인터페이스를 사용하여 가져온 클러스터 제거
명령줄 인터페이스를 사용하여 관리 클러스터를 제거하려면 다음 명령을 실행합니다.
oc delete managedcluster <cluster_name>
& lt;cluster_name
>을 클러스터 이름으로 바꿉니다.
1.7.4.3. 에이전트 등록을 사용하여 관리 클러스터 가져오기
Kubernetes Operator용 다중 클러스터 엔진을 설치한 후 에이전트 등록 끝점을 사용하여 클러스터를 가져오고 관리할 수 있습니다. 에이전트 등록 끝점을 사용하여 관리 클러스터를 가져오는 방법을 알아보려면 다음 주제를 계속 읽으십시오.
1.7.4.3.1. 사전 요구 사항
- 배포된 허브 클러스터입니다. 베어 메탈 클러스터를 가져오는 경우 hub 클러스터를 지원되는 OpenShift Container Platform 버전에 설치해야 합니다.
- 관리할 클러스터입니다.
-
base64
명령줄 툴입니다. OpenShift Container Platform에서 생성하지 않은 클러스터를 가져오는 경우 정의된
multiclusterhub.spec.imagePullSecret
입니다. 이 시크릿은 Kubernetes Operator의 다중 클러스터 엔진을 설치할 때 생성될 수 있습니다. 이 보안을 정의하는 방법에 대한 자세한 내용은 사용자 정의 이미지 가져오기 보안을 참조하십시오.새 보안을 생성해야 하는 경우 새 풀 시크릿 생성 을 참조하십시오.
1.7.4.3.2. 지원되는 아키텍처
- Linux (x86_64, s390x, ppc64le)
- macOS
1.7.4.3.3. 클러스터 가져오기
에이전트 등록 끝점을 사용하여 관리 클러스터를 가져오려면 다음 단계를 완료합니다.
hub 클러스터에서 다음 명령을 실행하여 에이전트 등록 서버 URL을 가져옵니다.
export agent_registration_host=$(oc get route -n multicluster-engine agent-registration -o=jsonpath="{.spec.host}")
참고: 허브 클러스터가 클러스터 전체 프록시를 사용하는 경우 관리 클러스터가 액세스할 수 있는 URL을 사용하고 있는지 확인합니다.
다음 명령을 실행하여 cacert를 가져옵니다.
oc get configmap -n kube-system kube-root-ca.crt -o=jsonpath="{.data['ca\.crt']}" > ca.crt_
참고:
kube-root-ca
발행 엔드포인트를 사용하지 않는 경우kube-root-ca
CA 대신 공용agent-registration
API 끝점 CA를 사용합니다.다음 YAML 콘텐츠를 적용하여 에이전트 등록용 토큰을 가져옵니다.
apiVersion: v1 kind: ServiceAccount metadata: name: managed-cluster-import-agent-registration-sa namespace: multicluster-engine --- apiVersion: v1 kind: Secret type: kubernetes.io/service-account-token metadata: name: managed-cluster-import-agent-registration-sa-token namespace: multicluster-engine annotations: kubernetes.io/service-account.name: "managed-cluster-import-agent-registration-sa" --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: managedcluster-import-controller-agent-registration-client rules: - nonResourceURLs: ["/agent-registration/*"] verbs: ["get"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: managed-cluster-import-agent-registration roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: managedcluster-import-controller-agent-registration-client subjects: - kind: ServiceAccount name: managed-cluster-import-agent-registration-sa namespace: multicluster-engine
다음 명령을 실행하여 토큰을 내보냅니다.
export token=$(oc get secret -n multicluster-engine managed-cluster-import-agent-registration-sa-token -o=jsonpath='{.data.token}' | base64 -d)
자동 승인을 활성화하고 다음 명령을 실행하여 콘텐츠를
cluster-manager
에 패치합니다.oc patch clustermanager cluster-manager --type=merge -p '{"spec":{"registrationConfiguration":{"featureGates":[ {"feature": "ManagedClusterAutoApproval", "mode": "Enable"}], "autoApproveUsers":["system:serviceaccount:multicluster-engine:agent-registration-bootstrap"]}}}'
참고: 자동 승인을 비활성화하고 관리 클러스터에서 인증서 서명 요청을 수동으로 승인할 수도 있습니다.
관리 클러스터로 전환하고 다음 명령을 실행하여 cacert를 가져옵니다.
curl --cacert ca.crt -H "Authorization: Bearer $token" https://$agent_registration_host/agent-registration/crds/v1 | oc apply -f -
다음 명령을 실행하여 관리 클러스터를 hub 클러스터로 가져옵니다. &
lt;clusterName
>을 클러스터 이름으로 바꿉니다. <duration&
gt;을 시간 값으로 바꿉니다. 예:4h
:선택 사항: &
lt;klusterletconfigName
>을 KlusterletConfig의 이름으로 바꿉니다.curl --cacert ca.crt -H "Authorization: Bearer $token" https://$agent_registration_host/agent-registration/manifests/<clusterName>?klusterletconfig=<klusterletconfigName>&duration=<duration> | oc apply -f -
참고: 기간을 설정하지 않으면 klusterlet 매니페스트의
kubeconfig
부트스트랩이 만료되지 않습니다.
1.7.4.4. 중앙 인프라 관리를 사용하여 온프레미스 Red Hat OpenShift Container Platform 클러스터를 수동으로 가져오기
Kubernetes Operator용 다중 클러스터 엔진을 설치한 후 관리 클러스터를 가져올 준비가 된 것입니다. 추가 노드를 추가할 수 있도록 기존 OpenShift Container Platform 클러스터를 가져올 수 있습니다. 자세한 내용을 보려면 다음 항목을 계속 읽으십시오.
1.7.4.4.1. 사전 요구 사항
- 중앙 인프라 관리 기능을 활성화합니다.
1.7.4.4.2. 클러스터 가져오기
정적 네트워크 또는 베어 메탈 호스트 없이 수동으로 OpenShift Container Platform 클러스터를 가져오려면 다음 단계를 완료하고 노드 추가를 준비합니다.
다음 YAML 콘텐츠를 적용하여 가져올 OpenShift Container Platform 클러스터의 네임스페이스를 생성합니다.
apiVersion: v1 kind: Namespace metadata: name: managed-cluster
다음 YAML 콘텐츠를 적용하여 가져오는 OpenShift Container Platform 클러스터와 일치하는 ClusterImageSet이 있는지 확인합니다.
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: openshift-v4.15 spec: releaseImage: quay.io/openshift-release-dev/ocp-release@sha256:22e149142517dfccb47be828f012659b1ccf71d26620e6f62468c264a7ce7863
다음 YAML 콘텐츠를 적용하여 이미지에 액세스할 풀 시크릿을 추가합니다.
apiVersion: v1 kind: Secret type: kubernetes.io/dockerconfigjson metadata: name: pull-secret namespace: managed-cluster stringData: .dockerconfigjson: <pull-secret-json> 1
- 1
- <pull-secret-json>을 풀 시크릿 JSON으로 바꿉니다.
OpenShift Container Platform 클러스터에서 hub 클러스터에
kubeconfig
를 복사합니다.다음 명령을 실행하여 OpenShift Container Platform 클러스터에서
kubeconfig
를 가져옵니다.kubeconfig
를 가져오는 클러스터로 설정되어 있는지 확인합니다.oc get secret -n openshift-kube-apiserver node-kubeconfigs -ojson | jq '.data["lb-ext.kubeconfig"]' --raw-output | base64 -d > /tmp/kubeconfig.some-other-cluster
참고: 사용자 정의 도메인을 통해 클러스터 API에 액세스하는 경우 먼저
certificate-authority-data
필드에 사용자 정의 인증서를 추가하고 사용자 정의 도메인과 일치하도록server
필드를 변경하여 이kubeconfig
를 편집해야 합니다.다음 명령을 실행하여
kubeconfig
를 hub 클러스터에 복사합니다.kubeconfig
가 hub 클러스터로 설정되어 있는지 확인합니다.oc -n managed-cluster create secret generic some-other-cluster-admin-kubeconfig --from-file=kubeconfig=/tmp/kubeconfig.some-other-cluster
다음 YAML 콘텐츠를 적용하여
AgentClusterInstall
사용자 지정 리소스를 생성합니다. 필요한 경우 값을 바꿉니다.apiVersion: extensions.hive.openshift.io/v1beta1 kind: AgentClusterInstall metadata: name: <your-cluster-name> 1 namespace: <managed-cluster> spec: networking: userManagedNetworking: true clusterDeploymentRef: name: <your-cluster> imageSetRef: name: openshift-v4.11.18 provisionRequirements: controlPlaneAgents: 2 sshPublicKey: <""> 3
다음 YAML 콘텐츠를 적용하여
ClusterDeployment
을 생성합니다. 필요한 경우 값을 바꿉니다.apiVersion: hive.openshift.io/v1 kind: ClusterDeployment metadata: name: <your-cluster-name> 1 namespace: managed-cluster spec: baseDomain: <redhat.com> 2 installed: <true> 3 clusterMetadata: adminKubeconfigSecretRef: name: <your-cluster-name-admin-kubeconfig> 4 clusterID: <""> 5 infraID: <""> 6 clusterInstallRef: group: extensions.hive.openshift.io kind: AgentClusterInstall name: your-cluster-name-install version: v1beta1 clusterName: your-cluster-name platform: agentBareMetal: pullSecretRef: name: pull-secret
InfraEnv
사용자 지정 리소스를 추가하여 다음 YAML 콘텐츠를 적용하여 클러스터에 추가할 새 호스트를 검색합니다. 필요한 경우 값을 바꿉니다.참고: 고정 IP 주소를 사용하지 않는 경우 다음 예제에 추가 구성이 필요할 수 있습니다.
apiVersion: agent-install.openshift.io/v1beta1 kind: InfraEnv metadata: name: your-infraenv namespace: managed-cluster spec: clusterRef: name: your-cluster-name namespace: managed-cluster pullSecretRef: name: pull-secret sshAuthorizedKey: ""
필드 | 선택 사항 또는 필수 | 설명 |
---|---|---|
| 선택 사항 |
late binding을 사용하는 경우 |
| 선택 사항 |
선택적 |
가져오기에 성공하면 ISO 파일을 다운로드할 URL이 표시됩니다. 다음 명령을 실행하여 ISO 파일을 다운로드하여 <url>을 표시되는 URL로 바꿉니다.
참고: 베어 메탈 호스트를 사용하여 호스트 검색을 자동화할 수 있습니다.
oc get infraenv -n managed-cluster some-other-infraenv -ojson | jq ".status.<url>" --raw-output | xargs curl -k -o /storage0/isos/some-other.iso
-
선택 사항: OpenShift Container Platform 클러스터에서 정책과 같은 Red Hat 고급 클러스터 관리 기능을 사용하려면
ManagedCluster
리소스를 생성합니다.ManagedCluster
리소스의 이름이ClusterDeplpoyment
리소스의 이름과 일치하는지 확인합니다.ManagedCluster
리소스가 없으면 콘솔에서 클러스터 상태가분리됩니다
.
1.7.4.4.3. 클러스터 리소스 가져오기
지원 설치 관리자에서 OpenShift Container Platform 관리 클러스터를 설치한 경우 관리 클러스터 및 해당 리소스를 Hub 클러스터에서 다른 허브 클러스터로 이동할 수 있습니다.
다음 리소스를 가져오고 클러스터를 계속 관리할 수 있습니다.
-
agent
-
AgentClassification
-
AgentClusterInstall
-
BareMetalHost
-
ClusterDeployment
-
InfraEnv
-
NMStateConfig
원래 리소스의 복사본을 생성하고 새 허브 클러스터에 적용하여 새 허브 클러스터에서 클러스터를 관리할 수 있습니다. 그런 다음 새 허브 클러스터에서 관리 클러스터를 축소하거나 확장할 수 있습니다.
중요: 지원 설치 관리자가 설치한 경우에만 가져온 OpenShift Container Platform 관리 클러스터를 축소할 수 있습니다.
대상 허브 클러스터에서 리소스의 복사본을 생성하여 클러스터 리소스를 가져옵니다. 에이전트
리소스의 복사본을 생성하고 다른 리소스에 유사한 단계를 적용하는 방법을 알아보려면 다음 예제를 참조하십시오.
다음 명령을 실행하여 소스 허브 클러스터에서
에이전트
리소스를 가져옵니다. 필요한 경우 값을 바꿉니다.oc –kubeconfig <source_hub_kubeconfig> -n <managed_cluster_name> get agent <cluster_provisioning_namespace> -oyaml > agent.yaml
다음 명령을 실행하여 대상 허브 클러스터에
에이전트
리소스를 적용합니다. 필요한 경우 값을 바꿉니다.oc –kubeconfig <target_hub_kubeconfig> apply -f agent.yaml
클러스터 리소스를 가져온 후 소스 허브 클러스터에서 원래 클러스터 리소스를 삭제합니다.
1.7.4.5. 가져오기를 위해 관리 클러스터에서 이미지 레지스트리 지정
가져오는 관리 클러스터에서 이미지 레지스트리를 재정의해야 할 수 있습니다. ManagedClusterImageRegistry
사용자 정의 리소스 정의를 생성하여 이 작업을 수행할 수 있습니다.
ManagedClusterImageRegistry
사용자 정의 리소스 정의는 네임스페이스 범위 리소스입니다.
ManagedClusterImageRegistry
사용자 정의 리소스 정의는 배치를 선택할 수 있도록 관리 클러스터 세트를 지정하지만 사용자 정의 이미지 레지스트리의 다른 이미지가 필요합니다. 관리 클러스터가 새 이미지로 업데이트되면 식별을 위해 각 관리 클러스터에 다음 레이블이 추가됩니다. open-cluster-management.io/image-registry=<namespace>.<managedClusterImageRegistryName
> .
다음 예제는 ManagedClusterImageRegistry
사용자 정의 리소스 정의를 보여줍니다.
apiVersion: imageregistry.open-cluster-management.io/v1alpha1 kind: ManagedClusterImageRegistry metadata: name: <imageRegistryName> namespace: <namespace> spec: placementRef: group: cluster.open-cluster-management.io resource: placements name: <placementName> 1 pullSecret: name: <pullSecretName> 2 registries: 3 - mirror: <mirrored-image-registry-address> source: <image-registry-address> - mirror: <mirrored-image-registry-address> source: <image-registry-address>
- 1
- 을 관리 클러스터 세트를 선택하는 동일한 네임스페이스에서 배치 이름으로 바꿉니다.
- 2
- 을 사용자 정의 이미지 레지스트리에서 이미지를 가져오는 데 사용되는 풀 시크릿의 이름으로 바꿉니다.
- 3
- 각
소스
및미러
레지스트리의 값을 나열합니다.mirrored-image-registry-address
및image-registry-address
를 레지스트리의 각미러
및소스
값 값으로 바꿉니다.-
예 1:
registry.redhat.io/rhacm2
라는 소스 이미지 레지스트리를localhost:5000/rhacm2
로 교체하고registry.redhat.io/multicluster-engine
을localhost:5000/multicluster-engine
으로 교체하려면 다음 예제를 사용합니다.
-
예 1:
registries: - mirror: localhost:5000/rhacm2/ source: registry.redhat.io/rhacm2 - mirror: localhost:5000/multicluster-engine source: registry.redhat.io/multicluster-engine
예 2: 소스 이미지
registry.redhat.io/rhacm2/registration-rhel8-operator
를localhost:5000/rhacm2-registration-rhel8-operator
로 교체하려면 다음 예제를 사용합니다.registries: - mirror: localhost:5000/rhacm2-registration-rhel8-operator source: registry.redhat.io/rhacm2/registration-rhel8-operator
중요: 에이전트 등록을 사용하여 관리 클러스터를 가져오는 경우 이미지 레지스트리가 포함된 KlusterletConfig
를 생성해야 합니다. 다음 예제를 참조하십시오. 필요한 경우 값을 바꿉니다.
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: <klusterletconfigName> spec: pullSecret: namespace: <pullSecretNamespace> name: <pullSecretName> registries: - mirror: <mirrored-image-registry-address> source: <image-registry-address> - mirror: <mirrored-image-registry-address> source: <image-registry-address>
자세한 내용은 에이전트 등록 끝점을 사용하여 관리 클러스터 가져오기 를 참조하십시오.
1.7.4.5.1. ManagedClusterImageRegistry가 있는 클러스터 가져오기
ManagedClusterImageRegistry 사용자 정의 리소스 정의로 사용자 지정된 클러스터를 가져오려면 다음 단계를 완료합니다.
클러스터를 가져올 네임스페이스에 풀 시크릿을 생성합니다. 이러한 단계의 경우 네임스페이스는
myNamespace
입니다.$ kubectl create secret docker-registry myPullSecret \ --docker-server=<your-registry-server> \ --docker-username=<my-name> \ --docker-password=<my-password>
생성한 네임스페이스에 배치를 생성합니다.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: myPlacement namespace: myNamespace spec: clusterSets: - myClusterSet tolerations: - key: "cluster.open-cluster-management.io/unreachable" operator: Exists
참고: 배치에서 클러스터를 선택할 수 있으려면
연결할 수 없는
허용 오차가 필요합니다.ManagedClusterSet
리소스를 생성하여 네임스페이스에 바인딩합니다.apiVersion: cluster.open-cluster-management.io/v1beta2 kind: ManagedClusterSet metadata: name: myClusterSet --- apiVersion: cluster.open-cluster-management.io/v1beta2 kind: ManagedClusterSetBinding metadata: name: myClusterSet namespace: myNamespace spec: clusterSet: myClusterSet
네임스페이스에
ManagedClusterImageRegistry
사용자 정의 리소스 정의를 생성합니다.apiVersion: imageregistry.open-cluster-management.io/v1alpha1 kind: ManagedClusterImageRegistry metadata: name: myImageRegistry namespace: myNamespace spec: placementRef: group: cluster.open-cluster-management.io resource: placements name: myPlacement pullSecret: name: myPullSecret registry: myRegistryAddress
- 콘솔에서 관리 클러스터를 가져와서 관리 클러스터 세트에 추가합니다.
-
open-cluster-management.io/image-registry=myNamespace.myImageRegistry
레이블이 관리 클러스터에 추가된 후 관리 클러스터에서 가져오기 명령을 복사하여 실행합니다.
1.7.5. 클러스터에 액세스
생성 및 관리되는 Red Hat OpenShift Container Platform 클러스터에 액세스하려면 다음 단계를 완료하십시오.
- 콘솔에서 Infrastructure > Clusters 로 이동하여 생성 또는 액세스하려는 클러스터의 이름을 선택합니다.
Reveal 인증 정보를 선택하여 클러스터의 사용자 이름 및 암호를 확인합니다. 클러스터에 로그인할 때 사용할 값을 확인합니다.
참고: 가져온 클러스터에는 Reveal credentials 옵션을 사용할 수 없습니다.
- Console URL 을 선택하여 클러스터에 연결합니다.
- 3단계에서 찾은 사용자 ID 및 암호를 사용하여 클러스터에 로그인합니다.
1.7.6. 관리형 클러스터 확장
생성한 클러스터의 경우 가상 머신 크기 및 노드 수와 같은 관리형 클러스터 사양을 사용자 지정하고 조정할 수 있습니다. 클러스터 배포를 위해 설치 관리자 프로비저닝 인프라를 사용하는 경우 다음 옵션을 참조하십시오.
클러스터 배포를 위해 중앙 인프라 관리를 사용하는 경우 다음 옵션을 참조하십시오.
1.7.6.1. MachinePool로 스케일링
다중 클러스터 엔진 Operator로 프로비저닝하는 클러스터의 경우 MachinePool
리소스가 자동으로 생성됩니다. MachinePool
을 사용하여 가상 머신 크기 및 노드 수와 같은 관리형 클러스터 사양을 추가로 사용자 지정하고 크기를 조정할 수 있습니다.
-
베어 메탈 클러스터에서는
MachinePool
리소스 사용이 지원되지 않습니다. -
MachinePool
리소스는 hub 클러스터의 Kubernetes 리소스로, 관리 클러스터에서MachineSet
리소스를 함께 그룹화합니다. -
MachinePool
리소스는 영역 구성, 인스턴스 유형 및 루트 스토리지를 포함하여 머신 리소스 세트를 균일하게 구성합니다. -
MachinePool
을 사용하면 원하는 수의 노드를 수동으로 구성하거나 관리 클러스터에서 노드 자동 스케일링을 구성할 수 있습니다.
1.7.6.1.1. 자동 스케일링 구성
자동 스케일링을 구성하면 트래픽이 낮을 때 축소하여 리소스 비용을 낮추고 리소스 수요가 많을 때 리소스가 충분한지 확인하기 위해 확장 가능한 클러스터의 유연성을 제공합니다.
콘솔을 사용하여
MachinePool
리소스에서 자동 스케일링을 활성화하려면 다음 단계를 완료합니다.- 탐색에서 Infrastructure > Clusters 를 선택합니다.
- 대상 클러스터의 이름을 클릭하고 머신 풀 탭을 선택합니다.
- 머신 풀 페이지의 대상 머신 풀의 옵션 메뉴에서 자동 스케일링 사용을 선택합니다.
최소 및 최대 머신 세트 복제본 수를 선택합니다. 머신 세트 복제본은 클러스터의 노드에 직접 매핑됩니다.
크기 조정을 클릭한 후 콘솔을 반영하는 데 몇 분이 걸릴 수 있습니다. 머신 풀 알림에서 머신 풀 보기를 클릭하여 스케일링 작업의 상태를 볼 수 있습니다.
명령줄을 사용하여
MachinePool
리소스에서 자동 스케일링을 활성화하려면 다음 단계를 완료합니다.다음 명령을 입력하여 머신 풀 목록을 보고
managed-cluster-namespace
를 대상 관리 클러스터의 네임스페이스로 교체합니다.oc get machinepools -n <managed-cluster-namespace>
다음 명령을 입력하여 머신 풀의 YAML 파일을 편집합니다.
oc edit machinepool <MachinePool-resource-name> -n <managed-cluster-namespace>
-
MachinePool-resource-name
을MachinePool
리소스의 이름으로 바꿉니다. -
managed-cluster-namespace
를 관리 클러스터의 네임스페이스 이름으로 교체합니다.
-
-
YAML 파일에서
spec.replicas
필드를 삭제합니다. -
spec.autoscaling.minReplicas
설정 및spec.autoscaling.maxReplicas
필드를 리소스 YAML에 추가합니다. -
minReplicas
설정에 최소 복제본 수를 추가합니다. -
maxReplicas
설정에 최대 복제본 수를 추가합니다. - 파일을 저장하여 변경 사항을 제출합니다.
1.7.6.1.2. 자동 스케일링 비활성화
콘솔 또는 명령줄을 사용하여 자동 스케일링을 비활성화할 수 있습니다.
콘솔을 사용하여 자동 스케일링을 비활성화하려면 다음 단계를 완료합니다.
- 탐색에서 Infrastructure > Clusters 를 선택합니다.
- 대상 클러스터의 이름을 클릭하고 머신 풀 탭을 선택합니다.
- 시스템 풀 페이지의 대상 시스템 풀의 옵션 메뉴에서 자동 스케일링 비활성화 를 선택합니다.
원하는 머신 세트 복제본 수를 선택합니다. 머신 세트 복제본은 클러스터의 노드와 직접 매핑됩니다.
스케일 을 클릭하면 콘솔에 표시되는 데 몇 분이 걸릴 수 있습니다. 머신 풀 탭의 알림에서 머신 보기를 클릭하여 스케일링 상태를 볼 수 있습니다.
명령줄을 사용하여 자동 스케일링을 비활성화하려면 다음 단계를 완료합니다.
다음 명령을 입력하여 머신 풀 목록을 확인합니다.
oc get machinepools -n <managed-cluster-namespace>
managed-cluster-namespace
를 대상 관리 클러스터의 네임스페이스로 교체합니다.다음 명령을 입력하여 머신 풀의 YAML 파일을 편집합니다.
oc edit machinepool <name-of-MachinePool-resource> -n <namespace-of-managed-cluster>
name-of-MachinePool-resource
를MachinePool
리소스의 이름으로 교체합니다.namespace-of-managed-cluster
를 관리 클러스터의 네임스페이스 이름으로 교체합니다.-
YAML 파일에서
spec.autoscaling
필드를 삭제합니다. -
spec.replicas
필드를 리소스 YAML에 추가합니다. -
replicas
설정에 복제본 수를 추가합니다. - 파일을 저장하여 변경 사항을 제출합니다.
1.7.6.1.3. 수동 스케일링 활성화
콘솔과 명령줄에서 수동으로 확장할 수 있습니다.
1.7.6.1.3.1. 콘솔을 사용하여 수동 스케일링 활성화
콘솔을 사용하여 MachinePool
리소스를 확장하려면 다음 단계를 완료합니다.
-
MachinePool
이 활성화된 경우 자동 스케일링을 비활성화합니다. 이전 단계를 참조하십시오. - 콘솔에서 인프라 > 클러스터를 클릭합니다.
- 대상 클러스터의 이름을 클릭하고 머신 풀 탭을 선택합니다.
- 머신 풀 페이지의 대상 머신 풀 의 옵션 메뉴에서 머신 풀 스케일링을 선택합니다.
- 원하는 머신 세트 복제본 수를 선택합니다. 머신 세트 복제본은 클러스터의 노드와 직접 매핑됩니다. 크기 조정을 클릭한 후 콘솔을 반영하는 데 몇 분이 걸릴 수 있습니다. 머신 풀 탭 알림에서 머신 보기를 클릭하여 스케일링 작업의 상태를 볼 수 있습니다.
1.7.6.1.3.2. 명령줄을 사용하여 수동 스케일링 활성화
명령줄을 사용하여 MachinePool
리소스를 확장하려면 다음 단계를 완료합니다.
다음 명령을 입력하여 머신 풀 목록을 보고 <
managed-cluster-namespace
>를 대상 관리 클러스터 네임스페이스의 네임스페이스로 교체합니다.oc get machinepools -n <managed-cluster-namespace>
다음 명령을 입력하여 머신 풀의 YAML 파일을 편집합니다.
oc edit machinepool <MachinePool-resource-name> -n <managed-cluster-namespace>
-
MachinePool-resource-name
을MachinePool
리소스의 이름으로 바꿉니다. -
managed-cluster-namespace
를 관리 클러스터의 네임스페이스 이름으로 교체합니다.
-
-
YAML 파일에서
spec.autoscaling
필드를 삭제합니다. -
YAML 파일의
spec.replicas
필드를 원하는 복제본 수로 수정합니다. - 파일을 저장하여 변경 사항을 제출합니다.
1.7.6.2. OpenShift Container Platform 클러스터에 작업자 노드 추가
중앙 인프라 관리를 사용하는 경우 추가 프로덕션 환경 노드를 추가하여 OpenShift Container Platform 클러스터를 사용자 지정할 수 있습니다.
필수 액세스: 관리자
1.7.6.2.1. 사전 요구 사항
관리 클러스터 API를 신뢰하는 데 필요한 새 CA 인증서가 있어야 합니다.
1.7.6.2.2. 유효한 kubeconfig
생성
프로덕션 환경 작업자 노드를 OpenShift Container Platform 클러스터에 추가하기 전에 유효한 kubeconfig
가 있는지 확인해야 합니다.
관리 클러스터의 API 인증서가 변경되면 다음 단계를 완료하여 kubeconfig
를 새 CA 인증서로 업데이트합니다.
다음 명령을 실행하여
clusterDeployment
의kubeconfig
가 유효한지 확인합니다. <kubeconfig_name
>을 현재kubeconfig
이름으로 바꾸고 <cluster_name
>을 클러스터 이름으로 바꿉니다.export <kubeconfig_name>=$(oc get cd $<cluster_name> -o "jsonpath={.spec.clusterMetadata.adminKubeconfigSecretRef.name}") oc extract secret/$<kubeconfig_name> --keys=kubeconfig --to=- > original-kubeconfig oc --kubeconfig=original-kubeconfig get node
다음 오류 메시지가 표시되면
kubeconfig
시크릿을 업데이트해야 합니다. 오류 메시지가 표시되지 않으면 계속 작업자 노드 추가:Unable to connect to the server: tls: failed to verify certificate: x509: certificate signed by unknown authority
kubeconfig
certificate-authority-data
필드에서base64
로 인코딩된 인증서 번들을 가져오고 다음 명령을 실행하여 디코딩합니다.echo <base64 encoded blob> | base64 --decode > decoded-existing-certs.pem
원본 파일을 복사하여 업데이트된
kubeconfig
파일을 생성합니다. 다음 명령을 실행하고 <new_kubeconfig_name>
;을 새kubeconfig
파일의 이름으로 바꿉니다.cp original-kubeconfig <new_kubeconfig_name>
다음 명령을 실행하여 디코딩된 pem에 새 인증서를 추가합니다.
cat decoded-existing-certs.pem new-ca-certificate.pem | openssl base64 -A
-
이전 명령의
base64
출력을 텍스트 편집기를 사용하여 새kubeconfig
파일의certificate-authority-data
키 값으로 추가합니다. 새
kubeconfig
로 API를 쿼리하여 새kubeconfig
가 유효한지 확인합니다. 다음 명령을 실행합니다. <new_kubeconfig_name&
gt;을 새kubeconfig
파일의 이름으로 바꿉니다.KUBECONFIG=<new_kubeconfig_name> oc get nodes
성공적인 출력이 표시되면
kubeconfig
가 유효합니다.다음 명령을 실행하여 Red Hat Advanced Cluster Management Hub 클러스터에서
kubeconfig
시크릿을 업데이트합니다. <new_kubeconfig_name&
gt;을 새kubeconfig
파일의 이름으로 바꿉니다.oc patch secret $original-kubeconfig --type='json' -p="[{'op': 'replace', 'path': '/data/kubeconfig', 'value': '$(openssl base64 -A -in <new_kubeconfig_name>)'},{'op': 'replace', 'path': '/data/raw-kubeconfig', 'value': '$(openssl base64 -A -in <new_kubeconfig_name>)'}]"
1.7.6.2.3. 작업자 노드 추가
유효한 kubeconfig
가 있는 경우 다음 단계를 완료하여 OpenShift Container Platform 클러스터에 프로덕션 환경 작업자 노드를 추가합니다.
이전에 다운로드한 ISO에서 작업자 노드로 사용할 시스템을 부팅합니다.
참고: 작업자 노드가 OpenShift Container Platform 작업자 노드의 요구 사항을 충족하는지 확인합니다.
다음 명령을 실행한 후 에이전트가 등록할 때까지 기다립니다.
watch -n 5 "oc get agent -n managed-cluster"
에이전트 등록이 성공적으로 완료되면 에이전트가 나열됩니다. 설치를 위한 에이전트를 승인합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
참고: 에이전트가 나열되지 않은 경우 Ctrl 및 C를 눌러
watch
명령을 종료한 다음 작업자 노드에 로그인하여 문제를 해결합니다.늦은 바인딩을 사용하는 경우 다음 명령을 실행하여 보류 중인 바인딩되지 않은 에이전트를 OpenShift Container Platform 클러스터와 연결합니다. late binding을 사용하지 않는 경우 5 단계로 건너뜁니다.
oc get agent -n managed-cluster -ojson | jq -r '.items[] | select(.spec.approved==false) |select(.spec.clusterDeploymentName==null) | .metadata.name'| xargs oc -n managed-cluster patch -p '{"spec":{"clusterDeploymentName":{"name":"some-other-cluster","namespace":"managed-cluster"}}}' --type merge agent
다음 명령을 실행하여 설치 대기 중인 에이전트를 승인합니다.
oc get agent -n managed-cluster -ojson | jq -r '.items[] | select(.spec.approved==false) | .metadata.name'| xargs oc -n managed-cluster patch -p '{"spec":{"approved":true}}' --type merge agent
작업자 노드의 설치를 기다립니다. 작업자 노드 설치가 완료되면 작업자 노드는 가입 프로세스를 시작하기 위해 작업자 노드에 CSR(인증서 서명 요청)과 함께 관리 클러스터에 연결합니다. CSR이 자동으로 서명됩니다.
1.7.6.3. 관리 클러스터에 컨트롤 플레인 노드 추가
정상 또는 비정상적인 관리 클러스터에 컨트롤 플레인 노드를 추가하여 실패한 컨트롤 플레인을 교체할 수 있습니다.
필수 액세스: 관리자
1.7.6.3.1. 정상 관리형 클러스터에 컨트롤 플레인 노드 추가
정상 관리 클러스터에 컨트롤 플레인 노드를 추가하려면 다음 단계를 완료합니다.
- 새 컨트롤 플레인 노드의 OpenShift Container Platform 클러스터에 작업자 노드 추가 단계를 완료합니다.
다음 명령을 실행하여 에이전트를 승인하기 전에 에이전트를
master
로 설정합니다.oc patch agent <AGENT-NAME> -p '{"spec":{"role": "master"}}' --type=merge
참고: CSR은 자동으로 승인되지 않습니다.
- OpenShift Container Platform 설명서의 지원 설치 관리자에서 정상 클러스터에 기본 컨트롤 플레인 노드 설치 단계를 따르십시오.
1.7.6.3.2. 비정상 관리형 클러스터에 컨트롤 플레인 노드 추가
비정상적인 관리 클러스터에 컨트롤 플레인 노드를 추가하려면 다음 단계를 완료합니다.
- 비정상 컨트롤 플레인 노드의 에이전트를 제거합니다.
- 배포에 제로터치 프로비저닝 흐름을 사용한 경우 베어 메탈 호스트를 제거합니다.
- 새 컨트롤 플레인 노드의 OpenShift Container Platform 클러스터에 작업자 노드 추가 단계를 완료합니다.
다음 명령을 실행하여 에이전트를 승인하기 전에 에이전트를
master
로 설정합니다.oc patch agent <AGENT-NAME> -p '{"spec":{"role": "master"}}' --type=merge
참고: CSR은 자동으로 승인되지 않습니다.
- OpenShift Container Platform 설명서의 지원 설치 관리자의 비정상 클러스터에 기본 컨트롤 플레인 노드 설치 단계를 따르십시오.
1.7.7. 생성된 클러스터 완화
리소스를 절약하기 위해 다중 클러스터 엔진 Operator를 사용하여 생성된 클러스터를 구성할 수 있습니다. 하이버네이션 클러스터의 경우 실행 중인 리소스보다 리소스가 훨씬 적기 때문에 클러스터를 하이버네이트 상태로 전환하여 공급자 비용을 줄일 수 있습니다. 이 기능은 다음 환경에서 다중 클러스터 엔진 Operator가 생성한 클러스터에만 적용됩니다.
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
1.7.7.1. 콘솔을 사용하여 클러스터 Hibernate
콘솔을 사용하여 다중 클러스터 엔진 Operator가 생성한 클러스터를 hibernate하려면 다음 단계를 완료하십시오.
- 탐색 메뉴에서 Infrastructure > Clusters 를 선택합니다. Manage clusters 탭이 선택되어 있는지 확인합니다.
- 클러스터의 옵션 메뉴에서 Hibernate 클러스터를 선택합니다. 참고: Hibernate 클러스터 옵션을 사용할 수 없는 경우 클러스터를 최대로 설정할 수 없습니다. 이는 클러스터를 가져오고 다중 클러스터 엔진 Operator에 의해 생성되지 않을 때 발생할 수 있습니다.
프로세스가 완료되면 Clusters 페이지의 클러스터 상태는 Hibernating
입니다.
팁: 클러스터 페이지에서 hibernate를 선택하고 작업 > Hibernate 클러스터를 선택하여 여러 클러스터를 구성할 수 있습니다.
선택한 클러스터가 손상되고 있습니다.
1.7.7.2. CLI를 사용하여 클러스터 Hibernate
CLI를 사용하여 다중 클러스터 엔진 Operator가 생성한 클러스터를 hibernate하려면 다음 단계를 완료하십시오.
다음 명령을 입력하여 hibernate로 클러스터 설정을 편집합니다.
oc edit clusterdeployment <name-of-cluster> -n <namespace-of-cluster>
name-of-cluster
를 hibernate할 클러스터 이름으로 교체합니다.hibernate로
namespace-of-cluster
를 클러스터의 네임스페이스로 바꿉니다.-
spec.powerState
의 값을Hibernating
로 변경합니다. 다음 명령을 입력하여 클러스터 상태를 확인합니다.
oc get clusterdeployment <name-of-cluster> -n <namespace-of-cluster> -o yaml
name-of-cluster
를 hibernate할 클러스터 이름으로 교체합니다.hibernate로
namespace-of-cluster
를 클러스터의 네임스페이스로 바꿉니다.클러스터 완화 프로세스가 완료되면 클러스터 유형 값은
type=Hibernating
입니다.
선택한 클러스터가 손상되고 있습니다.
1.7.7.3. 콘솔을 사용하여 하이버네이트 클러스터의 정상적인 작동 다시 시작
콘솔을 사용하여 하이버네이트 클러스터의 정상적인 작업을 다시 시작하려면 다음 단계를 완료하십시오.
- 탐색 메뉴에서 Infrastructure > Clusters 를 선택합니다. Manage clusters 탭이 선택되어 있는지 확인합니다.
- 재개할 클러스터의 옵션 메뉴에서 Resume 클러스터를 선택합니다.
프로세스가 완료되면 클러스터 페이지의 클러스터 상태는 Ready
입니다.
팁: 클러스터 페이지에서 다시 시작하려는 클러스터를 선택하고 작업 > 클러스터 재배치를 선택하여 여러 클러스터를 재개할 수 있습니다.
선택한 클러스터가 정상적인 작업을 다시 시작합니다.
1.7.7.4. CLI를 사용하여 하이버네이트 클러스터의 정상적인 작동 다시 시작
CLI를 사용하여 하이버네이트 클러스터의 정상적인 작업을 다시 시작하려면 다음 단계를 완료하십시오.
다음 명령을 입력하여 클러스터 설정을 편집합니다.
oc edit clusterdeployment <name-of-cluster> -n <namespace-of-cluster>
name-of-cluster
를 hibernate할 클러스터 이름으로 교체합니다.hibernate로
namespace-of-cluster
를 클러스터의 네임스페이스로 바꿉니다.-
spec.powerState
의 값을Running
으로 변경합니다. 다음 명령을 입력하여 클러스터 상태를 확인합니다.
oc get clusterdeployment <name-of-cluster> -n <namespace-of-cluster> -o yaml
name-of-cluster
를 hibernate할 클러스터 이름으로 교체합니다.hibernate로
namespace-of-cluster
를 클러스터의 네임스페이스로 바꿉니다.클러스터 재시작 프로세스가 완료되면 클러스터 유형 값은
type=Running
입니다.
선택한 클러스터가 정상적인 작업을 다시 시작합니다.
1.7.8. 클러스터 업그레이드
다중 클러스터 엔진 Operator로 관리하려는 Red Hat OpenShift Container Platform 클러스터를 생성한 후 다중 클러스터 엔진 Operator 콘솔을 사용하여 해당 클러스터를 관리 클러스터가 사용하는 버전 채널에서 사용 가능한 최신 마이너 버전으로 업그레이드할 수 있습니다.
연결된 환경에서는 콘솔에서 업그레이드가 필요한 각 클러스터에 대해 제공되는 알림으로 업데이트가 자동으로 식별됩니다.
1.7.8.1. 사전 요구 사항
해당 버전으로 업그레이드하기 위한 모든 사전 요구 사항을 충족하는지 확인합니다. 콘솔을 사용하여 클러스터를 업그레이드하기 전에 관리 클러스터에서 버전 채널을 업데이트해야 합니다.
참고: 관리 클러스터에서 버전 채널을 업데이트한 후 다중 클러스터 엔진 Operator 콘솔에 업그레이드에 사용 가능한 최신 버전이 표시됩니다.
- OpenShift Container Platform 관리 클러스터는 Ready 상태에 있어야 합니다.
중요: 다중 클러스터 엔진 Operator 콘솔을 사용하여 Red Hat OpenShift Dedicated에서 Red Hat OpenShift Kubernetes Service 관리 클러스터 또는 OpenShift Container Platform 관리 클러스터를 업그레이드할 수 없습니다.
1.7.8.2. 연결된 환경에서 클러스터 업그레이드
연결된 환경에서 클러스터를 업그레이드하려면 다음 단계를 완료합니다.
- 탐색 메뉴에서 Infrastructure > Clusters 로 이동합니다. 업그레이드를 사용할 수 있는 경우 배포 버전 열에 표시됩니다.
- 업그레이드할 클러스터를 Ready 상태로 선택합니다. 콘솔의 OpenShift Container Platform 클러스터만 업그레이드할 수 있습니다.
- 업그레이드 를 선택합니다.
- 각 클러스터의 새 버전을 선택합니다.
- 업그레이드 를 선택합니다.
클러스터 업그레이드에 실패하면 Operator는 일반적으로 업그레이드를 몇 번 재시도하고 중지한 후 실패한 구성 요소의 상태를 보고합니다. 경우에 따라 업그레이드 프로세스가 프로세스를 완료하려는 시도를 계속 순환합니다. 업그레이드 실패 후 클러스터를 이전 버전으로 롤백하는 것은 지원되지 않습니다. 클러스터 업그레이드에 실패하는 경우 Red Hat 지원에 문의하십시오.
1.7.8.3. 채널 선택
콘솔을 사용하여 OpenShift Container Platform에서 클러스터 업그레이드 채널을 선택할 수 있습니다. 채널을 선택하면 에라타 버전 및 릴리스 버전 둘 다에 사용할 수 있는 클러스터 업그레이드에 대해 자동으로 알립니다.
클러스터의 채널을 선택하려면 다음 단계를 완료하십시오.
- 탐색에서 Infrastructure > Clusters 를 선택합니다.
- 클러스터 세부 정보 페이지를 보려면 변경할 클러스터 이름을 선택합니다. 클러스터에 다른 채널을 사용할 수 있는 경우 채널 필드에 편집 아이콘이 표시됩니다.
- 편집 아이콘을 클릭하여 필드의 설정을 변경합니다.
- 새 채널 필드에서 채널을 선택합니다.
사용 가능한 채널 업데이트에 대한 알림은 클러스터의 클러스터 세부 정보 페이지에서 확인할 수 있습니다.
1.7.8.4. 연결이 끊긴 클러스터 업그레이드
다중 클러스터 엔진 Operator와 함께 OpenShift Update Service를 사용하여 연결이 끊긴 환경에서 클러스터를 업그레이드할 수 있습니다.
보안 문제로 인해 클러스터가 인터넷에 직접 연결되지 않는 경우도 있습니다. 이로 인해 업그레이드할 수 있는 시기와 이러한 업그레이드를 처리하는 방법을 알기가 어렵습니다. OpenShift Update Service를 구성하는 것이 도움이 될 수 있습니다.
OpenShift Update Service는 연결이 끊긴 환경에서 사용 가능한 관리 클러스터 버전을 모니터링하고 연결이 끊긴 환경에서 클러스터를 업그레이드하는 데 사용할 수 있도록 하는 별도의 Operator 및 피연산자입니다. OpenShift Update Service를 구성한 후 다음 작업을 수행할 수 있습니다.
- 연결이 끊긴 클러스터에 대한 업그레이드를 사용할 수 있는 시기를 모니터링합니다.
- 그래프 데이터 파일을 사용하여 업그레이드하기 위해 로컬 사이트로 미러링되는 업데이트를 확인합니다.
- 콘솔을 사용하여 클러스터에 업그레이드를 사용할 수 있음을 알립니다.
다음 주제에서는 연결이 끊긴 클러스터를 업그레이드하는 절차를 설명합니다.
1.7.8.4.1. 사전 요구 사항
OpenShift Update Service를 사용하여 연결이 끊긴 클러스터를 업그레이드하려면 다음 사전 요구 사항이 있어야 합니다.
제한된 OLM이 구성된 지원되는 OpenShift Container Platform 버전에서 실행 중인 배포된 허브 클러스터입니다. 제한된 OLM 을 구성하는 방법에 대한 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
참고: 제한된 OLM을 구성할 때 카탈로그 소스 이미지를 기록합니다.
- hub 클러스터에서 관리하는 OpenShift Container Platform 클러스터
클러스터 이미지를 미러링할 수 있는 로컬 저장소에 대한 인증 정보에 액세스합니다. 이 리포지토리를 생성하는 방법에 대한 자세한 내용은 Disconnected installation mirroring 에서 참조하십시오.
참고: 업그레이드할 현재 버전의 클러스터의 이미지를 미러링된 이미지 중 하나로 항상 사용할 수 있어야 합니다. 업그레이드에 실패하면 업그레이드 시도 시 클러스터가 클러스터 버전으로 되돌아갑니다.
1.7.8.4.2. 연결이 끊긴 미러 레지스트리 준비
업그레이드할 이미지와 로컬 미러 레지스트리로 업그레이드할 현재 이미지를 모두 미러링해야 합니다. 이미지를 미러링하려면 다음 단계를 완료합니다.
다음 예제와 유사한 콘텐츠가 포함된 스크립트 파일을 생성합니다.
UPSTREAM_REGISTRY=quay.io PRODUCT_REPO=openshift-release-dev RELEASE_NAME=ocp-release OCP_RELEASE=4.12.2-x86_64 LOCAL_REGISTRY=$(hostname):5000 LOCAL_SECRET_JSON=/path/to/pull/secret 1 oc adm -a ${LOCAL_SECRET_JSON} release mirror \ --from=${UPSTREAM_REGISTRY}/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE} \ --to=${LOCAL_REGISTRY}/ocp4 \ --to-release-image=${LOCAL_REGISTRY}/ocp4/release:${OCP_RELEASE}
- 1
/path/to/pull/secret
을 OpenShift Container Platform 풀 시크릿의 경로로 바꿉니다.
스크립트를 실행하여 이미지를 미러링하고, 설정을 구성하고, 릴리스 이미지와 릴리스 콘텐츠를 분리합니다.
ImageContentSourcePolicy
를 생성할 때 이 스크립트의 마지막 줄의 출력을 사용할 수 있습니다.
1.7.8.4.3. OpenShift Update Service용 Operator 배포
OpenShift Container Platform 환경에서 OpenShift Update Service용 Operator를 배포하려면 다음 단계를 완료하십시오.
- hub 클러스터에서 OpenShift Container Platform Operator 허브에 액세스합니다.
-
OpenShift Update Service Operator
를 선택하여 Operator를 배포합니다. 필요한 경우 기본값을 업데이트합니다. Operator 배포는openshift-cincinnati
라는 새 프로젝트를 생성합니다. Operator 설치가 완료될 때까지 기다립니다.
OpenShift Container Platform 명령줄에
oc get pods
명령을 입력하여 설치 상태를 확인할 수 있습니다. Operator가running
상태인지 확인합니다.
1.7.8.4.4. 그래프 데이터 init 컨테이너 빌드
OpenShift Update Service는 그래프 데이터 정보를 사용하여 사용 가능한 업그레이드를 결정합니다. 연결된 환경에서 OpenShift Update Service는 Cincinnati 그래프 데이터 GitHub 리포지토리에서 직접 업그레이드할 수 있는 그래프 데이터 정보를 가져옵니다. 연결이 끊긴 환경을 구성하기 때문에 init 컨테이너
를 사용하여 로컬 리포지토리에서 그래프 데이터를 사용할 수 있도록 설정해야 합니다. 그래프 데이터 init 컨테이너
를 생성하려면 다음 단계를 완료합니다.
다음 명령을 입력하여 그래프 데이터 Git 리포지토리를 복제합니다.
git clone https://github.com/openshift/cincinnati-graph-data
그래프 데이터
init
에 대한 정보가 포함된 파일을 생성합니다. 이 샘플 Dockerfile 은cincinnati-operator
GitHub 리포지토리에서 찾을 수 있습니다. 파일의 내용은 다음 샘플에 표시됩니다.FROM registry.access.redhat.com/ubi8/ubi:8.1 1 RUN curl -L -o cincinnati-graph-data.tar.gz https://github.com/openshift/cincinnati-graph-data/archive/master.tar.gz 2 RUN mkdir -p /var/lib/cincinnati/graph-data/ 3 CMD exec /bin/bash -c "tar xvzf cincinnati-graph-data.tar.gz -C /var/lib/ cincinnati/graph-data/ --strip-components=1" 4
이 예제에서는 다음을 수행합니다.
다음 명령을 실행하여
그래프 데이터 init 컨테이너
를 빌드합니다.podman build -f <path_to_Dockerfile> -t <${DISCONNECTED_REGISTRY}/cincinnati/cincinnati-graph-data-container>:latest 1 2 podman push <${DISCONNECTED_REGISTRY}/cincinnati/cincinnati-graph-data-container><2>:latest --authfile=</path/to/pull_secret>.json 3
참고:
podman
이 설치되어 있지 않은 경우 명령의podman
을docker
로 교체할 수도 있습니다.
1.7.8.4.5. 미러링된 레지스트리에 대한 인증서 구성
미러링된 OpenShift Container Platform 릴리스 이미지를 저장하기 위해 보안 외부 컨테이너 레지스트리를 사용하는 경우 OpenShift Update Service는 업그레이드 그래프를 빌드하기 위해 이 레지스트리에 액세스해야 합니다. OpenShift Update Service Pod에서 작동하도록 CA 인증서를 구성하려면 다음 단계를 완료합니다.
image.config.openshift.io
에 있는 OpenShift Container Platform 외부 레지스트리 API를 찾습니다. 외부 레지스트리 CA 인증서가 저장되는 위치입니다.자세한 내용은 OpenShift Container Platform 설명서에서 이미지 레지스트리 액세스에 대한 추가 신뢰 저장소 구성 을 참조하십시오.
-
openshift-config
네임스페이스에 ConfigMap을 생성합니다. updateservice-registry
키 아래에 CA 인증서를 추가합니다. OpenShift Update Service는 이 설정을 사용하여 인증서를 찾습니다.apiVersion: v1 kind: ConfigMap metadata: name: trusted-ca data: updateservice-registry: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
image.config.openshift.io
API에서클러스터
리소스를 편집하여additionalTrustedCA
필드를 생성한 ConfigMap의 이름으로 설정합니다.oc patch image.config.openshift.io cluster -p '{"spec":{"additionalTrustedCA":{"name":"trusted-ca"}}}' --type merge
trusted-ca
를 새 ConfigMap의 경로로 교체합니다.
OpenShift Update Service Operator는 openshift-config 네임스페이스에서 생성한 image.config.openshift.io
API 및 openshift-config
네임스페이스에서 생성한 ConfigMap을 모니터링한 다음 CA 인증서가 변경된 경우 배포를 다시 시작합니다.
1.7.8.4.6. OpenShift Update Service 인스턴스 배포
허브 클러스터에 OpenShift Update Service 인스턴스 배포를 완료하면 클러스터 업그레이드의 이미지를 미러링하고 연결이 끊긴 관리 클러스터에서 사용할 수 있는 이 인스턴스가 있습니다. 인스턴스를 배포하려면 다음 단계를 완료합니다.
openshift-cincinnati
인 Operator의 기본 네임스페이스를 사용하지 않으려면 OpenShift Update Service 인스턴스에 대한 네임스페이스를 생성합니다.- OpenShift Container Platform 허브 클러스터 콘솔 탐색 메뉴에서 관리 > 네임스페이스 를 선택합니다.
- 네임스페이스 생성을 선택합니다.
- 네임스페이스의 이름과 네임스페이스에 대한 기타 정보를 추가합니다.
- 생성 을 선택하여 네임스페이스를 생성합니다.
- OpenShift Container Platform 콘솔의 설치된 Operator 섹션에서 OpenShift Update Service Operator 를 선택합니다.
- 메뉴에서 Create Instance 를 선택합니다.
OpenShift Update Service 인스턴스에서 콘텐츠를 붙여넣습니다. YAML 인스턴스는 다음 매니페스트와 유사할 수 있습니다.
apiVersion: cincinnati.openshift.io/v1beta2 kind: Cincinnati metadata: name: openshift-update-service-instance namespace: openshift-cincinnati spec: registry: <registry_host_name>:<port> 1 replicas: 1 repository: ${LOCAL_REGISTRY}/ocp4/release graphDataImage: '<host_name>:<port>/cincinnati-graph-data-container'2
- 만들기 를 선택하여 인스턴스를 만듭니다.
-
hub 클러스터 CLI에서
oc get pods
명령을 입력하여 인스턴스 생성 상태를 확인합니다. 다소 시간이 걸릴 수 있지만 명령 결과에 인스턴스 및 Operator가 실행 중임을 표시하는 경우 프로세스가 완료됩니다.
1.7.8.4.7. 기본 레지스트리 덮어쓰기 (선택 사항)
참고: 이 섹션의 단계는 릴리스를 미러링된 레지스트리로 미러링한 경우에만 적용됩니다.
OpenShift Container Platform에는 업그레이드 패키지를 찾는 위치를 지정하는 기본 이미지 레지스트리 값이 있습니다. 연결이 끊긴 환경에서는 덮어쓰기를 생성하여 릴리스 이미지를 미러링한 로컬 이미지 레지스트리의 경로로 해당 값을 교체할 수 있습니다.
기본 레지스트리를 덮어쓰려면 다음 단계를 완료합니다.
다음 콘텐츠와 유사한
mirror.yaml
이라는 YAML 파일을 생성합니다.apiVersion: operator.openshift.io/v1alpha1 kind: ImageContentSourcePolicy metadata: name: <your-local-mirror-name>1 spec: repositoryDigestMirrors: - mirrors: - <your-registry>2 source: registry.redhat.io
참고:
oc adm release mirror
명령을 입력하여 로컬 미러의 경로를 찾을 수 있습니다.관리 클러스터의 명령줄을 사용하여 다음 명령을 실행하여 기본 레지스트리를 재정의합니다.
oc apply -f mirror.yaml
1.7.8.4.8. 연결이 끊긴 카탈로그 소스 배포
관리 클러스터에서 모든 기본 카탈로그 소스를 비활성화하고 새 카탈로그 소스를 생성합니다. 기본 위치를 연결된 위치에서 연결이 끊긴 로컬 레지스트리로 변경하려면 다음 단계를 완료합니다.
다음 콘텐츠와 유사한
source.yaml
이라는 YAML 파일을 생성합니다.apiVersion: config.openshift.io/v1 kind: OperatorHub metadata: name: cluster spec: disableAllDefaultSources: true --- apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: my-operator-catalog namespace: openshift-marketplace spec: sourceType: grpc image: '<registry_host_name>:<port>/olm/redhat-operators:v1'1 displayName: My Operator Catalog publisher: grpc
- 1
spec.image
값을 로컬 제한된 카탈로그 소스 이미지의 경로로 바꿉니다.
관리 클러스터의 명령줄에서 다음 명령을 실행하여 카탈로그 소스를 변경합니다.
oc apply -f source.yaml
1.7.8.4.9. 관리 클러스터 매개변수 변경
관리 클러스터에서 ClusterVersion
리소스 정보를 업데이트하여 업그레이드를 검색하는 위치에서 기본 위치를 변경합니다.
관리형 클러스터에서 다음 명령을 입력하여
ClusterVersion
업스트림 매개변수가 현재 기본 공용 OpenShift Update Service 피연산자인지 확인합니다.oc get clusterversion -o yaml
반환된 콘텐츠는 지원되는 버전으로
4.x
가 설정된 다음 내용과 유사할 수 있습니다.apiVersion: v1 items: - apiVersion: config.openshift.io/v1 kind: ClusterVersion [..] spec: channel: stable-4.x upstream: https://api.openshift.com/api/upgrades_info/v1/graph
허브 클러스터에서 다음 명령을 입력하여 OpenShift Update Service 피연산자의 경로 URL을 식별합니다.
oc get routes
이후 단계에서 반환된 값을 기록해 둡니다.
관리 클러스터의 명령줄에서 다음 명령을 입력하여
ClusterVersion
리소스를 편집합니다.oc edit clusterversion version
spec.channel
값을 새 버전으로 바꿉니다.spec.upstream
값을 hub 클러스터 OpenShift Update Service 피연산자의 경로로 바꿉니다. 다음 단계를 완료하여 피연산자의 경로를 확인할 수 있습니다.hub 클러스터에서 다음 명령을 실행합니다.
oc get routes -A
-
Cincinnati의 경로를
찾으십시오
. 피연산자가HOST/PORT
필드의 값인 경로입니다.
관리 클러스터의 명령줄에서 다음 명령을 입력하여
ClusterVersion
의 upstream 매개변수가 로컬 허브 클러스터 OpenShift Update Service URL로 업데이트되었는지 확인합니다.oc get clusterversion -o yaml
결과는 다음 콘텐츠와 유사합니다.
apiVersion: v1 items: - apiVersion: config.openshift.io/v1 kind: ClusterVersion [..] spec: channel: stable-4.x upstream: https://<hub-cincinnati-uri>/api/upgrades_info/v1/graph
1.7.8.4.10. 사용 가능한 업그레이드 보기
클러스터 페이지에서 클러스터 의 배포 버전은 연결이 끊긴 레지스트리에 업그레이드가 있는 경우 사용 가능한 업그레이드가 있음을 나타냅니다. 클러스터를 선택하고 Actions 메뉴에서 Upgrade Cluster를 선택하여 사용 가능한 업그레이드를 볼 수 있습니다. 선택적 업그레이드 경로를 사용할 수 있는 경우 사용 가능한 업그레이드가 나열됩니다.
참고: 현재 버전이 로컬 이미지 저장소에 미러링되지 않은 경우 사용 가능한 업그레이드 버전이 표시되지 않습니다.
1.7.8.4.11. 채널 선택
콘솔을 사용하여 OpenShift Container Platform 버전 4.6 이상에서 클러스터 업그레이드 채널을 선택할 수 있습니다. 이러한 버전은 미러 레지스트리에서 사용할 수 있어야 합니다. 채널 선택 단계를 완료하여 업그레이드 채널을 지정합니다.
1.7.8.4.12. 클러스터 업그레이드
연결이 끊긴 레지스트리를 구성한 후 다중 클러스터 엔진 Operator 및 OpenShift Update Service는 연결이 끊긴 레지스트리를 사용하여 업그레이드를 사용할 수 있는지 확인합니다. 사용 가능한 업그레이드가 표시되지 않는 경우 클러스터의 현재 수준의 릴리스 이미지와 로컬 저장소에 미러링된 하나 이상의 이후 수준이 있는지 확인합니다. 현재 클러스터 버전의 릴리스 이미지를 사용할 수 없는 경우 업그레이드를 사용할 수 없습니다.
클러스터 페이지에서 클러스터 의 배포 버전은 연결이 끊긴 레지스트리에 업그레이드가 있는 경우 사용 가능한 업그레이드가 있음을 나타냅니다. 사용 가능한 업그레이드를 클릭하고 업그레이드 버전을 선택하여 이미지를 업그레이드할 수 있습니다.
관리 클러스터가 선택한 버전으로 업데이트되었습니다.
클러스터 업그레이드에 실패하면 Operator는 일반적으로 업그레이드를 몇 번 재시도하고 중지한 후 실패한 구성 요소의 상태를 보고합니다. 경우에 따라 업그레이드 프로세스가 프로세스를 완료하려는 시도를 계속 순환합니다. 업그레이드 실패 후 클러스터를 이전 버전으로 롤백하는 것은 지원되지 않습니다. 클러스터 업그레이드에 실패하는 경우 Red Hat 지원에 문의하십시오.
1.7.9. 클러스터 프록시 애드온 사용
일부 환경에서는 관리 클러스터가 방화벽 뒤에 있으며 hub 클러스터에서 직접 액세스할 수 없습니다. 액세스 권한을 얻기 위해 관리 클러스터의 kube-apiserver
에 액세스하여 보다 안전한 연결을 제공하기 위해 프록시 애드온을 설정할 수 있습니다.
중요: 허브 클러스터에 클러스터 전체 프록시 구성이 없어야 합니다.
필요한 액세스: 편집기
허브 클러스터 및 관리 클러스터에 대한 클러스터 프록시 애드온을 구성하려면 다음 단계를 완료하십시오.
다음 단계를 완료하여 관리 클러스터
kube-apiserver
에 액세스하도록kubeconfig
파일을 구성합니다.관리 클러스터에 유효한 액세스 토큰을 제공합니다.
참고: 서비스 계정의 해당 토큰을 사용할 수 있습니다. 기본 네임스페이스에 있는 기본 서비스 계정을 사용할 수도 있습니다.
다음 명령을 실행하여 관리 클러스터의
kubeconfig
파일을 내보냅니다.export KUBECONFIG=<managed-cluster-kubeconfig>
다음 명령을 실행하여 포드에 액세스할 수 있는 서비스 계정에 역할을 추가합니다.
oc create role -n default test-role --verb=list,get --resource=pods oc create rolebinding -n default test-rolebinding --serviceaccount=default:default --role=test-role
다음 명령을 실행하여 서비스 계정 토큰의 시크릿을 찾습니다.
oc get secret -n default | grep <default-token>
default-token
을 시크릿 이름으로 교체합니다.다음 명령을 실행하여 토큰을 복사합니다.
export MANAGED_CLUSTER_TOKEN=$(kubectl -n default get secret <default-token> -o jsonpath={.data.token} | base64 -d)
default-token
을 시크릿 이름으로 교체합니다.
Red Hat Advanced Cluster Management Hub 클러스터에서
kubeconfig
파일을 구성합니다.다음 명령을 실행하여 허브 클러스터에서 현재
kubeconfig
파일을 내보냅니다.oc config view --minify --raw=true > cluster-proxy.kubeconfig
편집기로
서버
파일을 수정합니다. 이 예에서는sed
를 사용할 때 명령을 사용합니다. OSX를 사용하는 경우alias sed=gsed
를 실행합니다.export TARGET_MANAGED_CLUSTER=<managed-cluster-name> export NEW_SERVER=https://$(oc get route -n multicluster-engine cluster-proxy-addon-user -o=jsonpath='{.spec.host}')/$TARGET_MANAGED_CLUSTER sed -i'' -e '/server:/c\ server: '"$NEW_SERVER"'' cluster-proxy.kubeconfig export CADATA=$(oc get configmap -n openshift-service-ca kube-root-ca.crt -o=go-template='{{index .data "ca.crt"}}' | base64) sed -i'' -e '/certificate-authority-data:/c\ certificate-authority-data: '"$CADATA"'' cluster-proxy.kubeconfig
다음 명령을 입력하여 원래 사용자 인증 정보를 삭제합니다.
sed -i'' -e '/client-certificate-data/d' cluster-proxy.kubeconfig sed -i'' -e '/client-key-data/d' cluster-proxy.kubeconfig sed -i'' -e '/token/d' cluster-proxy.kubeconfig
서비스 계정의 토큰을 추가합니다.
sed -i'' -e '$a\ token: '"$MANAGED_CLUSTER_TOKEN"'' cluster-proxy.kubeconfig
다음 명령을 실행하여 대상 관리 클러스터의 대상 네임스페이스에 있는 모든 Pod를 나열합니다.
oc get pods --kubeconfig=cluster-proxy.kubeconfig -n <default>
default
네임스페이스를 사용하려는 네임스페이스로 바꿉니다.관리 클러스터에서 다른 서비스에 액세스합니다. 이 기능은 관리 클러스터가 Red Hat OpenShift Container Platform 클러스터인 경우 사용할 수 있습니다. 서비스는
service-serving-certificate
를 사용하여 서버 인증서를 생성해야 합니다.관리 클러스터에서 다음 서비스 계정 토큰을 사용합니다.
export PROMETHEUS_TOKEN=$(kubectl get secret -n openshift-monitoring $(kubectl get serviceaccount -n openshift-monitoring prometheus-k8s -o=jsonpath='{.secrets[0].name}') -o=jsonpath='{.data.token}' | base64 -d)
hub 클러스터에서 다음 명령을 실행하여 인증 기관을 파일로 변환합니다.
oc get configmap kube-root-ca.crt -o=jsonpath='{.data.ca\.crt}' > hub-ca.crt
다음 명령을 사용하여 관리 클러스터의 Prometheus 지표를 가져옵니다.
export SERVICE_NAMESPACE=openshift-monitoring export SERVICE_NAME=prometheus-k8s export SERVICE_PORT=9091 export SERVICE_PATH="api/v1/query?query=machine_cpu_sockets" curl --cacert hub-ca.crt $NEW_SERVER/api/v1/namespaces/$SERVICE_NAMESPACE/services/$SERVICE_NAME:$SERVICE_PORT/proxy-service/$SERVICE_PATH -H "Authorization: Bearer $PROMETHEUS_TOKEN"
1.7.9.1. 클러스터 프록시 애드온의 프록시 설정 구성
관리 클러스터가 HTTP 및 HTTPS 프록시 서버를 통해 hub 클러스터와 통신할 수 있도록 클러스터 프록시 애드온의 프록시 설정을 구성할 수 있습니다. 클러스터 프록시 애드온 에이전트가 프록시 서버를 통해 hub 클러스터에 액세스해야 하는 경우 프록시 설정을 구성해야 할 수 있습니다.
클러스터 프록시 애드온에 대한 프록시 설정을 구성하려면 다음 단계를 완료합니다.
hub 클러스터에
AddOnDeploymentConfig
리소스를 생성하고spec.proxyConfig
매개변수를 추가합니다. 다음 예제를 참조하십시오.apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: <name> 1 namespace: <namespace> 2 spec: agentInstallNamespace: open-cluster-managment-agent-addon proxyConfig: httpsProxy: "http://<username>:<password>@<ip>:<port>" 3 noProxy: ".cluster.local,.svc,172.30.0.1" 4 caBundle: <value> 5
생성한
AddOnDeploymentConfig
리소스를 참조하여ManagedClusterAddOn
리소스를 업데이트합니다. 다음 예제를 참조하십시오.apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: cluster-proxy namespace: <namespace> 1 spec: installNamespace: open-cluster-managment-addon configs: group: addon.open-cluster-management.io resource: AddonDeploymentConfig name: <name> 2 namespace: <namespace> 3
1.7.10. 관리 클러스터에서 실행되도록 Ansible Automation Platform 작업 구성
멀티 클러스터 엔진 Operator는 Red Hat Ansible Automation Platform과 통합되어 클러스터를 생성하거나 업그레이드하기 전이나 후에 발생하는 prehook 및 posthook Ansible 작업 인스턴스를 생성할 수 있습니다. 클러스터 제거를 위한 prehook 및 posthook 작업을 구성하고 클러스터 확장 작업은 지원되지 않습니다.
필수 액세스: 클러스터 관리자
1.7.10.1. 사전 요구 사항
클러스터에서 자동화 템플릿을 실행하려면 다음 사전 요구 사항을 충족해야 합니다.
- OpenShift Container Platform을 설치합니다.
- Ansible Automation Platform Resource Operator를 설치하여 Ansible 작업을 Git 서브스크립션의 라이프사이클에 연결합니다. 자동화 템플릿을 사용하여 Ansible Automation Platform 작업을 시작할 때 최상의 결과를 얻으려면 Ansible Automation Platform 작업 템플릿이 실행될 때 멱등이어야 합니다. OpenShift Container Platform OperatorHub 에서 Ansible Automation Platform Resource Operator를 찾을 수 있습니다.
1.7.10.2. 콘솔을 사용하여 클러스터에서 실행되도록 자동화 템플릿 구성
클러스터를 생성할 때, 클러스터를 가져올 때 또는 클러스터를 생성한 후 클러스터에 사용할 자동화 템플릿을 지정할 수 있습니다.
클러스터를 생성하거나 가져올 때 템플릿을 지정하려면 자동화 단계에서 클러스터에 적용할 Ansible 템플릿을 선택합니다. 자동화 템플릿이 없는 경우 자동화 템플릿 추가 를 클릭하여 하나를 생성합니다.
클러스터를 생성한 후 템플릿을 지정하려면 기존 클러스터의 작업 메뉴에서 자동화 템플릿 업데이트를 클릭합니다. 업데이트 자동화 템플릿 옵션을 사용하여 기존 자동화 템플릿을 업데이트할 수도 있습니다.
1.7.10.3. 자동화 템플릿 생성
클러스터 설치 또는 업그레이드를 사용하여 Ansible 작업을 시작하려면 작업을 실행할 시기를 지정하는 자동화 템플릿을 생성해야 합니다. 클러스터 설치 또는 업그레이드 전후에 실행되도록 구성할 수 있습니다.
템플릿을 생성하는 동안 Ansible 템플릿 실행에 대한 세부 정보를 지정하려면 콘솔의 단계를 완료합니다.
- 탐색에서 Infrastructure > Automation 을 선택합니다.
상황에 적합한 경로를 선택합니다.
- 새 템플릿을 생성하려면 Ansible 템플릿 생성 을 클릭하고 3단계를 계속합니다.
- 기존 템플릿을 수정하려면 수정할 템플릿의 옵션 메뉴에서 템플릿 편집을 클릭하고 5단계를 계속합니다.
- 소문자 영숫자 또는 하이픈(-)을 포함하는 템플릿의 고유한 이름을 입력합니다.
- 새 템플릿에 사용할 인증 정보를 선택합니다.
인증 정보를 선택한 후 모든 작업에 사용할 Ansible 인벤토리를 선택할 수 있습니다. Ansible 인증 정보를 Ansible 템플릿에 연결하려면 다음 단계를 완료합니다.
- 탐색에서 자동화 를 선택합니다. 인증 정보에 연결되지 않은 템플릿 목록에 있는 템플릿에는 템플릿을 기존 인증 정보에 연결하는 데 사용할 수 있는 인증 정보에 대한 링크가 포함되어 있습니다. 템플릿과 동일한 네임스페이스에 있는 인증 정보만 표시됩니다.
- 선택할 수 있는 인증 정보가 없거나 기존 인증 정보를 사용하지 않으려면 연결할 템플릿의 옵션 메뉴에서 템플릿 편집을 선택합니다.
- 인증 정보 추가 를 클릭하고 인증 정보를 생성해야 하는 경우 Ansible Automation Platform에 대한 인증 정보 생성 절차를 완료합니다.
- 템플릿과 동일한 네임스페이스에 인증 정보를 생성한 후 템플릿을 편집할 때 Ansible Automation Platform 인증 정보 필드에서 인증 정보를 선택합니다.
- 클러스터가 설치되기 전에 Ansible 작업을 시작하려면 사전 설치 자동화 템플릿 섹션에서 자동화 템플릿 추가 를 선택합니다.
표시되는 모달의
작업 템플릿
또는워크플로 작업 템플릿
중에서 선택합니다.job_tags
,skip_tags
, 워크플로우 유형을 추가할 수도 있습니다.-
Extra variables 필드를 사용하여
key=value
쌍의 형태로AnsibleJob
리소스에 데이터를 전달합니다. -
특수 키
cluster_deployment
및install_config
는 추가 변수로 자동으로 전달됩니다. 클러스터에 대한 일반 정보와 클러스터 설치 구성에 대한 세부 정보가 포함되어 있습니다.
-
Extra variables 필드를 사용하여
- 클러스터 설치 또는 업그레이드에 추가할 prehook 및 posthook Ansible 작업의 이름을 선택합니다.
- 필요한 경우 Ansible 작업을 끌어 순서를 변경합니다.
-
클러스터를 설치한 후 시작하려는 모든 자동화 템플릿, 업그레이드 후 자동화 템플릿 섹션, 업그레이드 전 자동화 템플릿 섹션, 업그레이드 후 자동화 템플릿 섹션에 대해 5 - 7단계를 반복합니다. 클러스터를 업그레이드할 때
Extra variables
필드를 사용하여key=value
쌍 형식으로AnsibleJob
리소스에 데이터를 전달할 수 있습니다.cluster_deployment
및install_config
특수 키 외에도cluster_info
특수 키는ManagedClusterInfo
리소스의 데이터를 포함하는 추가 변수로 자동으로 전달됩니다.
Ansible 템플릿은 지정된 작업이 발생할 때 이 템플릿을 지정하는 클러스터에서 실행되도록 구성되어 있습니다.
1.7.10.4. Ansible 작업의 상태 보기
실행 중인 Ansible 작업의 상태를 확인하여 시작된 후 성공적으로 실행 중인지 확인할 수 있습니다. 실행 중인 Ansible 작업의 현재 상태를 보려면 다음 단계를 완료합니다.
- 메뉴에서 Infrastructure > Clusters를 선택하여 Clusters 페이지에 액세스합니다.
- 세부 정보를 보려면 클러스터 이름을 선택합니다.
클러스터 정보에서 Ansible 작업의 마지막 실행 상태를 확인합니다. 항목은 다음 상태 중 하나를 표시합니다.
-
설치 prehook 또는 posthook 작업이 실패하면 클러스터 상태가
Failed
를 표시합니다. - 업그레이드 prehook 또는 posthook 작업이 실패하면 업그레이드에 실패한 배포 필드에 경고가 표시됩니다.
-
설치 prehook 또는 posthook 작업이 실패하면 클러스터 상태가
1.7.10.5. 실패한 Ansible 작업 다시 실행
클러스터 prehook 또는 posthook가 실패한 경우 클러스터 페이지에서 업그레이드를 재시도할 수 있습니다.
시간을 절약하기 위해 클러스터 자동화 템플릿의 일부인 실패한 Ansible posthook만 실행할 수도 있습니다. 전체 업그레이드를 재시도하지 않고 posthooks만 다시 실행하려면 다음 단계를 완료합니다.
ClusterCurator
리소스의 루트에 다음 내용을 추가하여 설치 posthook를 다시 실행합니다.operation: retryPosthook: installPosthook
ClusterCurator
리소스의 루트에 다음 콘텐츠를 추가하여 업그레이드 posthook를 다시 실행합니다.operation: retryPosthook: upgradePosthook
콘텐츠를 추가한 후 Ansible posthook를 실행하기 위해 새 작업이 생성됩니다.
1.7.10.6. 모든 작업에 사용할 Ansible 인벤토리 지정
ClusterCurator
리소스를 사용하여 모든 작업에 사용할 Ansible 인벤토리를 지정할 수 있습니다. 다음 예제를 참조하십시오. channel
및 desiredUpdate
를 ClusterCurator
의 올바른 값으로 바꿉니다.
+
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: ClusterCurator metadata: name: test-inno namespace: test-inno spec: desiredCuration: upgrade destroy: {} install: {} scale: {} upgrade: channel: stable-4.x desiredUpdate: 4.x.1 monitorTimeout: 150 posthook: - extra_vars: {} clusterName: test-inno type: post_check name: ACM Upgrade Checks prehook: - extra_vars: {} clusterName: test-inno type: pre_check name: ACM Upgrade Checks towerAuthSecret: awx
인벤토리가 생성되었는지 확인하려면 ClusterCurator
리소스에서 모든 작업이 성공적으로 완료되었음을 지정하는 메시지의 status
필드를 확인할 수 있습니다.
1.7.10.7. ClusterCurator 리소스에서 자동화 작업 Pod로 사용자 정의 레이블 내보내기
ClusterCurator
리소스를 사용하여 클러스터 Curator에서 생성한 자동화 작업 Pod에 사용자 정의 레이블을 내보낼 수 있습니다. 모든 큐레이션 유형에 사용자 지정 레이블을 푸시할 수 있습니다. 다음 예제를 참조하십시오.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: ClusterCurator metadata: name: cluster1 {{{} namespace: cluster1 labels: test1: test1 test2: test2 {}}}spec: desiredCuration: install install: jobMonitorTimeout: 5 posthook: - extra_vars: {} name: Demo Job Template type: Job prehook: - extra_vars: {} name: Demo Job Template type: Job towerAuthSecret: toweraccess
1.7.10.8. EUS (Extended Update Support) 업그레이드에 ClusterCurator 사용
ClusterCurator
리소스를 사용하여 EUS 릴리스 간에 더 쉽고 자동 업그레이드를 수행할 수 있습니다.
중간 릴리스 값을 사용하여
spec.upgrade.intermediateUpdate
를ClusterCurator
리소스에 추가합니다. 중간 릴리스가4.14.x
이고desiredUpdate
는4.15.x
인 다음 샘플을 참조하십시오.spec: desiredCuration: upgrade upgrade: intermediateUpdate: 4.14.x desiredUpdate: 4.15.x monitorTimeout: 120
선택 사항:
machineconfigpools
를 일시 중지하여 더 빠른 업그레이드를 위해 중간 릴리스를 건너뛸 수 있습니다.posthook
작업에Un
을 입력하고pause machinepool
prehook
작업에 machinepool을 일시 중지합니다. 다음 예제를 참조하십시오.posthook: - extra_vars: {} name: Unpause machinepool type: Job prehook: - extra_vars: {} name: Pause machinepool type: Job
EUS를 EUS로 업그레이드하도록 구성된 ClusterCurator
의 다음 전체 예를 참조하십시오.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: ClusterCurator metadata: annotations: cluster.open-cluster-management.io/upgrade-clusterversion-backoff-limit: "10" name: your-name namespace: your-namespace spec: desiredCuration: upgrade upgrade: intermediateUpdate: 4.14.x desiredUpdate: 4.15.x monitorTimeout: 120 posthook: - extra_vars: {} name: Unpause machinepool type: Job prehook: - extra_vars: {} name: Pause machinepool type: Job
1.7.11. 호스팅된 클러스터에서 실행되도록 Ansible Automation Platform 작업 구성
Red Hat Ansible Automation Platform은 멀티 클러스터 엔진 Operator와 통합되어 호스트 클러스터를 생성하거나 업데이트하기 전이나 후에 발생하는 prehook 및 posthook Ansible Automation Platform 작업 인스턴스를 생성할 수 있습니다.
필수 액세스: 클러스터 관리자
1.7.11.1. 사전 요구 사항
클러스터에서 자동화 템플릿을 실행하려면 다음 사전 요구 사항을 충족해야 합니다.
- 지원되는 OpenShift Container Platform 버전
- Ansible Automation Platform Resource Operator를 설치하여 Ansible Automation Platform 작업을 Git 서브스크립션 라이프사이클에 연결합니다. 자동화 템플릿을 사용하여 Ansible Automation Platform 작업을 시작할 때 Ansible Automation Platform 작업 템플릿이 실행될 때 멱등인지 확인합니다. OpenShift Container Platform OperatorHub 에서 Ansible Automation Platform Resource Operator를 찾을 수 있습니다.
1.7.11.2. 호스트된 클러스터 설치를 위해 Ansible Automation Platform 작업 실행
호스트 클러스터를 설치하는 Ansible Automation Platform 작업을 시작하려면 다음 단계를 완료합니다.
pausedUntil: true
필드를 포함하여HostedCluster
및NodePool
리소스를 생성합니다.hcp create cluster
명령줄 interface 명령을 사용하는 경우--pausedUntil: true
플래그를 지정할 수 있습니다.다음 예제를 참조하십시오.
apiVersion: hypershift.openshift.io/v1beta1 kind: HostedCluster metadata: name: my-cluster namespace: clusters spec: pausedUntil: 'true'
apiVersion: hypershift.openshift.io/v1beta1 kind: NodePool metadata: name: my-cluster-us-east-2 namespace: clusters spec: pausedUntil: 'true'
HostedCluster
리소스와 동일한 이름 및HostedCluster
리소스와 동일한 네임스페이스에ClusterCurator
리소스를 생성합니다. 다음 예제를 참조하십시오.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: ClusterCurator metadata: name: my-cluster namespace: clusters labels: open-cluster-management: curator spec: desiredCuration: install install: jobMonitorTimeout: 5 prehook: - name: Demo Job Template extra_vars: variable1: something-interesting variable2: 2 - name: Demo Job Template posthook: - name: Demo Job Template towerAuthSecret: toweraccess
Ansible Automation Platform Tower에 인증이 필요한 경우 시크릿 리소스를 생성합니다. 다음 예제를 참조하십시오.
apiVersion: v1 kind: Secret metadata: name: toweraccess namespace: clusters stringData: host: https://my-tower-domain.io token: ANSIBLE_TOKEN_FOR_admin
1.7.11.3. 호스트된 클러스터를 업데이트하기 위해 Ansible Automation Platform 작업 실행
호스트 클러스터를 업데이트하는 Ansible Automation Platform 작업을 실행하려면 업데이트할 호스팅 클러스터의 ClusterCurator
리소스를 편집합니다. 다음 예제를 참조하십시오.
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: ClusterCurator
metadata:
name: my-cluster
namespace: clusters
labels:
open-cluster-management: curator
spec:
desiredCuration: upgrade
upgrade:
desiredUpdate: 4.15.1 1
monitorTimeout: 120
prehook:
- name: Demo Job Template
extra_vars:
variable1: something-interesting
variable2: 2
- name: Demo Job Template
posthook:
- name: Demo Job Template
towerAuthSecret: toweraccess
- 1
- 지원되는 버전에 대한 자세한 내용은 호스팅 컨트롤 플레인 을 참조하십시오.
참고: 호스팅된 클러스터를 이러한 방식으로 업데이트할 때 호스팅된 컨트롤 플레인과 노드 풀을 동일한 버전으로 업데이트합니다. 호스팅된 컨트롤 플레인 및 노드 풀을 다른 버전으로 업데이트할 수 없습니다.
1.7.11.4. 호스트된 클러스터를 삭제하기 위해 Ansible Automation Platform 작업 실행
호스팅된 클러스터를 삭제하는 Ansible Automation Platform 작업을 실행하려면 삭제하려는 호스팅 클러스터의 ClusterCurator
리소스를 편집합니다. 다음 예제를 참조하십시오.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: ClusterCurator metadata: name: my-cluster namespace: clusters labels: open-cluster-management: curator spec: desiredCuration: destroy destroy: jobMonitorTimeout: 5 prehook: - name: Demo Job Template extra_vars: variable1: something-interesting variable2: 2 - name: Demo Job Template posthook: - name: Demo Job Template towerAuthSecret: toweraccess
참고: AWS에서 호스팅 클러스터를 삭제하는 것은 지원되지 않습니다.
1.7.11.5. 추가 리소스
-
호스트된 컨트롤 플레인 명령줄 인터페이스인
hcp
에 대한 자세한 내용은 호스팅된 컨트롤 플레인 명령줄 인터페이스 설치를 참조하십시오. - 지원되는 버전을 포함하여 호스팅된 클러스터에 대한 자세한 내용은 호스팅된 컨트롤 플레인 소개를 참조하십시오.
1.7.12. ClusterClaims
ClusterClaim
은 관리 클러스터의 클러스터 범위 CRD(사용자 정의 리소스 정의)입니다. ClusterClaim
은 관리 클러스터가 요구하는 정보를 나타냅니다. ClusterClaim
을 사용하여 대상 클러스터에서 리소스의 배치를 확인할 수 있습니다.
다음 예제는 YAML 파일에서 식별되는 ClusterClaim
을 보여줍니다.
apiVersion: cluster.open-cluster-management.io/v1alpha1 kind: ClusterClaim metadata: name: id.openshift.io spec: value: 95f91f25-d7a2-4fc3-9237-2ef633d8451c
다음 표에서는 다중 클러스터 엔진 운영자가 관리하는 클러스터의 정의된 ClusterClaim
목록을 보여줍니다.
클레임 이름 | 예약됨 | 변경 가능 | 설명 |
---|---|---|---|
| true | false | 업스트림 제안에 정의된 ClusterID |
| true | true | Kubernetes 버전 |
| true | false | AWS, GCE, Equinix Metal과 같은 관리형 클러스터가 실행 중인 플랫폼 |
| true | false | OpenShift, Cryostathos, EKS 및 GKE와 같은 제품 이름 |
| false | false | OpenShift Container Platform 클러스터에서만 사용할 수 있는 OpenShift Container Platform 외부 ID |
| false | true | OpenShift Container Platform 클러스터에서만 사용할 수 있는 관리 콘솔의 URL |
| false | true | OpenShift Container Platform 클러스터에서만 사용할 수 있는 OpenShift Container Platform 버전 |
관리 클러스터에서 이전 클레임 중 삭제 또는 업데이트되는 경우 이전 클레임이 자동으로 복원되거나 이전 버전으로 롤백됩니다.
관리되는 클러스터가 허브에 가입하면 관리 클러스터에서 생성된 모든 ClusterClaim
이 허브 클러스터에서 ManagedCluster
리소스의 상태와 동기화됩니다. ManagedCluster
의 clusterClaims
다음 예제를 참조하여 4.x
를 지원되는 OpenShift Container Platform 버전으로 교체합니다.
apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: labels: cloud: Amazon clusterID: 95f91f25-d7a2-4fc3-9237-2ef633d8451c installer.name: multiclusterhub installer.namespace: open-cluster-management name: cluster1 vendor: OpenShift name: cluster1 spec: hubAcceptsClient: true leaseDurationSeconds: 60 status: allocatable: cpu: '15' memory: 65257Mi capacity: cpu: '18' memory: 72001Mi clusterClaims: - name: id.k8s.io value: cluster1 - name: kubeversion.open-cluster-management.io value: v1.18.3+6c42de8 - name: platform.open-cluster-management.io value: AWS - name: product.open-cluster-management.io value: OpenShift - name: id.openshift.io value: 95f91f25-d7a2-4fc3-9237-2ef633d8451c - name: consoleurl.openshift.io value: 'https://console-openshift-console.apps.xxxx.dev04.red-chesterfield.com' - name: version.openshift.io value: '4.x' conditions: - lastTransitionTime: '2020-10-26T07:08:49Z' message: Accepted by hub cluster admin reason: HubClusterAdminAccepted status: 'True' type: HubAcceptedManagedCluster - lastTransitionTime: '2020-10-26T07:09:18Z' message: Managed cluster joined reason: ManagedClusterJoined status: 'True' type: ManagedClusterJoined - lastTransitionTime: '2020-10-30T07:20:20Z' message: Managed cluster is available reason: ManagedClusterAvailable status: 'True' type: ManagedClusterConditionAvailable version: kubernetes: v1.18.3+6c42de8
1.7.12.1. 사용자 정의 클러스터 클레임 생성
관리 클러스터에서 사용자 지정 이름으로 ClusterClaim
리소스를 생성하면 쉽게 식별할 수 있습니다. 사용자 정의 ClusterClaim
리소스는 hub 클러스터에서 ManagedCluster
리소스의 상태와 동기화됩니다. 다음 콘텐츠는 사용자 지정된 ClusterClaim
리소스의 정의 예를 보여줍니다.
apiVersion: cluster.open-cluster-management.io/v1alpha1 kind: ClusterClaim metadata: name: <custom_claim_name> spec: value: <custom_claim_value>
spec.value
필드의 길이는 1024 이상이어야 합니다. ClusterClaim
리소스 를 생성하려면
리소스 clusterclaims.cluster.open-cluster-management.io
에 대한 생성 권한이 필요합니다.
1.7.12.2. 기존 클러스터 클레임 나열
kubectl
명령을 사용하여 관리 클러스터에 적용되는 ClusterClaim을 나열하여 ClusterClaim을 오류 메시지와 비교할 수 있습니다.
참고: 리소스 clusterclaims.cluster.open-cluster-management.io
에 대한 목록
권한이 있는지 확인합니다.
다음 명령을 실행하여 관리 클러스터에 있는 기존 ClusterClaim을 모두 나열합니다.
kubectl get clusterclaims.cluster.open-cluster-management.io
1.7.13. ManagedClusterSets
ManagedClusterSet
은 관리 클러스터 그룹입니다. 관리되는 클러스터 세트는 모든 관리 클러스터에 대한 액세스를 관리하는 데 도움이 될 수 있습니다. ManagedClusterSetBinding
리소스를 생성하여 ManagedClusterSet
리소스를 네임스페이스에 바인딩할 수도 있습니다.
각 클러스터는 관리 클러스터 세트의 멤버여야 합니다. 허브 클러스터를 설치하면 ManagedClusterSet
리소스가 기본
이라는 리소스가 생성됩니다. 관리 클러스터 세트에 할당되지 않은 모든 클러스터는 기본
관리 클러스터 세트에 자동으로 할당됩니다. 기본
관리 클러스터 세트를 삭제하거나 업데이트할 수 없습니다.
관리 클러스터 세트를 생성하고 관리하는 방법에 대한 자세한 내용은 계속 읽으십시오.
1.7.13.1. ManagedClusterSet생성
관리 클러스터 세트에서 관리 클러스터를 그룹화하여 관리 클러스터에서 사용자 액세스를 제한할 수 있습니다.
필수 액세스: 클러스터 관리자
ManagedClusterSet
은 클러스터 범위 리소스이므로 ManagedClusterSet
을 생성하는 클러스터에 대한 클러스터 관리 권한이 있어야 합니다. 관리되는 클러스터는 둘 이상의 ManagedClusterSet
에 포함될 수 없습니다. 다중 클러스터 엔진 Operator 콘솔 또는 CLI에서 관리 클러스터 세트를 생성할 수 있습니다.
참고: 관리형 클러스터 세트에 추가되지 않은 클러스터 풀은 기본 ManagedClusterSet
리소스에 추가되지 않습니다. 클러스터 풀에서 클러스터를 요청하면 기본 ManagedClusterSet
에 클러스터가 추가됩니다.
관리형 클러스터를 생성하면 쉽게 관리할 수 있도록 다음이 자동으로 생성됩니다.
-
global
이라는ManagedClusterSet
입니다. -
open-cluster-management-global-set
이라는 네임스페이스입니다. 글로벌
ManagedClusterSet
을open-cluster-management-
네임스페이스에 바인딩하기 위해 global라는global
-setManagedClusterSetBinding
입니다.중요:
글로벌
관리 클러스터 세트를 삭제, 업데이트 또는 편집할 수 없습니다.글로벌
관리 클러스터 세트에는 모든 관리 클러스터가 포함됩니다. 다음 예제를 참조하십시오.apiVersion: cluster.open-cluster-management.io/v1beta2 kind: ManagedClusterSetBinding metadata: name: global namespace: open-cluster-management-global-set spec: clusterSet: global
1.7.13.1.1. CLI를 사용하여 ManagedClusterSet 생성
CLI를 사용하여 설정된 관리 클러스터의 다음 정의를 YAML 파일에 추가하여 관리 클러스터 세트를 생성합니다.
apiVersion: cluster.open-cluster-management.io/v1beta2 kind: ManagedClusterSet metadata: name: <cluster_set>
& lt;cluster_set
>을 관리되는 클러스터 세트의 이름으로 바꿉니다.
1.7.13.1.2. ManagedClusterSet에 클러스터 추가
ManagedClusterSet
을 생성한 후 콘솔의 지침에 따라 또는 CLI를 사용하여 설정된 관리 클러스터에 클러스터를 추가할 수 있습니다.
1.7.13.1.3. CLI를 사용하여 ManagedClusterSet 에 클러스터 추가
CLI를 사용하여 설정된 관리 클러스터에 클러스터를 추가하려면 다음 단계를 완료합니다.
managedclustersets/join
의 가상 하위 리소스에서 생성할 수 있는 RBACClusterRole
항목이 있는지 확인합니다.참고: 이 권한이 없으면
ManagedClusterSet
에 관리 클러스터를 할당할 수 없습니다. 이 항목이 없는 경우 YAML 파일에 추가합니다. 다음 예제를 참조하십시오.kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: clusterrole1 rules: - apiGroups: ["cluster.open-cluster-management.io"] resources: ["managedclustersets/join"] resourceNames: ["<cluster_set>"] verbs: ["create"]
&
lt;cluster_set&
gt;을ManagedClusterSet
의 이름으로 바꿉니다.참고:
ManagedClusterSet
에서 다른 클러스터로 관리되는 클러스터를 이동하는 경우 두 관리 클러스터 세트 모두에서 사용 가능한 권한이 있어야 합니다.YAML 파일에서 관리 클러스터의 정의를 찾습니다. 다음 예제 정의를 참조하십시오.
apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: <cluster_name> spec: hubAcceptsClient: true
cluster.open-cluster-management.io/clusterset
paremeter를 추가하고ManagedClusterSet
의 이름을 지정합니다. 다음 예제를 참조하십시오.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: <cluster_name> labels: cluster.open-cluster-management.io/clusterset: <cluster_set> spec: hubAcceptsClient: true
1.7.13.2. ManagedClusterSet에 RBAC 권한 할당
허브 클러스터에서 구성된 ID 공급자가 제공하는 클러스터 세트에 사용자 또는 그룹을 할당할 수 있습니다.
필수 액세스: 클러스터 관리자
ManagedClusterSet
API RBAC 권한 수준은 다음 표를 참조하십시오.
클러스터 세트 | 액세스 권한 | 권한 생성 |
---|---|---|
| 관리 클러스터 세트에 할당된 모든 클러스터 및 클러스터 풀 리소스에 대한 전체 액세스 권한. | 클러스터 생성, 클러스터 가져오기 및 클러스터 풀을 생성할 수 있는 권한 권한을 생성할 때 관리 클러스터 세트에 할당해야 합니다. |
|
| 클러스터 생성, 클러스터 가져오기 또는 클러스터 풀을 생성할 수 있는 권한이 없습니다. |
| 관리 클러스터 세트에 할당된 모든 클러스터 및 클러스터 풀 리소스에 대한 권한만 읽습니다. | 클러스터 생성, 클러스터 가져오기 또는 클러스터 풀을 생성할 수 있는 권한이 없습니다. |
참고: 글로벌 클러스터 세트에 대한 클러스터 세트 관리자
권한을 적용할 수 없습니다.
콘솔에서 관리 클러스터 세트에 사용자 또는 그룹을 할당하려면 다음 단계를 완료합니다.
- OpenShift Container Platform 콘솔에서 Infrastructure > Clusters 로 이동합니다.
- Cluster sets 탭을 선택합니다.
- 대상 클러스터 세트를 선택합니다.
- 액세스 관리 탭을 선택합니다.
- 사용자 또는 그룹 추가를 선택합니다.
- 액세스를 제공할 사용자 또는 그룹을 검색하고 선택합니다.
- 선택한 사용자 또는 사용자 그룹에 제공할 Cluster set admin 또는 Cluster set view 역할을 선택합니다. 자세한 내용은 다중 클러스터 엔진 Operator 역할 기반 액세스 제어 의 역할 개요 를 참조하십시오.
- 추가 를 선택하여 변경 사항을 제출합니다.
사용자 또는 그룹이 테이블에 표시됩니다. 모든 관리 클러스터 세트 리소스에 대한 권한 할당을 사용자 또는 그룹으로 전파하는 데 몇 초가 걸릴 수 있습니다.
배치 정보는 ManagedCusterSets 에서 ManagedCluster필터링 을 참조하십시오.
1.7.13.3. ManagedClusterSetBinding 리소스 생성
ManagedClusterSetBinding
리소스는 ManagedClusterSet
리소스를 네임스페이스에 바인딩합니다. 동일한 네임스페이스에서 생성된 애플리케이션 및 정책은 바인딩된 관리 클러스터 세트 리소스에 포함된 클러스터에만 액세스할 수 있습니다.
네임스페이스에 대한 액세스 권한은 해당 네임스페이스에 바인딩된 관리형 클러스터 세트에 자동으로 적용됩니다. 해당 네임스페이스에 대한 액세스 권한이 있는 경우 해당 네임스페이스에 바인딩된 모든 관리 클러스터 세트에 액세스할 수 있는 권한이 자동으로 부여됩니다. 관리 클러스터 세트에 액세스할 수 있는 권한만 있는 경우 네임스페이스의 다른 관리 클러스터 세트에 액세스할 수 있는 권한이 자동으로 없습니다.
콘솔 또는 명령줄을 사용하여 관리 클러스터 세트 바인딩을 생성할 수 있습니다.
1.7.13.3.1. 콘솔을 사용하여 ManagedClusterSetBinding 생성
콘솔을 사용하여 ManagedClusterSetBinding
을 생성하려면 다음 단계를 완료합니다.
- OpenShift Container Platform 콘솔에서 Infrastructure > Clusters 로 이동하여 Cluster set 탭을 선택합니다.
- 바인딩을 생성할 클러스터 세트의 이름을 선택합니다.
- 작업 > 네임스페이스 바인딩 편집 으로 이동합니다.
- 네임스페이스 바인딩 편집 페이지의 드롭다운 메뉴에서 클러스터 세트를 바인딩할 네임스페이스를 선택합니다.
1.7.13.3.2. CLI를 사용하여 ManagedClusterSetBinding 생성
CLI를 사용하여 ManagedClusterSetBinding
을 생성하려면 다음 단계를 완료합니다.
YAML 파일에
ManagedClusterSetBinding
리소스를 생성합니다.참고: 관리형 클러스터 세트 바인딩을 생성할 때 관리 클러스터 세트 바인딩의 이름은 바인딩할 관리 클러스터 세트의 이름과 일치해야 합니다.
ManagedClusterSetBinding
리소스는 다음 정보와 유사할 수 있습니다.apiVersion: cluster.open-cluster-management.io/v1beta2 kind: ManagedClusterSetBinding metadata: namespace: <namespace> name: <cluster_set> spec: clusterSet: <cluster_set>
대상 관리 클러스터 세트에 대한 바인딩 권한이 있는지 확인합니다. 사용자가 <
cluster_set
>에 바인딩할 수 있는 규칙이 포함된ClusterRole
리소스의 다음 예제를 봅니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <clusterrole> rules: - apiGroups: ["cluster.open-cluster-management.io"] resources: ["managedclustersets/bind"] resourceNames: ["<cluster_set>"] verbs: ["create"]
1.7.13.4. 테인트 및 톨러레이션을 사용하여 관리형 클러스터 배치
테인트 및 허용 오차를 사용하여 관리 클러스터 또는 관리형 클러스터 세트의 배치를 제어할 수 있습니다. 테인트 및 허용 오차는 관리 클러스터가 특정 배치에 대해 선택되지 않도록 하는 방법을 제공합니다. 이 제어는 특정 관리 클러스터가 일부 배치에 포함되지 않도록 하려는 경우 유용할 수 있습니다. 관리 클러스터에 테인트를 추가하고 배치에 허용 오차를 추가할 수 있습니다. 테인트 및 허용 오차가 일치하지 않으면 해당 배치에 대해 관리 클러스터가 선택되지 않습니다.
1.7.13.4.1. 관리 클러스터에 테인트 추가
테인트는 관리 클러스터의 속성에 지정되며, 배치에서 관리 클러스터 또는 관리 클러스터 세트를 거절할 수 있습니다.
taint 섹션이 없는 경우 다음 예와 유사한 명령을 실행하여 관리 클러스터에 테인트를 추가할 수 있습니다.
oc patch managedcluster <managed_cluster_name> -p '{"spec":{"taints":[{"key": "key", "value": "value", "effect": "NoSelect"}]}}' --type=merge
또는 다음 예와 유사한 명령을 실행하여 기존 테인트에 테인트를 추가할 수 있습니다.
oc patch managedcluster <managed_cluster_name> --type='json' -p='[{"op": "add", "path": "/spec/taints/-", "value": {"key": "key", "value": "value", "effect": "NoSelect"}}]'
테인트의 사양에는 다음 필드가 포함됩니다.
-
필수 키 - 클러스터에 적용되는 taint 키입니다. 이 값은 해당 배치에 추가되는 기준을 충족하기 위해 관리 클러스터의 허용 오차 값과 일치해야 합니다. 이 값을 확인할 수 있습니다. 예를 들어 이 값은
bar
또는foo.example.com/bar
일 수 있습니다. -
선택적 값 - taint 키의 taint 값입니다. 이 값은 해당 배치에 추가되는 기준을 충족하기 위해 관리 클러스터의 허용 오차 값과 일치해야 합니다. 예를 들어 이 값은
값이
될 수 있습니다. 필수 효과 - 테인트를 허용하지 않는 배치에 대한 테인트의 효과 또는 테인트 및 배치 허용 오차가 일치하지 않을 때 발생하는 상황입니다. effect 값은 다음 값 중 하나여야 합니다.
-
NoSelect
- 배치는 이 테인트를 허용하지 않는 한 클러스터를 선택할 수 없습니다. 테인트를 설정하기 전에 배치에서 클러스터를 선택한 경우 배치 결정에 따라 클러스터가 제거됩니다. -
NoSelectIfNew
- 스케줄러에서 새 클러스터인 경우 클러스터를 선택할 수 없습니다. 배치는 테인트를 허용하고 이미 클러스터 결정에 클러스터가 있는 경우에만 클러스터를 선택할 수 있습니다.
-
-
필수
TimeAdded
- 테인트가 추가된 시간입니다. 이 값은 자동으로 설정됩니다.
1.7.13.4.2. 관리 클러스터의 상태를 반영하기 위해 기본 제공 테인트 식별
관리 클러스터에 액세스할 수 없는 경우 클러스터를 배치에 추가하지 않아도 됩니다. 다음 테인트는 액세스할 수 없는 관리형 클러스터에 자동으로 추가됩니다.
cluster.open-cluster-management.io/unavailable
- 클러스터 상태가False
인ManagedClusterConditionAvailable
조건이 있는 경우 이 테인트가 관리 클러스터에 추가됩니다. 테인트에는 사용할 수 없는 클러스터가 예약되지 않도록NoSelect
및 빈 값이 적용됩니다. 이 테인트의 예는 다음 콘텐츠에 제공됩니다.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: cluster1 spec: hubAcceptsClient: true taints: - effect: NoSelect key: cluster.open-cluster-management.io/unavailable timeAdded: '2022-02-21T08:11:54Z'
cluster.open-cluster-management.io/unreachable
-ManagedClusterConditionAvailable
조건 상태가 알 수 없거나 조건이없는
경우 이 테인트가 관리 클러스터에 추가됩니다. 테인트는 연결할 수 없는 클러스터가 예약되지 않도록NoSelect
및 빈 값이 적용됩니다. 이 테인트의 예는 다음 콘텐츠에 제공됩니다.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: cluster1 spec: hubAcceptsClient: true taints: - effect: NoSelect key: cluster.open-cluster-management.io/unreachable timeAdded: '2022-02-21T08:11:06Z'
1.7.13.4.3. 배치에 허용 오차 추가
허용 오차는 배치에 적용되며 배치의 허용 오차와 일치하는 테인트가 없는 관리 클러스터를 복구할 수 있습니다. 허용 오차 사양에는 다음 필드가 포함됩니다.
- 선택적 키 - 키가 taint 키와 일치하여 배치를 허용합니다.
- 선택적 값 - 허용 오차의 값은 배치를 허용하기 위해 허용 오차의 값과 일치해야 합니다.
선택적 Operator - Operator는 키와 값 간의 관계를 나타냅니다. 유효한 연산자
는
동일하며존재합니다
. 기본값은동일합니다
. 허용 오차는 키가 동일할 때 테인트와 일치하며 효과가 동일하며 Operator는 다음 값 중 하나입니다.-
동일한 - 연산자는
동일하고
테인트 및 톨러레이션에서 값이 동일합니다. -
exists
- 값은 와일드카드이므로 배치에서 특정 카테고리의 모든 테인트를 허용할 수 있습니다.
-
동일한 - 연산자는
-
선택적 Effect - 일치시킬 테인트 효과입니다. 비워 두면 모든 테인트 효과와 일치합니다. 지정된 경우 허용되는 값은
NoSelect
또는NoSelectIfNew
입니다. -
optional TolerationSeconds - 관리되는 클러스터를 새 배치로 이동하기 전에 허용 오차에서 테인트를 허용하는 시간(초)입니다. effect 값이
NoSelect
또는PreferNoSelect
가 아닌 경우 이 필드는 무시됩니다. 기본값은nil
이며, 이는 시간 제한이 없음을 나타냅니다.TolerationSeconds
계산 시작 시간은 클러스터 예약 시간 또는TolerationSeconds
값이 추가되는 대신 테인트의TimeAdded
값으로 자동으로 나열됩니다.
다음 예제에서는 테인트가 있는 클러스터를 허용하는 허용 오차를 구성하는 방법을 보여줍니다.
이 예는 관리 클러스터의 테인트입니다.
apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: cluster1 spec: hubAcceptsClient: true taints: - effect: NoSelect key: gpu value: "true" timeAdded: '2022-02-21T08:11:06Z'
테인트를 허용할 수 있는 배치에 대한 허용 오차
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement1 namespace: default spec: tolerations: - key: gpu value: "true" operator: Equal
허용 오차 예제를 정의하면
key: gpu
및value: "true"
가 일치하기 때문에 배치로cluster1
을 선택할 수 있었습니다.
참고: 관리형 클러스터는 테인트에 대한 허용 오차가 포함된 배치에 배치되지 않습니다. 다른 배치에 동일한 허용 오차가 포함된 경우 관리 클러스터가 해당 배치 중 하나에 배치될 수 있습니다.
1.7.13.4.4. 임시 허용 오차 지정
TolerationSeconds
의 값은 허용 오차에서 테인트를 허용하는 기간을 지정합니다. 이 임시 허용 오차는 관리 클러스터가 오프라인 상태일 때 유용할 수 있으며 이 클러스터에 배포된 애플리케이션을 허용 시간 동안 다른 관리 클러스터로 전송할 수 있습니다.
예를 들어 다음 테인트가 있는 관리 클러스터에 연결할 수 없습니다.
apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: cluster1 spec: hubAcceptsClient: true taints: - effect: NoSelect key: cluster.open-cluster-management.io/unreachable timeAdded: '2022-02-21T08:11:06Z'
다음 예제에서와 같이 TolerationSeconds
의 값으로 배치를 정의하는 경우 워크로드는 5분 후에 사용 가능한 다른 관리 클러스터로 전송합니다.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: demo4 namespace: demo1 spec: tolerations: - key: cluster.open-cluster-management.io/unreachable operator: Exists tolerationSeconds: 300
관리형 클러스터에 5분 동안 연결할 수 없는 경우 애플리케이션이 다른 관리 클러스터로 이동됩니다.
1.7.13.4.5. 추가 리소스
- 테인트 및 허용 오차에 대한 자세한 내용은 테인트 및 허용 오차를 사용하여 OpenShift Container Platform 설명서에서 로깅 Pod 배치를 제어 합니다.
-
oc patch를 사용하는 방법을 알아보려면
oc patch
the OpenShift Container Platform 문서를 참조하십시오.
1.7.13.5. ManagedClusterSet에서 관리 클러스터 제거
관리 클러스터 세트에서 관리 클러스터를 제거하여 다른 관리 클러스터 세트로 이동하거나 세트의 관리 설정에서 제거할 수 있습니다. 콘솔 또는 CLI를 사용하여 설정된 관리 클러스터에서 관리 클러스터를 제거할 수 있습니다.
참고:
-
모든 관리 클러스터는 관리 클러스터 세트에 할당되어야 합니다. ManagedClusterSet에서 관리 클러스터를 제거하고 다른
ManagedClusterSet
기본
관리 클러스터 세트에 자동으로 추가됩니다. -
관리 클러스터에 Submariner 애드온이 설치된 경우
ManagedClusterSet
에서 관리 클러스터를 제거하기 전에 애드온을 제거해야 합니다.
1.7.13.5.1. 콘솔을 사용하여 ManagedClusterSet에서 클러스터 제거
콘솔을 사용하여 설정된 관리 클러스터에서 클러스터를 제거하려면 다음 단계를 완료합니다.
- Infrastructure > Clusters 를 클릭하고 Cluster sets 탭이 선택되어 있는지 확인합니다.
- 관리 클러스터 세트에서 제거할 클러스터 세트의 이름을 선택하여 클러스터 세트 세부 정보를 확인합니다.
- 작업 > 리소스 할당 관리를 선택합니다.
리소스 할당 관리 페이지에서 클러스터 세트에서 제거할 리소스의 확인란을 제거합니다.
이 단계에서는 이미 클러스터 세트의 멤버인 리소스를 제거합니다. 관리 클러스터의 세부 정보를 확인하여 리소스가 이미 설정된 클러스터의 멤버인지 확인할 수 있습니다.
참고: 하나의 관리형 클러스터에서 다른 관리 클러스터로 관리되는 클러스터를 이동하는 경우 두 관리 클러스터 세트에 대해 필요한 RBAC 권한이 있어야 합니다.
1.7.13.5.2. CLI를 사용하여 ManagedClusterSet에서 클러스터 제거
명령줄을 사용하여 관리 클러스터 세트에서 클러스터를 제거하려면 다음 단계를 완료합니다.
다음 명령을 실행하여 관리 클러스터 세트의 관리 클러스터 목록을 표시합니다.
oc get managedclusters -l cluster.open-cluster-management.io/clusterset=<cluster_set>
cluster_set
을 관리 클러스터 세트의 이름으로 교체합니다.- 제거할 클러스터의 항목을 찾습니다.
제거하려는 클러스터의 YAML 항목에서 레이블을 제거합니다. 라벨 예제를 보려면 다음 코드를 참조하십시오.
labels: cluster.open-cluster-management.io/clusterset: clusterset1
참고: 한 클러스터에서 다른 클러스터로 관리되는 클러스터를 이동하는 경우 두 관리 클러스터 세트에 대해 필요한 RBAC 권한이 있어야 합니다.
1.7.14. 배치
배치 리소스는 배치 네임스페이스에 바인딩된 ManagedClusterSets 에서
집합을 선택하는 규칙을 정의하는 네임스페이스 범위 리소스입니다.
ManagedCluster
Sets
필수 액세스: 클러스터 관리자, 클러스터 세트 관리자
배치 사용 방법에 대해 자세히 알아보려면 계속 읽으십시오.
1.7.14.1. 배치 개요
관리 클러스터의 배치 작동 방법에 대한 다음 정보를 참조하십시오.
-
Kubernetes 클러스터는 hub 클러스터에 클러스터 범위의
ManagedCluster
로 등록됩니다. -
ManagedCluster는
클러스터 범위의ManagedClusterSets
로 구성됩니다. -
ManagedClusterSets
는 워크로드 네임스페이스에 바인딩됩니다. -
네임스페이스 범위의 배치는 잠재적인
ManagedClusters
의 작업 세트를 선택하는 ManagedClusterSet -
배치는
labelSelector
및claimSelector
를 사용하여ManagedClusterSets
의ManagedClusters
를 필터링합니다. -
ManagedCluster의
배치는 테인트 및 허용 오차를 사용하여 제어할 수 있습니다. - 배치는 요구 사항에 따라 클러스터 순위를 정하고 클러스터의 하위 집합을 선택합니다.
- 배치는 삭제 중인 관리 클러스터를 선택하지 않습니다.
참고:
-
해당 네임스페이스에서
ManagedClusterSet
을 생성하여 하나 이상의ManagedClusterSet을 네임스페이스에 바인딩
해야 합니다. -
managedclustersets/bind
의 가상 하위 리소스에서CREATE
에 대한 역할 기반 액세스 권한이 있어야 합니다.
1.7.14.1.1. 추가 리소스
- 자세한 내용은 테인트 및 허용 오차 사용을 참조하십시오.
- API에 대한 자세한 내용은 배치 API를 참조하십시오.
- 배치를 사용하여 Selecting ManagedClusters 로 돌아갑니다.
1.7.14.2. ManagedClusterSets에서 ManagedClusters 필터링
labelSelector
또는 claimSelector
를 사용하여 필터링할 ManagedCluster
를 선택할 수 있습니다. 두 필터를 사용하는 방법을 알아보려면 다음 예제를 참조하십시오.
다음 예에서
labelSelector
는 레이블vendor가 있는 클러스터만 일치합니다. OpenShift :
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: predicates: - requiredClusterSelector: labelSelector: matchLabels: vendor: OpenShift
다음 예에서
claimSelector
는region.open-cluster-management.io
가us-west-1
인 클러스터와 일치합니다.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: predicates: - requiredClusterSelector: claimSelector: matchExpressions: - key: region.open-cluster-management.io operator: In values: - us-west-1
clusterSets
매개변수를 사용하여 특정 클러스터 세트의ManagedClusters
를 필터링할 수도 있습니다. 다음 예에서claimSelector
는clusterset1
및clusterset2
를 설정하는 클러스터와만 일치합니다.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: clusterSets: - clusterset1 - clusterset2 predicates: - requiredClusterSelector: claimSelector: matchExpressions: - key: region.open-cluster-management.io operator: In values: - us-west-1
numberOfClusters
paremeter를 사용하여 필터링할 ManagedClusters
수를 선택할 수도 있습니다. 다음 예제를 참조하십시오.
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Placement
metadata:
name: placement
namespace: ns1
spec:
numberOfClusters: 3 1
predicates:
- requiredClusterSelector:
labelSelector:
matchLabels:
vendor: OpenShift
claimSelector:
matchExpressions:
- key: region.open-cluster-management.io
operator: In
values:
- us-west-1
- 1
- 선택할
ManagedCluster 수를
지정합니다. 이전 예제는3
으로 설정됩니다.
1.7.14.2.1. 배치로 허용 오차 를 정의하여 ManagedCluster 필터링
일치하는 테인트를 사용하여 ManagedCluster를
필터링하는 방법을 알아보려면 다음 예제를 참조하십시오.
기본적으로 배치는 다음 예에서
cluster1
을 선택할 수 없습니다.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: cluster1 spec: hubAcceptsClient: true taints: - effect: NoSelect key: gpu value: "true" timeAdded: '2022-02-21T08:11:06Z'
cluster1
을 선택하려면 허용 오차를 정의해야 합니다. 다음 예제를 참조하십시오.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: tolerations: - key: gpu value: "true" operator: Equal
tolerationSeconds
매개변수를 사용하여 지정된 시간 동안 테인트가 일치하는 ManagedClusters
를 선택할 수도 있습니다. tolerationSeconds
는 허용 오차가 테인트에 바인딩된 기간을 정의합니다. tolerationSeconds
는 지정된 기간 후에 다른 관리 클러스터로 오프라인으로 이동하는 클러스터에 배포된 애플리케이션을 자동으로 전송할 수 있습니다.
다음 예제를 확인하여 tolerationSeconds
를 사용하는 방법을 알아봅니다.
다음 예에서는 관리 클러스터에 연결할 수 없습니다.
apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: cluster1 spec: hubAcceptsClient: true taints: - effect: NoSelect key: cluster.open-cluster-management.io/unreachable timeAdded: '2022-02-21T08:11:06Z'
tolerationSeconds
를 사용하여 배치를 정의하면 워크로드가 사용 가능한 다른 관리 클러스터로 전송됩니다. 다음 예제를 참조하십시오.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: tolerations: - key: cluster.open-cluster-management.io/unreachable operator: Exists tolerationSeconds: 300 1
- 1
- 워크로드를 전송할 시간(초)을 지정합니다.
1.7.14.2.2. 배치로 prioritizerPolicy 를 정의하여 ManagedClusters 우선순위 지정
배치와 함께 prioritizerPolicy
매개변수를 사용하여 ManagedCluster의
우선 순위를 지정하는 방법을 알아보려면 다음 예제를 확인합니다.
다음 예제에서는 가장 큰 할당 가능 메모리가 있는 클러스터를 선택합니다.
참고: Kubernetes Node Allocatable, 'allocatable'은 각 클러스터의 Pod에 사용할 수 있는 컴퓨팅 리소스의 양으로 정의됩니다.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: numberOfClusters: 1 prioritizerPolicy: configurations: - scoreCoordinate: builtIn: ResourceAllocatableMemory
다음 예제에서는 가장 큰 할당 가능 CPU 및 메모리가 있는 클러스터를 선택하고 리소스 변경에 대한 배치를 수행합니다.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: numberOfClusters: 1 prioritizerPolicy: configurations: - scoreCoordinate: builtIn: ResourceAllocatableCPU weight: 2 - scoreCoordinate: builtIn: ResourceAllocatableMemory weight: 2
다음 예제에서는
addOn
이 가장 큰 CPU 비율을 가진 두 클러스터를 선택하고 배치 결정을 고정합니다.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement namespace: ns1 spec: numberOfClusters: 2 prioritizerPolicy: mode: Exact configurations: - scoreCoordinate: builtIn: Steady weight: 3 - scoreCoordinate: type: AddOn addOn: resourceName: default scoreName: cpuratio
1.7.14.2.3. 애드온 상태를 기반으로 ManagedCluster 필터링
배포된 애드온의 상태에 따라 배치의 관리 클러스터를 선택할 수 있습니다. 예를 들어 관리 클러스터에서 활성화된 특정 애드온이 있는 경우에만 배치에 대해 관리형 클러스터를 선택할 수 있습니다.
배치를 생성할 때 애드온 레이블과 해당 상태를 지정할 수 있습니다. 관리형 클러스터에서 추가 기능이 활성화된 경우 ManagedCluster
리소스에서 레이블이 자동으로 생성됩니다. 추가 기능이 비활성화되면 레이블이 자동으로 제거됩니다.
각 애드온은 feature.open-cluster-management.io/addon-<addon_name>=<status_of_addon
> 형식의 레이블로 표시됩니다.
addon_name
을 선택한 관리 클러스터에서 활성화할 애드온의 이름으로 교체합니다.
status_of_addon
을 관리 클러스터를 선택하는 경우 애드온에 포함할 상태로 바꿉니다.
status_of_addon
:에 대해 가능한 값의 다음 표를 참조하십시오.
현재의 | 설명 |
---|---|
| 애드온이 활성화되어 있고 사용할 수 있습니다. |
| 애드온이 활성화되어 있지만 리스가 지속적으로 업데이트되지는 않습니다. |
| 애드온이 활성화되어 있지만 리스를 찾을 수 없습니다. 이는 관리 클러스터가 오프라인 상태일 때도 발생할 수 있습니다. |
예를 들어 사용 가능한 application-manager
애드온은 다음을 읽는 관리 클러스터의 레이블로 표시됩니다.
feature.open-cluster-management.io/addon-application-manager: available
애드온 및 해당 상태를 기반으로 배치를 생성하는 방법을 알아보려면 다음 예제를 참조하십시오.
다음 배치 예제에는
application-manager
가 활성화된 모든 관리 클러스터가 포함됩니다.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement1 namespace: ns1 spec: predicates: - requiredClusterSelector: labelSelector: matchExpressions: - key: feature.open-cluster-management.io/addon-application-manager operator: Exists
다음 배치 예제에서는
사용 가능한
상태로application-manager
가 활성화된 모든 관리 클러스터를 포함합니다.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement2 namespace: ns1 spec: predicates: - requiredClusterSelector: labelSelector: matchLabels: "feature.open-cluster-management.io/addon-application-manager": "available"
다음 배치 예제에는
application-manager
가 비활성화된 모든 관리 클러스터가 포함됩니다.apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement3 namespace: ns1 spec: predicates: - requiredClusterSelector: labelSelector: matchExpressions: - key: feature.open-cluster-management.io/addon-application-manager operator: DoesNotExist
1.7.14.2.4. 추가 리소스
- 자세한 내용은 Node Allocatable 을 참조하십시오.
- 다른 주제의 배치를 사용하여 Selecting ManagedClusters로 돌아갑니다.
1.7.14.3. PlacementDecision s 를 사용하여 선택한 ManagedCluster확인
클러스터에서 선택한 ManagedCluster
를 나타내기 위해 cluster.open-cluster-management.io/placement={placement_name}
레이블이 있는 하나 이상의 PlacementDecision
종류가 생성됩니다.
ManagedCluster
를 선택하고 PlacementDecision
에 추가하면 이 배치를 사용하는 구성 요소가 이 ManagedCluster
에 워크로드를 적용할 수 있습니다. ManagedCluster
가 더 이상 선택되지 않고 PlacementDecision
에서 제거된 후 이 ManagedCluster
에 적용되는 워크로드가 제거됩니다. API에 대한 자세한 내용은 PlacementDecisions API 를 참조하십시오.
다음 PlacementDecision
예제를 참조하십시오.
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: PlacementDecision metadata: labels: cluster.open-cluster-management.io/placement: placement1 name: placement1-kbc7q namespace: ns1 ownerReferences: - apiVersion: cluster.open-cluster-management.io/v1beta1 blockOwnerDeletion: true controller: true kind: Placement name: placement1 uid: 05441cf6-2543-4ecc-8389-1079b42fe63e status: decisions: - clusterName: cluster1 reason: '' - clusterName: cluster2 reason: '' - clusterName: cluster3 reason: ''
1.7.14.3.1. 추가 리소스
- 자세한 내용은 PlacementDecisions API 를 참조하십시오.
1.7.15. 클러스터 풀 관리 (기술 프리뷰)
클러스터 풀은 온디맨드 및 대규모로 구성된 Red Hat OpenShift Container Platform 클러스터에 빠르고 비용 효율적으로 액세스할 수 있습니다. 클러스터 풀은 필요한 경우 요청할 수 있는 Amazon Web Services, Google Cloud Platform 또는 Microsoft Azure에 구성 가능하고 확장 가능한 수의 OpenShift Container Platform 클러스터를 프로비저닝합니다. 개발, 연속 통합 및 프로덕션 시나리오를 위해 클러스터 환경을 제공하거나 교체할 때 특히 유용합니다. 즉시 클레임할 수 있도록 계속 실행할 클러스터를 지정할 수 있으며 나머지 클러스터는 몇 분 내에 다시 시작하고 클레임할 수 있도록 하이버네이트 상태로 유지됩니다.
ClusterClaim
리소스는 클러스터 풀에서 클러스터를 확인하는 데 사용됩니다. 클러스터 클레임이 생성되면 풀에 실행 중인 클러스터를 할당합니다. 실행 중인 클러스터를 사용할 수 없는 경우 클러스터를 제공하기 위해 하이버네이트 클러스터가 다시 시작되거나 새 클러스터가 프로비저닝됩니다. 클러스터 풀은 자동으로 새 클러스터를 생성하고 하이버네이터레이션 클러스터를 재개하여 풀에서 사용 가능한 클러스터의 지정된 크기와 수를 유지합니다.
클러스터 풀을 생성하는 절차는 클러스터를 생성하는 절차와 유사합니다. 클러스터 풀의 클러스터는 즉시 사용할 수 있도록 생성되지 않습니다.
1.7.15.1. 클러스터 풀 생성
클러스터 풀을 생성하는 절차는 클러스터를 생성하는 절차와 유사합니다. 클러스터 풀의 클러스터는 즉시 사용할 수 있도록 생성되지 않습니다.
필요한 액세스: 관리자
1.7.15.1.1. 사전 요구 사항
클러스터 풀을 생성하기 전에 다음 사전 요구 사항을 참조하십시오.
- 다중 클러스터 엔진 Operator 허브 클러스터를 배포해야 합니다.
- 공급자 환경에서 Kubernetes 클러스터를 생성할 수 있도록 다중 클러스터 엔진 Operator 허브 클러스터에 대한 인터넷 액세스가 필요합니다.
- AWS, GCP 또는 Microsoft Azure 공급자 인증 정보가 필요합니다. 자세한 내용은 인증 정보 관리 개요 를 참조하십시오.
- 공급자 환경에 구성된 도메인이 필요합니다. 도메인 구성 방법에 대한 지침은 공급자 설명서를 참조하십시오.
- 공급자 로그인 인증 정보가 필요합니다.
- OpenShift Container Platform 이미지 풀 시크릿이 필요합니다. 이미지 풀 시크릿 사용을 참조하십시오.
참고: 이 절차를 사용하여 클러스터 풀을 추가하면 풀에서 클러스터를 요청할 때 다중 클러스터 엔진 Operator 관리용 클러스터를 자동으로 가져옵니다. 클러스터 클레임과 관리를 위해 클레임된 클러스터를 자동으로 가져오지 않는 클러스터 풀을 생성하려면 clusterClaim
리소스에 다음 주석을 추가합니다.
kind: ClusterClaim
metadata:
annotations:
cluster.open-cluster-management.io/createmanagedcluster: "false" 1
- 1
"false"
라는 단어가 문자열임을 나타내기 위해 따옴표로 묶어야 합니다.
1.7.15.1.2. 클러스터 풀을 생성합니다.
클러스터 풀을 생성하려면 탐색 메뉴에서 Infrastructure > Clusters 를 선택합니다. 클러스터 풀 탭에는 액세스할 수 있는 클러스터 풀이 나열됩니다. 클러스터 풀 생성 을 선택하고 콘솔의 단계를 완료합니다.
클러스터 풀에 사용할 인프라 인증 정보가 없는 경우 인증 정보 추가 를 선택하여 생성할 수 있습니다.
목록에서 기존 네임스페이스를 선택하거나 새로 생성할 새 네임스페이스를 입력할 수 있습니다. 클러스터 풀이 클러스터와 동일한 네임스페이스에 있을 필요는 없습니다.
클러스터 풀의 RBAC 역할이 기존 클러스터 세트의 역할 할당을 공유하도록 하려면 클러스터 세트 이름을 선택할 수 있습니다. 클러스터 풀의 클러스터 세트는 클러스터 풀을 생성할 때만 설정할 수 있습니다. 클러스터 풀을 생성한 후에는 클러스터 풀 또는 클러스터 풀의 클러스터에 대한 클러스터 세트 연결을 변경할 수 없습니다. 클러스터 풀에서 요청하는 클러스터는 클러스터 풀과 동일한 클러스터 세트에 자동으로 추가됩니다.
참고: 클러스터 관리자
권한이 없는 경우 클러스터 세트를 선택해야 합니다. 이 경우 클러스터 세트 생성 요청은 클러스터 세트 이름을 포함하지 않는 경우 금지 오류와 함께 거부됩니다. 선택할 수 있는 클러스터 세트가 없는 경우 클러스터 관리자에게 문의하여 클러스터 세트를 생성하고 clusterset 관리자
권한을 부여합니다.
클러스터 풀 크기는 클러스터 풀에서
프로비저닝할 클러스터 수를 지정하는 반면, 클러스터 풀 실행 수는 풀이 계속 실행 중인 클러스터 수를 지정하고 즉시 사용할 준비가 된 클러스터 수를 지정합니다.
절차는 클러스터를 생성하는 절차와 매우 유사합니다.
공급자에 필요한 정보에 대한 자세한 내용은 다음 정보를 참조하십시오.
1.7.15.2. 클러스터 풀에서 클러스터 클레임
ClusterClaim
리소스는 클러스터 풀에서 클러스터를 확인하는 데 사용됩니다. 클러스터가 실행되고 클러스터 풀에서 준비되면 클레임이 완료됩니다. 클러스터 풀은 클러스터 풀에 지정된 요구 사항을 유지하기 위해 클러스터 풀에 실행 중인 새 및 hibernated 클러스터를 자동으로 생성합니다.
참고: 클러스터 풀에서 클레임된 클러스터가 더 이상 필요하지 않고 삭제되면 리소스가 삭제됩니다. 클러스터가 클러스터 풀로 반환되지 않습니다.
필요한 액세스: 관리자
1.7.15.2.1. 사전 요구 사항
클러스터 풀에서 클러스터를 요청하기 전에 다음을 사용할 수 있어야 합니다.
사용 가능한 클러스터가 있거나 없는 클러스터 풀입니다. 클러스터 풀에 사용 가능한 클러스터가 있는 경우 사용 가능한 클러스터가 클레임됩니다. 클러스터 풀에 사용 가능한 클러스터가 없으면 클레임을 충족하기 위해 클러스터가 생성됩니다. 클러스터 풀을 생성하는 방법에 대한 자세한 내용은 클러스터 풀 생성 을 참조하십시오.
1.7.15.2.2. 클러스터 풀에서 클러스터 클레임
클러스터 클레임을 생성할 때 클러스터 풀에서 새 클러스터를 요청합니다. 클러스터를 사용할 수 있을 때 풀에서 클러스터를 확인합니다. 자동 가져오기를 비활성화하지 않는 한 클레임된 클러스터는 관리 클러스터 중 하나로 자동으로 가져옵니다.
클러스터를 클레임하려면 다음 단계를 완료합니다.
- 탐색 메뉴에서 Infrastructure > Clusters 를 클릭하고 Cluster pools 탭을 선택합니다.
- 클러스터에서 요청할 클러스터 풀의 이름을 찾아 Claim 클러스터 를 선택합니다.
클러스터를 사용할 수 있는 경우 클레임되고 Managed 클러스터 탭에 즉시 표시됩니다. 사용 가능한 클러스터가 없는 경우 hibernated 클러스터를 다시 시작하거나 새 클러스터를 프로비저닝하는 데 몇 분이 걸릴 수 있습니다. 이 시간 동안 클레임 상태가 보류
중입니다. 클러스터 풀을 확장하여 보류 중인 클레임을 보거나 삭제합니다.
클레임된 클러스터는 클러스터 풀에 있는 시점과 연결된 클러스터 세트의 멤버로 유지됩니다. 클레임할 때 클레임된 클러스터의 클러스터 세트를 변경할 수 없습니다.
참고: 클라우드 공급자 인증 정보의 풀 시크릿, SSH 키 또는 기본 도메인에 대한 변경 사항은 원래 인증 정보를 사용하여 이미 프로비저닝되었으므로 클러스터 풀에서 클레임한 기존 클러스터에는 반영되지 않습니다. 콘솔을 사용하여 클러스터 풀 정보를 편집할 수 없지만 CLI 인터페이스를 사용하여 정보를 업데이트하여 업데이트할 수 있습니다. 업데이트된 정보가 포함된 인증 정보를 사용하여 새 클러스터 풀을 생성할 수도 있습니다. 새 풀에서 생성된 클러스터는 새 인증 정보에 제공된 설정을 사용합니다.
1.7.15.3. 클러스터 풀 릴리스 이미지 업데이트
클러스터 풀의 클러스터가 잠시 중단된 상태로 유지되는 경우 클러스터의 Red Hat OpenShift Container Platform 릴리스 이미지가 백 수준이 될 수 있습니다. 이 경우 클러스터 풀에 있는 클러스터의 릴리스 이미지 버전을 업그레이드할 수 있습니다.
필요한 액세스: 편집
클러스터 풀의 클러스터의 OpenShift Container Platform 릴리스 이미지를 업데이트하려면 다음 단계를 완료합니다.
참고: 이 절차에서는 클러스터 풀에 이미 클레임된 클러스터 풀에서 클러스터를 업데이트하지 않습니다. 이 절차를 완료한 후 릴리스 이미지에 대한 업데이트는 클러스터 풀과 관련된 다음 클러스터에만 적용됩니다.
- 이 절차를 사용하여 릴리스 이미지를 업데이트한 후 클러스터 풀에서 생성한 클러스터입니다.
- 클러스터 풀에서 하이버팅되는 클러스터입니다. 이전 릴리스 이미지가 있는 기존의 중단된 클러스터가 제거되고 새 릴리스 이미지가 있는 새 클러스터가 해당 클러스터를 대체합니다.
- 탐색 메뉴에서 인프라 > 클러스터를 클릭합니다.
- Cluster Pool 탭을 선택합니다.
- Cluster Pool 표에서 업데이트할 클러스터 풀의 이름을 찾습니다.
- 표에서 클러스터 풀 의 옵션 메뉴를 클릭하고 릴리스 이미지 업데이트를 선택합니다.
- 이 클러스터 풀에서 향후 클러스터 생성에 사용할 새 릴리스 이미지를 선택합니다.
클러스터 풀 릴리스 이미지가 업데이트되었습니다.
팁: 각 클러스터 풀의 상자를 선택하고 Actions 메뉴를 사용하여 선택한 클러스터 풀의 릴리스 이미지를 업데이트하여 여러 클러스터 풀의 릴리스 이미지를 업데이트할 수 있습니다.
1.7.15.4. 클러스터 풀 스케일링 (기술 프리뷰)
클러스터 풀 크기의 클러스터 수를 늘리거나 줄여 클러스터 풀의 클러스터 수를 변경할 수 있습니다.
필수 액세스: 클러스터 관리자
클러스터 풀의 클러스터 수를 변경하려면 다음 단계를 완료합니다.
- 탐색 메뉴에서 인프라 > 클러스터를 클릭합니다.
- Cluster Pool 탭을 선택합니다.
- 변경할 클러스터 풀의 옵션 메뉴에서 클러스터 풀 스케일링을 선택합니다.
- 풀 크기 값을 변경합니다.
- 선택적으로 실행 중인 클러스터 수를 업데이트하여 요청 시 즉시 사용 가능한 클러스터 수를 늘리거나 줄일 수 있습니다.
클러스터 풀은 새 값을 반영하도록 확장됩니다.
1.7.15.5. 클러스터 풀 삭제
클러스터 풀을 생성하고 더 이상 필요하지 않은 경우 클러스터 풀을 제거할 수 있습니다.
중요: 클러스터 클레임이 없는 클러스터 풀만 제거할 수 있습니다.
필수 액세스: 클러스터 관리자
클러스터 풀을 삭제하려면 다음 단계를 완료합니다.
- 탐색 메뉴에서 인프라 > 클러스터를 클릭합니다.
- Cluster Pool 탭을 선택합니다.
삭제할 클러스터 풀의 옵션 메뉴에서 확인 상자에
confirm
를 입력하고 Destroy 를 선택합니다.참고:
- 클러스터 풀에 클러스터 클레임이 있는 경우 Destroy 버튼이 비활성화됩니다.
- 클러스터 풀이 포함된 네임스페이스는 삭제되지 않습니다. 이러한 클러스터의 클러스터 클레임 리소스가 동일한 네임스페이스에 생성되므로 네임스페이스를 삭제하면 클러스터 풀에서 클레임된 클러스터가 제거됩니다.
팁: 각 클러스터 풀의 상자를 선택하고 Actions 메뉴를 사용하여 선택한 클러스터 풀을 제거하여 한 가지 작업으로 여러 클러스터 풀을 제거할 수 있습니다.
1.7.16. ManagedServiceAccount 애드온 활성화
지원되는 다중 클러스터 엔진 Operator 버전을 설치하면 ManagedServiceAccount
애드온이 기본적으로 활성화됩니다.
중요: 다중 클러스터 엔진 Operator 버전 2.4에서 hub 클러스터를 업그레이드하고 업그레이드하기 전에 ManagedServiceAccount
애드온을 활성화하지 않은 경우 수동으로 추가 기능을 활성화해야 합니다.
ManagedServiceAccount
를 사용하면 관리 클러스터에서 서비스 계정을 생성하거나 삭제할 수 있습니다.
필요한 액세스: 편집기
hub 클러스터의 < managed_cluster
> 네임스페이스에 ManagedServiceAccount
사용자 정의 리소스가 생성되면 관리 클러스터에 ServiceAccount
가 생성됩니다.
TokenRequest
는 관리형 클러스터의 Kubernetes API 서버에 대한 ServiceAccount
를 사용하여 수행됩니다. 그런 다음 토큰은 hub 클러스터의 < target_managed_cluster>
네임스페이스의 Secret
에 저장됩니다.
참고: 토큰이 만료되고 순환될 수 있습니다. 토큰 요청에 대한 자세한 내용은 TokenRequest 를 참조하십시오.
1.7.16.1. 사전 요구 사항
- 지원되는 Red Hat OpenShift Container Platform 환경이 필요합니다.
- 다중 클러스터 엔진 Operator가 설치되어 있어야 합니다.
1.7.16.2. ManagedServiceAccount 활성화
허브 클러스터 및 관리 클러스터에 대한 ManagedServiceAccount
애드온을 활성화하려면 다음 단계를 완료하십시오.
-
허브 클러스터에서
ManagedServiceAccount
애드온을 활성화합니다. 자세한 내용은 고급 구성 을 참조하십시오. ManagedServiceAccount
애드온을 배포하고 대상 관리 클러스터에 적용합니다. 다음 YAML 파일을 생성하고target_managed_cluster
를Managed-ServiceAccount
애드온을 적용하는 관리 클러스터의 이름으로 바꿉니다.apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: managed-serviceaccount namespace: <target_managed_cluster> spec: installNamespace: open-cluster-management-agent-addon
다음 명령을 실행하여 파일을 적용합니다.
oc apply -f -
이제 관리 클러스터에 대해
ManagedServiceAccount
플러그인을 활성화했습니다.ManagedServiceAccount
를 구성하려면 다음 단계를 참조하십시오.다음 YAML 소스를 사용하여
ManagedServiceAccount
사용자 정의 리소스를 생성합니다.apiVersion: authentication.open-cluster-management.io/v1alpha1 kind: ManagedServiceAccount metadata: name: <managedserviceaccount_name> namespace: <target_managed_cluster> spec: rotation: {}
-
managed_serviceaccount_name
을ManagedServiceAccount
의 이름으로 교체합니다. -
target_managed_cluster
를ManagedServiceAccount
를 적용하는 관리 클러스터의 이름으로 교체합니다.
-
확인하려면
ManagedServiceAccount
오브젝트 상태에서tokenSecretRef
속성을 확인하여 시크릿 이름과 네임스페이스를 찾습니다. 계정 및 클러스터 이름을 사용하여 다음 명령을 실행합니다.oc get managedserviceaccount <managed_serviceaccount_name> -n <target_managed_cluster> -o yaml
관리 클러스터에서 생성된
ServiceAccount
에 연결된 검색된 토큰이 포함된 보안을 확인합니다.다음 명령을 실행합니다.
oc get secret <managed_serviceaccount_name> -n <target_managed_cluster> -o yaml
1.7.17. 클러스터 라이프사이클 고급 구성
설치 중 또는 설치 후 일부 클러스터 설정을 구성할 수 있습니다.
1.7.17.1. API 서버 인증서 사용자 정의
관리형 클러스터는 OpenShift Kube API 서버 외부 로드 밸런서와의 상호 연결을 통해 hub 클러스터와 통신합니다. OpenShift Container Platform을 설치할 때 기본 OpenShift Kube API 서버 인증서는 내부 Red Hat OpenShift Container Platform 클러스터 인증 기관(CA)에서 발급합니다. 필요한 경우 인증서를 추가하거나 변경할 수 있습니다.
API 서버 인증서를 변경하면 관리 클러스터와 허브 클러스터 간의 통신에 영향을 미칠 수 있습니다. 제품을 설치하기 전에 이름이 지정된 인증서를 추가하면 관리 클러스터를 오프라인 상태로 둘 수 있는 문제를 방지할 수 있습니다.
다음 목록에는 인증서를 업데이트해야 하는 몇 가지 예가 포함되어 있습니다.
외부 로드 밸런서의 기본 API 서버 인증서를 자체 인증서로 교체하려고 합니다. OpenShift Container Platform 설명서에서 API 서버 인증서 추가 의 지침에 따라 호스트 이름
api.<cluster_name>.<base_domain
>이 포함된 이름이 지정된 인증서를 추가하여 외부 로드 밸런서의 기본 API 서버 인증서를 교체할 수 있습니다. 인증서를 교체하면 관리 클러스터 중 일부가 오프라인 상태로 이동할 수 있습니다. 인증서를 업그레이드한 후 클러스터가 오프라인 상태인 경우 인증서 변경 후 가져온 클러스터 문제 해결 지침에 따라 문제를 해결합니다.참고: 제품을 설치하기 전에 이름이 지정된 인증서를 추가하면 클러스터가 오프라인 상태로 전환되지 않습니다.
외부 로드 밸런서에 대해 이름이 지정된 인증서가 만료되어 이를 교체해야 합니다. 이전 인증서와 새 인증서가 중간 인증서 수에도 불구하고 동일한 루트 CA 인증서를 공유하는 경우 OpenShift Container Platform 설명서의 API 서버 인증서 추가 지침에 따라 새 인증서에 대한 새 시크릿을 생성할 수 있습니다. 그런 다음 호스트 이름
api.<cluster_name>.<base_domain
>에 대한 제공 인증서 참조를APIServer
사용자 정의 리소스의 새 시크릿으로 업데이트합니다. 그렇지 않으면 이전 및 새 인증서에 다른 루트 CA 인증서가 있는 경우 다음 단계를 완료하여 인증서를 교체합니다.다음 예와 유사한
APIServer
사용자 정의 리소스를 찾습니다.apiVersion: config.openshift.io/v1 kind: APIServer metadata: name: cluster spec: audit: profile: Default servingCerts: namedCertificates: - names: - api.mycluster.example.com servingCertificate: name: old-cert-secret
다음 명령을 실행하여 기존 및 새 인증서의 콘텐츠가 포함된
openshift-config
네임스페이스에 새 보안을 생성합니다.이전 인증서를 새 인증서로 복사합니다.
cp old.crt combined.crt
새 인증서의 내용을 이전 인증서의 사본에 추가합니다.
cat new.crt >> combined.crt
결합된 인증서를 적용하여 보안을 생성합니다.
oc create secret tls combined-certs-secret --cert=combined.crt --key=old.key -n openshift-config
APIServer
리소스를 업데이트하여servingCertificate
로 결합된 인증서를 참조합니다.apiVersion: config.openshift.io/v1 kind: APIServer metadata: name: cluster spec: audit: profile: Default servingCerts: namedCertificates: - names: - api.mycluster.example.com servingCertificate: name: combined-cert-secret
- 약 15분 후에 새 인증서와 이전 인증서가 모두 포함된 CA 번들이 관리형 클러스터로 전파됩니다.
다음 명령을 입력하여 새 인증서 정보만 포함된
openshift-config
네임스페이스에new-cert-secret
이라는 다른 보안을 생성합니다.oc create secret tls new-cert-secret --cert=new.crt --key=new.key -n openshift-config {code}
new-cert-secret
을 참조하도록servingCertificate
의 이름을 변경하여APIServer
리소스를 업데이트합니다. 리소스는 다음 예와 유사할 수 있습니다.apiVersion: config.openshift.io/v1 kind: APIServer metadata: name: cluster spec: audit: profile: Default servingCerts: namedCertificates: - names: - api.mycluster.example.com servingCertificate: name: new-cert-secret
약 15분 후에 이전 인증서가 CA 번들에서 제거되고 변경 사항이 관리 클러스터에 자동으로 전파됩니다.
참고: 관리 클러스터는 호스트 이름 api.<cluster_name>.<base_domain
>을 사용하여 hub 클러스터에 액세스해야 합니다. 다른 호스트 이름으로 구성된 이름이 지정된 인증서를 사용할 수 없습니다.
1.7.17.2. 허브 클러스터와 관리 클러스터 간의 프록시 구성
Kubernetes Operator 허브 클러스터의 다중 클러스터 엔진에 관리 클러스터를 등록하려면 관리 클러스터를 다중 클러스터 엔진 Operator 허브 클러스터로 전송해야 합니다. 관리되는 클러스터가 다중 클러스터 엔진 Operator 허브 클러스터에 직접 연결할 수 없는 경우가 있습니다. 이 경우 관리 클러스터의 통신이 HTTP 또는 HTTPS 프록시 서버를 통해 다중 클러스터 엔진 Operator 허브 클러스터에 액세스할 수 있도록 프록시 설정을 구성합니다.
예를 들어 다중 클러스터 엔진 Operator 허브 클러스터는 퍼블릭 클라우드에 있으며 관리 클러스터는 방화벽 뒤의 프라이빗 클라우드 환경에 있습니다. 프라이빗 클라우드에서의 통신은 HTTP 또는 HTTPS 프록시 서버를 통해서만 진행할 수 있습니다.
1.7.17.2.1. 사전 요구 사항
- HTTP 터널을 지원하는 HTTP 또는 HTTPS 프록시 서버가 실행되고 있습니다. 예를 들어 HTTP 연결 방법입니다.
- HTTP 또는 HTTPS 프록시 서버에 연결할 수 있는 조작된 클러스터가 있으며 프록시 서버는 다중 클러스터 엔진 operator hub 클러스터에 액세스할 수 있습니다.
hub 클러스터와 관리 클러스터 간의 프록시 설정을 구성하려면 다음 단계를 완료합니다.
프록시 설정을 사용하여
KlusterConfig
리소스를 생성합니다.HTTP 프록시를 사용하여 다음 구성을 참조하십시오.
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: http-proxy spec: hubKubeAPIServerConfig: proxyURL: "http://<username>:<password>@<ip>:<port>"
HTTPS 프록시를 사용하여 다음 구성을 참조하십시오.
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: https-proxy spec: hubKubeAPIServerConfig: proxyURL: "https://<username>:<password>@<ip>:<port>" trustedCABundles: - name: "proxy-ca-bundle" caBundle: name: <configmap-name> namespace: <configmap-namespace>
참고: HTTPS 프록시에는 CA 번들이 필요합니다. 하나 이상의 CA 인증서가 포함된 ConfigMap을 나타냅니다. 다음 명령을 실행하여 ConfigMap을 생성할 수 있습니다.
oc create -n <configmap-namespace> configmap <configmap-name> --from-file=ca.crt=/path/to/ca/file
관리 클러스터를 생성할 때
KlusterletConfig
리소스를 참조하는 주석을 추가하여KlusterletConfig
리소스를 선택합니다. 다음 예제를 참조하십시오.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: annotations: agent.open-cluster-management.io/klusterlet-config: <klusterlet-config-name> name:<managed-cluster-name> spec: hubAcceptsClient: true leaseDurationSeconds: 60
참고:
-
다중 클러스터 엔진 Operator 콘솔에서 작업할 때
ManagedCluster
리소스에 주석을 추가하도록 YAML 보기를 전환해야 할 수 있습니다. -
글로벌
KlusterletConfig
를 사용하여 바인딩에 주석을 사용하지 않고도 모든 관리 클러스터에서 구성을 활성화할 수 있습니다.
-
다중 클러스터 엔진 Operator 콘솔에서 작업할 때
1.7.17.2.2. 허브 클러스터와 관리 클러스터 간의 프록시 비활성화
개발이 변경되면 HTTP 또는 HTTPS 프록시를 비활성화해야 할 수 있습니다.
-
ManagedCluster
리소스로 이동합니다. -
agent.open-cluster-management.io/klusterlet-config
주석을 제거합니다.
1.7.17.2.3. 선택 사항: 특정 노드에서 실행되도록 klusterlet 구성
Red Hat Advanced Cluster Management for Kubernetes를 사용하여 클러스터를 생성할 때 관리 클러스터에 대한 nodeSelector
및 허용 오차
주석을 구성하여 관리 대상 클러스터 klusterlet을 실행할 노드를 지정할 수 있습니다. 다음 설정을 구성하려면 다음 단계를 완료합니다.
- 콘솔의 클러스터 페이지에서 업데이트할 관리 클러스터를 선택합니다.
YAML 스위치를
On
으로 설정하여 YAML 콘텐츠를 확인합니다.참고: YAML 편집기는 클러스터를 가져오거나 생성하는 경우에만 사용할 수 있습니다. 가져오기 또는 생성 후 관리형 클러스터 YAML 정의를 편집하려면 OpenShift Container Platform 명령줄 인터페이스 또는 Red Hat Advanced Cluster Management 검색 기능을 사용해야 합니다.
-
관리 클러스터 YAML 정의에
nodeSelector
주석을 추가합니다. 이 주석의 키는open-cluster-management/nodeSelector
입니다. 이 주석의 값은 JSON 형식의 문자열 맵입니다. 관리 클러스터 YAML 정의에
허용 오차
항목을 추가합니다. 이 주석의 키는open-cluster-management/tolerations
입니다. 이 주석의 값은 JSON 형식의 허용 오차 목록을 나타냅니다. 결과 YAML은 다음 예와 유사할 수 있습니다.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: annotations: open-cluster-management/nodeSelector: '{"dedicated":"acm"}' open-cluster-management/tolerations: '[{"key":"dedicated","operator":"Equal","value":"acm","effect":"NoSchedule"}]'
- 콘텐츠가 올바른 노드에 배포되도록 하려면 klusterlet 애드온에 대한 nodeSelector 구성 및 허용 오차의 단계를 완료합니다.
1.7.17.3. 관리 클러스터를 가져올 때 hub 클러스터 API 서버의 서버 URL 및 CA 번들 사용자 정의 (기술 프리뷰)
관리 클러스터와 허브 클러스터 사이에 중간 구성 요소가 있는 경우 다중 클러스터 엔진 Operator 허브 클러스터에 관리 클러스터를 등록하지 못할 수 있습니다. 중간 구성 요소의 예로는 가상 IP, 로드 밸런서, 역방향 프록시 또는 API 게이트웨이가 포함됩니다. 중간 구성 요소가 있는 경우 관리 클러스터를 가져올 때 hub 클러스터 API 서버에 사용자 정의 서버 URL 및 CA 번들을 사용해야 합니다.
1.7.17.3.1. 사전 요구 사항
- hub 클러스터 API 서버가 관리 클러스터에 액세스할 수 있도록 중간 구성 요소를 구성해야 합니다.
중간 구성 요소가 관리 클러스터와 허브 클러스터 API 서버 간의 SSL 연결을 종료하는 경우 SSL 연결을 브리지하고 원래 요청의 인증 정보를 hub 클러스터 API 서버의 백엔드로 전달해야 합니다. Kubernetes API 서버의 사용자 유휴 기능을 사용하여 SSL 연결을 브리지할 수 있습니다.
중간 구성 요소는 원래 요청에서 클라이언트 인증서를 추출하고 인증서 제목의 CN(Common Name) 및 조직(O)을 가장 헤더로 추가한 다음 수정된 가장 요청을 허브 클러스터 API 서버의 백엔드로 전달합니다.
참고: SSL 연결을 브리지하는 경우 클러스터 프록시 애드온이 작동하지 않습니다.
1.7.17.3.2. 서버 URL 및 허브 클러스터 CA 번들 사용자 정의
관리 클러스터를 가져올 때 사용자 정의 허브 API 서버 URL 및 CA 번들을 사용하려면 다음 단계를 완료하십시오.
사용자 정의 허브 클러스터 API 서버 URL 및 CA 번들을 사용하여
KlusterConfig
리소스를 생성합니다. 다음 예제를 참조하십시오.apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: <name> 1 spec: hubKubeAPIServerConfig: url: "https://api.example.com:6443" 2 serverVerificationStrategy: UseCustomCABundles trustedCABundles: - name: <custom-ca-bundle> 3 caBundle: name: <custom-ca-bundle-configmap> 4 namespace: <multicluster-engine> 5
- 1
- klusterlet 구성 이름을 추가합니다.
- 2
- 사용자 지정 서버 URL을 추가합니다.
- 3
- 사용자 정의 CA 번들 이름을 추가합니다. 내부 사용을 위해 예약된
자동 감지를
제외한 모든 값을 사용할 수 있습니다. - 4
- CA 번들 ConfigMap의 이름을 추가합니다. 다음 명령을 실행하여 ConfigMap을 생성할 수 있습니다.
oc create -n <configmap-namespace> configmap-name> --from-file=ca.crt=/path/to/ca/file
- 5
- CA 번들 ConfigMap의 네임스페이스를 추가합니다.
리소스를 참조하는 주석을 추가하여 관리 클러스터를 생성할 때
KlusterletConfig
리소스를 선택합니다. 다음 예제를 참조하십시오.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: annotations: agent.open-cluster-management.io/klusterlet-config: 1 name: 2 spec: hubAcceptsClient: true leaseDurationSeconds: 60
참고:
-
콘솔을 사용하는 경우 YAML 보기를 활성화하여
ManagedCluster
리소스에 주석을 추가해야 할 수 있습니다. -
글로벌
KlusterletConfig
를 사용하여 바인딩에 주석을 사용하지 않고도 모든 관리 클러스터에서 구성을 활성화할 수 있습니다.
-
콘솔을 사용하는 경우 YAML 보기를 활성화하여
1.7.17.3.3. 글로벌 KlusterletConfig구성
KlusterletConfig
리소스를 생성하고 이름을 global
로 설정하면 글로벌 KlusterletConfig
의 구성이 모든 관리 클러스터에 자동으로 적용됩니다.
글로벌 KlusterletConfig
가 있는 환경에서는 cluster-specific KlusterletConfig
를 생성하고 agent.open-cluster-management.io/klusterlet-config: <klusterletconfig-name> 주석을
바인딩할 수도 있습니다. 동일한 필드에 다른 값을 설정하면 클러스터별 ManagedCluster 리소스에
추가하여 관리 클러스터에KlusterletConfig
의 값이 글로벌 KlusterletConfig
값을 덮어씁니다.
hubKubeAPIServerURL
필드에 KlusterletConfig
및 글로벌 KlusterletConfig
에 다른 값이 설정되어 있는 다음 예제를 참조하십시오. "https://api.example.test.com:6443" 값은 "https://api.example.global.com:6443" 값을 덮어씁니다.
사용 중단: hubKubeAPIServerURL
필드는 더 이상 사용되지 않습니다. 자세한 내용은 API 사용 중단을 참조하십시오.
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: test spec: hubKubeAPIServerConfig: url: "https://api.example.test.com:6443" --- apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: global spec: hubKubeAPIServerConfig: url: "https://api.example.global.com:6443"
글로벌 KlusterletConfig
의 값은 관리 클러스터에 바인딩된 클러스터별 KlusterletConfig
가 없거나 동일한 필드가 없거나 클러스터별 KlusterletConfig
에 값이 없는 경우 사용됩니다.
글로벌 KlusterletConfig
의 hubKubeAPIServerURL
필드에 있는 "example.global.com"
값이 KlusterletConfig
를 덮어씁니다.
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: test spec: hubKubeAPIServerURL: "" — apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: global spec: hubKubeAPIServerURL: "example.global.com"
글로벌 KlusterletConfig
의 hubKubeAPIServerURL
필드에 있는 "example.global.com"
값도 KlusterletConfig
를 덮어씁니다.
apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: test — apiVersion: config.open-cluster-management.io/v1alpha1 kind: KlusterletConfig metadata: name: global spec: hubKubeAPIServerURL: "example.global.com"
1.7.17.4. 추가 리소스
1.7.18. 관리에서 클러스터 제거
다중 클러스터 엔진 Operator를 사용하여 생성된 관리에서 OpenShift Container Platform 클러스터를 제거하면 이를 분리 하거나 제거할 수 있습니다. 클러스터를 분리하면 관리에서 제거되지만 완전히 삭제되지는 않습니다. 관리하려는 경우 다시 가져올 수 있습니다. 이는 클러스터가 Ready 상태에 있는 경우에만 옵션입니다.
다음 절차에서는 다음 상황 중 하나로 관리에서 클러스터를 제거합니다.
- 클러스터를 이미 삭제하고 Red Hat Advanced Cluster Management에서 삭제된 클러스터를 제거하려고 합니다.
- 관리에서 클러스터를 제거하려고 하지만 클러스터를 삭제하지 않았습니다.
중요:
- 클러스터를 삭제하면 관리에서 이를 제거하고 클러스터의 구성 요소를 삭제합니다.
관리 클러스터를 분리하거나 삭제하면 관련 네임스페이스가 자동으로 삭제됩니다. 이 네임스페이스에 사용자 정의 리소스를 배치하지 마십시오.
1.7.18.1. 콘솔을 사용하여 클러스터 제거
탐색 메뉴에서 Infrastructure > Clusters 로 이동하여 관리에서 제거하려는 클러스터 옆에 있는 옵션 메뉴에서 Destroy cluster 또는 Detach 클러스터를 선택합니다.
팁: 분리 또는 삭제하려는 클러스터의 확인란을 선택하고 Detach 또는 Destroy 를 선택하여 여러 클러스터를 분리하거나 제거할 수 있습니다.
참고: local-cluster
라는 허브 클러스터를 관리하는 동안 허브 클러스터를 분리하려고 하면 disableHubSelfManagement
의 기본 설정이 false
인지 확인합니다. 이 설정으로 인해 허브 클러스터가 분리될 때 다시 가져와서 자체적으로 관리하며 MultiClusterHub
컨트롤러를 조정합니다. hub 클러스터에서 분리 프로세스를 완료하고 다시 가져오는 데 몇 시간이 걸릴 수 있습니다.
프로세스가 완료될 때까지 기다리지 않고 허브 클러스터를 다시 가져오려면 다음 명령을 입력하여 multiclusterhub-operator
Pod를 재시작하고 더 빠르게 다시 가져올 수 있습니다.
oc delete po -n open-cluster-management `oc get pod -n open-cluster-management | grep multiclusterhub-operator| cut -d' ' -f1`
온라인 연결 중 설치에 설명된 대로 disableHubSelfManagement
값을 true
로 변경하여 Hub 클러스터의 값을 자동으로 가져오지 않도록 할 수 있습니다.
1.7.18.2. 명령줄을 사용하여 클러스터 제거
hub 클러스터의 명령줄을 사용하여 관리 클러스터를 분리하려면 다음 명령을 실행합니다.
oc delete managedcluster $CLUSTER_NAME
분리 후 관리되는 클러스터를 삭제하려면 다음 명령을 실행합니다.
oc delete clusterdeployment <CLUSTER_NAME> -n $CLUSTER_NAME
참고:
-
관리 클러스터를 제거하지 않으려면
ClusterDeployment
사용자 정의 리소스에서spec.preserveOnDelete
매개변수를true
로 설정합니다. disableHubSelfManagement
의 기본 설정은false
입니다.false'setting을 사용하면 'local-cluster 라고도 하는 hub
클러스터가 분리될 때 자체 가져오기 및 관리되고MultiClusterHub
컨트롤러를 조정합니다.연결 해제 및 다시 가져오기 프로세스는 허브 클러스터를 완료하는 데 몇 시간이 걸릴 수 있습니다. 프로세스가 완료될 때까지 기다리지 않고 허브 클러스터를 다시 가져오려면 다음 명령을 입력하여
multiclusterhub-operator
Pod를 재시작하고 더 빨리 다시 가져올 수 있습니다.oc delete po -n open-cluster-management `oc get pod -n open-cluster-management | grep multiclusterhub-operator| cut -d' ' -f1`
disableHubSelfManagement
값을true
로 변경하여 hub 클러스터의 값을 자동으로 가져오지 않도록 할 수 있습니다. 온라인으로 연결하는 동안 설치를 참조하십시오.
1.7.18.3. 클러스터를 제거한 후 나머지 리소스 제거
관리 클러스터에 제거된 리소스가 남아 있는 경우 나머지 구성 요소를 모두 제거하는 데 필요한 추가 단계가 있습니다. 이러한 추가 단계가 필요한 경우 다음 예제가 포함됩니다.
-
관리되는 클러스터는 완전히 생성되기 전에 분리되었으며
klusterlet
과 같은 구성 요소는 관리 클러스터에 남아 있습니다. - 클러스터를 관리하고 있는 허브는 관리 클러스터를 분리하기 전에 손실되거나 삭제되었으며 허브에서 관리 클러스터를 분리할 방법이 없습니다.
- 관리형 클러스터는 분리될 때 온라인 상태가 아닙니다.
이러한 상황 중 하나가 관리형 클러스터의 분리에 적용되는 경우 관리 클러스터에서 제거할 수 없는 몇 가지 리소스가 있습니다. 관리 클러스터를 분리하려면 다음 단계를 완료합니다.
-
oc
명령줄 인터페이스가 구성되어 있는지 확인합니다. 관리 클러스터에
KUBECONFIG
가 구성되어 있는지 확인합니다.oc get ns | grep open-cluster-management-agent
를 실행하면 두 개의 네임스페이스가 표시됩니다.open-cluster-management-agent Active 10m open-cluster-management-agent-addon Active 10m
다음 명령을 사용하여
klusterlet
사용자 정의 리소스를 제거합니다.oc get klusterlet | grep klusterlet | awk '{print $1}' | xargs oc patch klusterlet --type=merge -p '{"metadata":{"finalizers": []}}'
다음 명령을 실행하여 나머지 리소스를 제거합니다.
oc delete namespaces open-cluster-management-agent open-cluster-management-agent-addon --wait=false oc get crds | grep open-cluster-management.io | awk '{print $1}' | xargs oc delete crds --wait=false oc get crds | grep open-cluster-management.io | awk '{print $1}' | xargs oc patch crds --type=merge -p '{"metadata":{"finalizers": []}}'
다음 명령을 실행하여 네임스페이스와 열려 있는 모든 클러스터 관리
crds
가 모두 제거되었는지 확인합니다.oc get crds | grep open-cluster-management.io | awk '{print $1}' oc get ns | grep open-cluster-management-agent
1.7.18.4. 클러스터를 제거한 후 etcd 데이터베이스 조각 모음
많은 관리 클러스터가 있으면 hub 클러스터의 etcd
데이터베이스 크기에 영향을 미칠 수 있습니다. OpenShift Container Platform 4.8에서는 관리 클러스터를 삭제하면 허브 클러스터의 etcd
데이터베이스가 크기가 자동으로 줄어들지 않습니다. 일부 시나리오에서는 etcd
데이터베이스를 공간이 부족할 수 있습니다. etcdserver: mvcc: 데이터베이스 공간 초과
오류가 표시됩니다. 이 오류를 수정하려면 데이터베이스 기록을 압축하고 etcd
데이터베이스를 조각 모음하여 etcd
데이터베이스 크기를 줄입니다.
참고: OpenShift Container Platform 버전 4.9 이상의 경우 etcd Operator는 자동으로 디스크를 조각 모음하고 etcd
기록을 압축합니다. 수동 조작이 필요하지 않습니다. 다음 절차는 OpenShift Container Platform 버전 4.8 및 이전 버전의 절차입니다.
다음 절차를 완료하여
기록을 압축하고 hub 클러스터에서 etcd 데이터베이스를 조각 모음합니다.
etcd
1.7.18.4.1. 사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
1.7.18.4.2. 프로세스
etcd
기록을 압축합니다.etcd
멤버에 대한 원격 쉘 세션을 엽니다. 예를 들면 다음과 같습니다.$ oc rsh -n openshift-etcd etcd-control-plane-0.example.com etcdctl endpoint status --cluster -w table
다음 명령을 실행하여
etcd
기록을 압축합니다.sh-4.4#etcdctl compact $(etcdctl endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9]*' -m1)
출력 예
$ compacted revision 158774421
-
etcd
데이터베이스를 조각 모음하고etcd
데이터 분리에 설명된 대로NOSPACE
경고를 지웁니다.