1.7. 호스트된 컨트롤 플레인(기술 프리뷰)
멀티 클러스터 엔진 Operator 클러스터 관리를 사용하면 독립 실행형 또는 호스트된 컨트롤 플레인이라는 두 가지 컨트롤 플레인 구성을 사용하여 OpenShift Container Platform 클러스터를 배포할 수 있습니다. 독립 실행형 구성은 전용 가상 머신 또는 물리적 머신을 사용하여 OpenShift Container Platform 컨트롤 플레인을 호스팅합니다. OpenShift Container Platform용 호스트 컨트롤 플레인을 사용하면 컨트롤 플레인을 각 컨트롤 플레인의 전용 물리적 머신 없이도 호스팅 클러스터에서 Pod로 생성할 수 있습니다.
OpenShift Container Platform의 호스트 컨트롤 플레인은 AWS(Amazon Web Services) 및 베어 메탈 또는 가상 환경에서 기술 프리뷰 기능으로 사용할 수 있습니다. OpenShift Container Platform 버전 4.10.7 이상에서 컨트롤 플레인을 호스팅할 수 있습니다.
참고: 호스팅된 컨트롤 플레인과 동일한 플랫폼에서 hub 클러스터 및 작업자를 실행합니다.
컨트롤 플레인은 단일 네임스페이스에 포함되어 호스팅된 컨트롤 플레인 클러스터와 연결된 Pod로 실행됩니다. OpenShift Container Platform에서 이러한 유형의 호스팅 클러스터를 생성할 때 컨트롤 플레인과 독립적인 작업자 노드를 생성합니다.
호스트된 컨트롤 플레인 클러스터는 다음과 같은 몇 가지 이점을 제공합니다.
- 전용 컨트롤 플레인 노드를 호스팅할 필요가 없어 비용 절감
- 컨트롤 플레인과 워크로드를 분리하여 격리를 개선하고 변경이 필요할 수 있는 구성 오류를 줄입니다.
- 컨트롤 플레인 노드 부트스트랩에 대한 요구 사항을 제거하여 클러스터 생성 시간을 줄입니다.
- turn-key 배포 지원 또는 완전히 사용자 지정된 OpenShift Container Platform 프로비저닝
호스팅된 컨트롤 플레인에 대한 자세한 내용은 다음 주제를 계속 읽습니다.
1.7.1. AWS에서 호스팅 클러스터 구성 (기술 프리뷰)
호스팅 컨트롤 플레인을 구성하려면 호스팅 클러스터 및 호스트 클러스터가 필요합니다. hypershift-addon
관리 클러스터 애드온을 사용하여 기존 관리 클러스터에 HyperShift Operator를 배포하면 해당 클러스터를 호스팅 클러스터로 활성화하고 호스팅 클러스터 생성을 시작할 수 있습니다.
멀티 클러스터 엔진 Operator 2.2는 호스팅 클러스터로 기본 로컬 클러스터
및 허브 클러스터만 지원합니다.
호스트된 컨트롤 플레인은 기술 프리뷰 기능이므로 관련 구성 요소는 기본적으로 비활성화되어 있습니다.
호스팅 클러스터로 작동하도록 기존 클러스터를 구성하여 호스팅 컨트롤 플레인을 배포할 수 있습니다. 호스팅 클러스터는 컨트롤 플레인이 호스팅되는 Red Hat OpenShift Container Platform 클러스터입니다. Red Hat Advanced Cluster Management 2.7은 로컬 클러스터라고도 하는 허브 클러스터를
호스팅 클러스터로 사용할 수 있습니다. 로컬 클러스터를
호스팅 클러스터로 구성하는 방법을 알아보려면 다음 주제를 참조하십시오.
모범 사례: 호스팅된 컨트롤 플레인에서 동일한 플랫폼에서 허브 클러스터 및 작업자를 실행해야 합니다.
1.7.1.1. 사전 요구 사항
호스팅 클러스터를 구성하려면 다음 사전 요구 사항이 있어야 합니다.
- Kubernetes operator 2.2 이상은 OpenShift Container Platform 클러스터에 설치된 다중 클러스터 엔진입니다. Red Hat Advanced Cluster Management를 설치하면 다중 클러스터 엔진 Operator가 자동으로 설치됩니다. 멀티 클러스터 엔진 Operator는 Red Hat Advanced Cluster Management 없이 OpenShift Container Platform OperatorHub의 Operator로 설치할 수도 있습니다.
멀티 클러스터 엔진 Operator에는 하나 이상의 관리형 OpenShift Container Platform 클러스터가 있어야 합니다.
로컬 클러스터는 멀티 클러스터
엔진 Operator 2.2 이상에서 자동으로 가져옵니다.로컬 클러스터에
대한 자세한 내용은 고급 구성을 참조하십시오. 다음 명령을 실행하여 hub 클러스터의 상태를 확인할 수 있습니다.oc get managedclusters local-cluster
- HyperShift Operator를 실행하기 위해 작업자 노드가 3개 이상인 호스팅 클러스터입니다.
1.7.1.2. Amazon Web Services S3 OIDC 시크릿 생성
AWS에서 호스팅 클러스터를 생성하고 관리하려면 다음 단계를 완료하십시오.
-
HyperShift Operator에 대해
hypershift-operator-oidc-provider-s3-credentials
라는 OIDC S3 시크릿을 생성합니다. -
local-cluster
네임스페이스에 보안을 저장합니다. 다음 표를 참조하여 시크릿에 다음 필드가 포함되어 있는지 확인합니다.
필드 이름 설명 bucket
호스트 OIDC 검색 문서에 대한 공용 액세스 권한이 있는 S3 버킷이 포함되어 있습니다.
credentials
버킷에 액세스할 수 있는
기본
프로필의 자격 증명이 포함된 파일에 대한 참조입니다. 기본적으로 HyperShift는기본
프로필만 사용하여버킷
을 작동합니다.region
S3 버킷의 리전을 지정합니다.
보안에 대한 자세한 내용은 HyperShift 설명서에서 시작하기 를 참조하십시오. 다음 예제에서는 샘플 AWS 시크릿 템플릿을 보여줍니다.
oc create secret generic hypershift-operator-oidc-provider-s3-credentials --from-file=credentials=$HOME/.aws/credentials --from-literal=bucket=<s3-bucket-for-hypershift> --from-literal=region=<region> -n local-cluster
참고: 시크릿에 대한 재해 복구 백업은 자동으로 활성화되지 않습니다. 다음 명령을 실행하여 재해 복구를 위해
hypershift-operator-oidc-provider-s3-credentials
보안을 백업할 수 있는 레이블을 추가합니다.oc label secret hypershift-operator-oidc-provider-s3-credentials -n local-cluster cluster.open-cluster-management.io/backup=true
1.7.1.3. 라우팅 가능한 퍼블릭 영역 생성
게스트 클러스터의 애플리케이션에 액세스하려면 퍼블릭 영역을 라우팅할 수 있어야 합니다. 퍼블릭 영역이 있는 경우 이 단계를 건너뜁니다. 그렇지 않으면 퍼블릭 영역이 기존 기능에 영향을 미칩니다.
다음 명령을 실행하여 클러스터 DNS 레코드에 대한 퍼블릭 영역을 생성합니다.
BASE_DOMAIN=www.example.com aws route53 create-hosted-zone --name $BASE_DOMAIN --caller-reference $(whoami)-$(date --rfc-3339=date)
1.7.1.4. 외부 DNS 활성화
서비스 수준 DNS(외부 DNS)를 사용하여 호스트 컨트롤 플레인 클러스터를 프로비저닝하려면 다음 단계를 완료합니다.
-
HyperShift Operator의 AWS 인증 정보 시크릿을 생성하고
local-cluster
네임스페이스에서hypershift-operator-external-dns-credentials
이름을 지정합니다. 다음 표를 참조하여 시크릿에 필수 필드가 포함되어 있는지 확인합니다.
필드 이름 설명 선택적 또는 필수 공급자
서비스 수준 DNS 영역을 관리하는 DNS 공급자입니다.
필수 항목
domain-filter
서비스 수준 도메인입니다.
필수 항목
credentials
모든 외부 DNS 유형을 지원하는 자격 증명 파일입니다.
AWS 키를 사용하는 경우 선택 사항
aws-access-key-id
인증 정보 액세스 키 ID입니다.
AWS DNS 서비스를 사용하는 경우 선택 사항
aws-secret-access-key
인증 정보 액세스 키 시크릿입니다.
AWS DNS 서비스를 사용하는 경우 선택 사항
자세한 내용은 HyperShift 설명서에서 외부 DNS 를 참조하십시오. 다음 예제에서는 샘플
hypershift-operator-external-dns-credentials
시크릿 템플릿을 보여줍니다.oc create secret generic hypershift-operator-external-dns-credentials --from-literal=provider=aws --from-literal=domain-filter=service.my.domain.com --from-file=credentials=<credentials-file> -n local-cluster
참고: 시크릿에 대한 재해 복구 백업은 자동으로 활성화되지 않습니다. 다음 명령을 실행하여 재해 복구를 위해
hypershift-operator-external-dns-credentials
보안을 백업할 수 있는 레이블을 추가합니다.oc label secret hypershift-operator-external-dns-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
1.7.1.5. AWS PrivateLink 활성화
PrivateLink를 사용하여 AWS 플랫폼에서 호스팅된 컨트롤 플레인 클러스터를 프로비저닝하려면 다음 단계를 완료하십시오.
-
HyperShift Operator에 대한 AWS 인증 정보 시크릿을 생성하고 이름을
hypershift-operator-private-link-credentials
로 지정합니다. 보안은 호스팅 클러스터로 사용되는 관리 대상 클러스터의 네임스페이스인 관리형 클러스터 네임스페이스에 있어야 합니다.local-cluster
를 사용한 경우local-cluster
네임스페이스에 보안을 생성합니다. 다음 표를 참조하여 시크릿에 필수 필드가 포함되어 있는지 확인합니다.
필드 이름
설명
선택적 또는 필수
region
Private Link와 함께 사용할 리전
필수 항목
aws-access-key-id
인증 정보 액세스 키 ID입니다.
필수 항목
aws-secret-access-key
인증 정보 액세스 키 시크릿입니다.
필수 항목
자세한 내용은 HyperShift 설명서에서 AWS 개인 클러스터 배포 단원을 참조하십시오. 다음 예제는 샘플
hypershift-operator-private-link-credentials
시크릿 템플릿을 보여줍니다.oc create secret generic hypershift-operator-private-link-credentials --from-literal=aws-access-key-id=<aws-access-key-id> --from-literal=aws-secret-access-key=<aws-secret-access-key> --from-literal=region=<region> -n local-cluster
참고: 시크릿에 대한 재해 복구 백업은 자동으로 활성화되지 않습니다. 다음 명령을 실행하여 재해 복구를 위해
hypershift-operator-private-link-credentials
보안을 백업할 수 있는 레이블을 추가합니다.oc label secret hypershift-operator-private-link-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
1.7.1.6. 호스팅된 컨트롤 플레인 기능 활성화
호스팅된 컨트롤 플레인 기능은 기본적으로 비활성화되어 있습니다. 기능을 활성화하면 hypershift-addon
관리 클러스터 애드온도 자동으로 활성화됩니다. 다음 명령을 실행하여 기능을 활성화할 수 있습니다.
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'
다음 명령을 실행하여 MultiClusterEngine
사용자 정의 리소스에서 hypershift-preview
및 hypershift-local-hosting
기능이 활성화되어 있는지 확인합니다.
oc get mce multiclusterengine -o yaml
apiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterengine spec: overrides: components: - name: hypershift-preview enabled: true - name: hypershift-local-hosting enabled: true
1.7.1.6.1. 로컬 클러스터에 대해 hypershift-addon 관리 클러스터 애드온 수동 활성화
호스팅된 컨트롤 플레인 기능을 활성화하면 hypershift-addon
관리 클러스터 애드온이 자동으로 활성화됩니다. hypershift-addon
관리 클러스터 애드온을 수동으로 활성화해야 하는 경우 hypershift-addon
을 사용하여 로컬 클러스터에
HyperShift Operator를 설치하려면 다음 단계를 완료합니다.
다음 예와 유사한 파일을 생성하여
ManagedClusterAddon
HyperShift 애드온을 생성합니다.apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: hypershift-addon namespace: local-cluster spec: installNamespace: open-cluster-management-agent-addon
다음 명령을 실행하여 파일을 적용합니다.
oc apply -f <filename>
파일
이름을 생성한 파일의 이름으로 바꿉니다.다음 명령을 실행하여
hypershift-addon
이 설치되었는지 확인합니다.oc get managedclusteraddons -n local-cluster hypershift-addon
추가 기능이 설치된 경우 출력은 다음 예와 유사합니다.
NAME AVAILABLE DEGRADED PROGRESSING hypershift-addon True
HyperShift 애드온이 설치되어 호스팅 클러스터를 생성하고 관리할 수 있습니다.
1.7.1.7. 호스팅된 컨트롤 플레인 CLI 설치
호스팅된 컨트롤 플레인(HyperShift) CLI는 OpenShift Container Platform 호스팅 컨트롤 플레인 클러스터를 생성하고 관리하는 데 사용됩니다. 호스팅된 컨트롤 플레인 기능을 활성화한 후 다음 단계를 완료하여 호스팅된 컨트롤 플레인 CLI를 설치할 수 있습니다.
- OpenShift Container Platform 콘솔에서 도움말 아이콘 > 명령줄 툴 을 클릭합니다.
플랫폼에 대해 Hypershift CLI 다운로드를 클릭합니다.
참고:
hypershift-preview
기능을 활성화한 경우에만 다운로드가 표시됩니다.다음 명령을 실행하여 다운로드한 아카이브의 압축을 풉니다.
tar xvzf hypershift.tar.gz
다음 명령을 실행하여 바이너리 파일을 실행 가능하게 합니다.
chmod +x hypershift
다음 명령을 실행하여 바이너리 파일을 경로의 디렉터리로 이동합니다.
sudo mv hypershift /usr/local/bin/.
이제 hypershift create cluster
명령을 사용하여 호스팅 클러스터를 생성하고 관리할 수 있습니다. 다음 명령을 사용하여 사용 가능한 매개변수를 나열합니다.
hypershift create cluster aws --help
1.7.1.8. 추가 리소스
- S3 OIDC 보안에 대한 자세한 내용은 HyperShift 설명서에서 시작하기 를 참조하십시오.
- AWS 인증 정보 시크릿에 대한 자세한 내용은 HyperShift 설명서에서 AWS 프라이빗 클러스터 배포를 참조하십시오.
- 외부 DNS에 대한 자세한 내용은 HyperShift 설명서의 외부 DNS 를 참조하십시오.
- 이제 SR-IOV Operator를 배포할 수 있습니다. SR-IOV Operator 배포에 대한 자세한 내용은 호스팅 컨트롤 플레인 의 SR-IOV Operator 배포를 참조하십시오.
1.7.2. AWS에서 호스트된 컨트롤 플레인 클러스터 관리 (기술 프리뷰)
Kubernetes Operator 콘솔의 다중 클러스터 엔진을 사용하여 Red Hat OpenShift Container Platform 호스트 클러스터를 생성할 수 있습니다. 호스트된 컨트롤 플레인은 AWS(Amazon Web Services)에서 기술 프리뷰로 사용할 수 있습니다. AWS에서 호스팅된 컨트롤 플레인을 사용하는 경우 콘솔을 사용하여 호스팅된 클러스터를 생성하거나 콘솔 또는 명령줄 인터페이스를 사용하여 호스팅된 클러스터를 가져올 수 있습니다.
1.7.2.1. 사전 요구 사항
호스트된 컨트롤 플레인 클러스터를 생성하기 전에 호스트된 컨트롤 플레인을 구성해야 합니다. 자세한 내용은 호스팅된 컨트롤 플레인 구성(기술 프리뷰) 을 참조하십시오.
1.7.2.2. 콘솔을 사용하여 AWS에서 호스팅 컨트롤 플레인 클러스터 생성
멀티 클러스터 엔진 Operator 콘솔에서 호스팅된 컨트롤 플레인 클러스터를 생성하려면 Infrastructure > Clusters 로 이동합니다. 클러스터 페이지에서 클러스터 > 호스트 인벤토리 만들기 > 호스팅을 클릭하고 콘솔의 단계를 완료합니다.
중요: 클러스터를 생성할 때 다중 클러스터 엔진 Operator 컨트롤러에서 클러스터와 해당 리소스의 네임스페이스를 생성합니다. 해당 네임스페이스에 해당 클러스터 인스턴스의 리소스만 포함해야 합니다. 클러스터를 삭제하면 네임스페이스와 그 안에 있는 모든 리소스가 삭제됩니다.
YAML: On 을 선택하여 콘솔에 정보를 입력할 때 콘텐츠 업데이트를 확인합니다.
기존 클러스터 세트에 클러스터를 추가하려면 클러스터에 대한 올바른 권한이 있어야 합니다. 클러스터를 생성할 때 cluster-admin
권한이 없는 경우 clusterset-admin
권한이 있는 클러스터를 선택해야 합니다. 지정된 클러스터 세트에 대한 올바른 권한이 없으면 클러스터 생성에 실패합니다. 선택할 클러스터 설정 옵션이 없는 경우 clusterset-admin
권한을 제공하려면 클러스터 관리자에게 문의하십시오.
관리되는 모든 클러스터는 관리형 클러스터 세트와 연결되어야 합니다. 관리 클러스터를 ManagedClusterSet
에 할당하지 않으면 기본
관리 클러스터 세트에 자동으로 추가됩니다.
릴리스 이미지는 클러스터를 생성하는 데 사용되는 OpenShift Container Platform 이미지의 버전을 식별합니다. 호스트된 컨트롤 플레인 클러스터는 제공된 릴리스 이미지 중 하나를 사용해야 합니다.
인프라 환경에서 제공되는 프록시 정보는 프록시 필드에 자동으로 추가됩니다. 기존 정보를 사용하거나 덮어쓰거나 프록시를 활성화하려면 정보를 추가할 수 있습니다. 다음 목록에는 프록시 생성에 필요한 정보가 포함되어 있습니다.
-
HTTP 프록시 URL:
HTTP
트래픽의 프록시로 사용해야 하는 URL입니다. -
HTTPS 프록시 URL:
HTTPS
트래픽에 사용해야 하는 보안 프록시 URL입니다. 값을 제공하지 않으면HTTP
및HTTPS
모두에 대해HTTP 프록시 URL
과 동일한 값이 사용됩니다. -
프록시 도메인이 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 도메인 목록입니다. 해당 도메인에 있는 모든 하위 도메인을 포함하려면 마침표로 도메인 이름을 시작합니다
.
모든 대상에 대한 프록시를 바이패스하려면 별표*
를 추가합니다. - 추가 신뢰 번들: 미러 레지스트리에 액세스하는 데 필요한 인증서 파일의 콘텐츠입니다.
클러스터를 생성하기 전에 정보를 검토하고 선택적으로 사용자 지정할 때 YAML: On 을 선택하여 패널의 YAML 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다.
참고: 클러스터를 가져오려면 클러스터 세부 정보와 함께 제공되는 oc
명령을 실행해야 합니다. 클러스터를 생성할 때 Red Hat Advanced Cluster Management의 관리로 자동 구성되지 않습니다.
1.7.2.3. AWS에 호스트 클러스터 배포
호스팅된 컨트롤 플레인(Hypershift
) 명령줄 인터페이스를 설정하고 호스팅 클러스터로 로컬 클러스터를
활성화한 후 다음 단계를 완료하여 AWS에 호스트 클러스터를 배포할 수 있습니다.
다음과 같이 환경 변수를 설정하여 필요에 따라 변수를 인증 정보로 교체합니다.
export REGION=us-east-1 export CLUSTER_NAME=clc-name-hs1 export INFRA_ID=clc-name-hs1 export BASE_DOMAIN=dev09.red-chesterfield.com export AWS_CREDS=$HOME/name-aws export PULL_SECRET=/Users/username/pull-secret.txt export BUCKET_NAME=acmqe-hypershift export BUCKET_REGION=us-east-1
CLUSTER_NAME
및INFRA_ID
가 동일한 값이 있는지 확인합니다. 그러지 않으면 Kubernetes Operator 콘솔의 멀티 클러스터 엔진에 클러스터가 올바르게 표시되지 않을 수 있습니다. 각 변수에 대한 설명을 보려면 다음 명령을 실행합니다.hypershift create cluster aws --help
- hub 클러스터에 로그인했는지 확인합니다.
다음 명령을 실행하여 호스트된 클러스터를 생성합니다.
hypershift create cluster aws \ --name $CLUSTER_NAME \ --infra-id $INFRA_ID \ --aws-creds $AWS_CREDS \ --pull-secret $PULL_SECRET \ --region $REGION \ --generate-ssh \ --node-pool-replicas 3 \ --namespace <hypershift-hosting-service-cluster>
참고: 기본적으로 모든
HostedCluster
및NodePool
사용자 정의 리소스가클러스터
네임스페이스에 생성됩니다.--namespace <namespace> 매개변수를 지정하면 선택한 네임스페이스에
HostedCluster
및NodePool
사용자 정의 리소스가 생성됩니다.다음 명령을 실행하여 호스팅된 클러스터의 상태를 확인할 수 있습니다.
oc get hostedclusters -n <hypershift-hosting-service-cluster>
1.7.2.4. AWS에서 호스팅 컨트롤 플레인 클러스터 가져오기
콘솔을 사용하여 호스트된 컨트롤 플레인 클러스터를 가져올 수 있습니다.
- Infrastructure > Clusters 로 이동하여 가져올 호스트 클러스터를 선택합니다.
Import hosted cluster 를 클릭합니다.
참고: 검색된 호스트 클러스터의 경우 콘솔에서 가져올 수도 있지만 클러스터는 업그레이드 가능한 상태여야 합니다. 호스팅 컨트롤 플레인을 사용할 수 없기 때문에 호스팅된 클러스터가 업그레이드 가능한 상태가 아닌 경우 클러스터에서 가져오기가 비활성화됩니다. Import (가져오기)를 클릭하여 프로세스를 시작합니다. 클러스터가 업데이트를 수신하는 동안 상태가
Importing
된 후Ready
로 변경됩니다.
다음 단계를 완료하여 명령줄 인터페이스를 사용하여 AWS에서 호스팅 컨트롤 플레인 클러스터를 가져올 수도 있습니다.
다음 명령을 실행하여
HostedCluster
사용자 정의 리소스에 주석을 추가합니다.oc edit hostedcluster <cluster_name> -n clusters
&
lt;cluster_name
>을 호스트 클러스터 이름으로 바꿉니다.다음 명령을 실행하여
HostedCluster
사용자 정의 리소스에 주석을 추가합니다.cluster.open-cluster-management.io/hypershiftdeployment: local-cluster/<cluster_name> cluster.open-cluster-management.io/managedcluster-name: <cluster_name>
&
lt;cluster_name
>을 호스트 클러스터 이름으로 바꿉니다.다음 샘플 YAML 파일을 사용하여
ManagedCluster
리소스를 생성합니다.apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: annotations: import.open-cluster-management.io/hosting-cluster-name: local-cluster import.open-cluster-management.io/klusterlet-deploy-mode: Hosted open-cluster-management/created-via: other labels: cloud: auto-detect cluster.open-cluster-management.io/clusterset: default name: <cluster_name> vendor: OpenShift name: <cluster_name> spec: hubAcceptsClient: true leaseDurationSeconds: 60
&
lt;cluster_name
>을 호스트 클러스터 이름으로 바꿉니다.다음 명령을 실행하여 리소스를 적용합니다.
oc apply -f <file_name>
<file_name>을 이전 단계에서 생성한 YAML 파일 이름으로 바꿉니다.
다음 샘플 YAML 파일을 사용하여
KlusterletAddonConfig
리소스를 생성합니다. 이는 Red Hat Advanced Cluster Management에만 적용됩니다. 다중 클러스터 엔진 Operator만 설치한 경우 다음 단계를 건너뜁니다.apiVersion: agent.open-cluster-management.io/v1 kind: KlusterletAddonConfig metadata: name: <cluster_name> namespace: <cluster_name> spec: clusterName: <cluster_name> clusterNamespace: <cluster_name> clusterLabels: cloud: auto-detect vendor: auto-detect applicationManager: enabled: true certPolicyController: enabled: true iamPolicyController: enabled: true policyController: enabled: true searchCollector: enabled: false
&
lt;cluster_name
>을 호스트 클러스터 이름으로 바꿉니다.다음 명령을 실행하여 리소스를 적용합니다.
oc apply -f <file_name>
<file_name>을 이전 단계에서 생성한 YAML 파일 이름으로 바꿉니다.
가져오기 프로세스가 완료되면 호스트된 클러스터가 콘솔에 표시됩니다. 다음 명령을 실행하여 호스팅된 클러스터의 상태를 확인할 수도 있습니다.
oc get managedcluster <cluster_name>
1.7.2.5. AWS의 호스팅 클러스터에 액세스
호스팅된 컨트롤 플레인 클러스터의 액세스 보안은 hypershift-management-cluster
네임스페이스에 저장됩니다. 다음 보안 이름 형식에 대해 알아봅니다.
-
kubeconfig
secret: <hostingNamespace>-<name>-admin-kubeconfig
(clusters-hypershift-demo-admin-kubeconfig) -
kubeadmin
암호 보안: <hostingNamespace>-<name>-kubeadmin-password
(clusters-hypershift-demo-kubeadmin-password)
1.7.2.6. ARM64 OpenShift Container Platform 클러스터에서 호스트된 컨트롤 플레인 활성화
ARM64 호스팅 컨트롤 플레인을 활성화하여 관리 클러스터 환경에서 OpenShift Container Platform ARM64 데이터 플레인에서 작동할 수 있습니다. 이 기능은 AWS의 호스팅 컨트롤 플레인에서만 사용할 수 있습니다.
1.7.2.6.1. 사전 요구 사항
시작하기 전에 다음 사전 요구 사항을 충족해야 합니다.
- 64비트 ARM 인프라에 설치된 OpenShift Container Platform 클러스터가 있어야 합니다. 자세한 내용은 Create an OpenShift Cluster: AWS (ARM) 를 참조하십시오.
-
64비트 ARM 인프라를 기반으로 하는 HyperShift Operator가 있어야 합니다. Hyper shift/hypershift-operator 리포지토리로 이동하고
4.13-
arm64 태그가 있는 빌드를 선택하여 HyperShift Operator를 가져올 수 있습니다.
ARM64 OpenShift Container Platform 클러스터에서 호스팅된 클러스터를 실행하려면 다음 단계를 따르십시오.
관리 클러스터에 ARM64용 HyperShift Operator를 설치하여 기본 HyperShift Operator 이미지를 재정의합니다.
예를 들어 호스트된 컨트롤 플레인(
hypershift
) 명령줄 인터페이스를 통해 다음 명령을 입력합니다. 버킷 이름, AWS 인증 정보 및 리전을 정보로 교체하십시오.hypershift install \ --oidc-storage-provider-s3-bucket-name $BUCKET_NAME \ --oidc-storage-provider-s3-credentials $AWS_CREDS \ --oidc-storage-provider-s3-region $REGION \ --hypershift-image quay.io/hypershift/hypershift-operator:4.13-arm64
다중 아키텍처 릴리스 이미지로 기본 릴리스 이미지를 재정의하는 호스트 클러스터를 생성합니다.
예를 들어 호스트된 컨트롤 플레인(
hypershift
) 명령줄 인터페이스를 통해 다음 명령을 입력합니다. 이 명령을 입력하여 클러스터 이름, 노드 풀 복제본, 기본 도메인, 풀 시크릿, AWS 인증 정보 및 리전을 정보로 교체하십시오.hypershift create cluster aws \ --name $CLUSTER_NAME \ --node-pool-replicas=$NODEPOOL_REPLICAS \ --base-domain $BASE_DOMAIN \ --pull-secret $PULL_SECRET \ --aws-creds $AWS_CREDS \ --region $REGION \ --release-image quay.io/openshift-release-dev/ocp-release:4.13.0-rc.0-multi
이 예제에서는
--node-pool-replicas
플래그를 통해 기본NodePool
오브젝트를 추가합니다.호스트된 클러스터에 64비트 x86
NodePool
개체를 추가합니다.예를 들어 호스트된 컨트롤 플레인(
hypershift
) 명령줄 인터페이스를 통해 다음 명령을 입력합니다. 클러스터 이름, 노드 풀 이름 및 노드 풀 복제본을 사용자의 정보로 교체하십시오.hypershift create nodepool aws \ --cluster-name $CLUSTER_NAME \ --name $NODEPOOL_NAME \ --node-count=$NODEPOOL_REPLICAS
1.7.2.7. AWS에서 호스트 클러스터 삭제
호스팅 클러스터 및 관리되는 클러스터 리소스를 제거하려면 다음 단계를 완료합니다.
다음 명령을 실행하여 호스팅 클러스터 및 해당 백엔드 리소스를 삭제합니다.
hypershift destroy cluster aws --name <cluster_name> --infra-id <infra_id> --aws-creds <aws-credentials> --base-domain <base_domain> --destroy-cloud-resources
필요한 경우 이름을 바꿉니다.
다음 명령을 실행하여 다중 클러스터 엔진 Operator에서 관리형 클러스터 리소스를 삭제합니다.
oc delete managedcluster <cluster_name>
cluster_name
을 클러스터 이름으로 바꿉니다.
1.7.3. 베어 메탈에서 호스팅 클러스터 구성 (기술 프리뷰)
호스팅 컨트롤 플레인을 구성하려면 호스팅 클러스터 및 호스트 클러스터가 필요합니다. hypershift-addon
관리 클러스터 애드온을 사용하여 기존 관리 클러스터에 HyperShift Operator를 배포하면 해당 클러스터를 호스팅 클러스터로 활성화하고 호스팅 클러스터 생성을 시작할 수 있습니다.
멀티 클러스터 엔진 Operator 2.2는 호스팅 클러스터로 기본 로컬 클러스터
및 허브 클러스터만 지원합니다.
호스트된 컨트롤 플레인은 기술 프리뷰 기능이므로 관련 구성 요소는 기본적으로 비활성화되어 있습니다. AWS(Amazon Web Services)에서 호스팅 컨트롤 플레인을 활성화하는 방법에 대한 자세한 내용은 다음 주제를 참조하십시오.
호스팅 클러스터로 작동하도록 기존 클러스터를 구성하여 호스팅 컨트롤 플레인을 배포할 수 있습니다. 호스팅 클러스터는 컨트롤 플레인이 호스팅되는 {ocp-cluster} 클러스터입니다.
Red Hat Advanced Cluster Management 2.7 사용자는 호스팅 클러스터로 로컬 클러스터라고도 하는 관리형 허브 클러스터를
사용할 수 있습니다. 로컬 클러스터를
호스팅 클러스터로 구성하는 방법을 알아보려면 다음 주제를 참조하십시오.
중요:
- 호스팅된 컨트롤 플레인과 동일한 플랫폼에서 hub 클러스터 및 작업자를 실행합니다.
- 베어 메탈에서 호스트된 컨트롤 플레인을 프로비저닝하려면 에이전트 플랫폼을 사용할 수 있습니다. 에이전트 플랫폼은 CIM(Central Infrastructure Management) 서비스를 사용하여 호스트된 클러스터에 작업자 노드를 추가합니다.
-
각 베어 메탈 호스트는 CIM에서 제공하는 검색 이미지를 사용하여 시작해야 합니다.
Cluster-Baremetal-Operator
를 사용하여 수동으로 또는 자동화를 통해 호스트를 시작할 수 있습니다. 각 호스트가 시작되면 에이전트 프로세스를 실행하여 호스트 세부 정보를 검색하고 설치를 완료합니다.에이전트
사용자 정의 리소스는 각 호스트를 나타냅니다. - 에이전트 플랫폼으로 호스트된 클러스터를 생성할 때 HyperShift는 호스트된 컨트롤 플레인 네임스페이스에 에이전트 클러스터 API 공급자를 설치합니다.
- 노드 풀을 확장하면 머신이 생성됩니다. Cluster API 공급자는 승인된 에이전트를 찾고, 검증을 통과하고, 현재 사용되지 않고, 노드 풀 사양에 지정된 요구 사항을 충족합니다. 상태 및 조건을 확인하여 에이전트 설치를 모니터링할 수 있습니다.
- 노드 풀을 축소하면 에이전트가 해당 클러스터에서 바인딩되지 않습니다. 클러스터를 재사용하려면 먼저 Discovery 이미지를 사용하여 노드 수를 업데이트하여 클러스터를 다시 시작해야 합니다.
1.7.3.1. 사전 요구 사항
호스팅 클러스터를 구성하려면 다음 사전 요구 사항이 있어야 합니다.
- Kubernetes operator 2.2 이상은 OpenShift Container Platform 클러스터에 설치되어 있어야 합니다. Red Hat Advanced Cluster Management를 설치하면 다중 클러스터 엔진 Operator가 자동으로 설치됩니다. OpenShift Container Platform OperatorHub에서 Operator로 Red Hat Advanced Cluster Management 없이 다중 클러스터 엔진 Operator를 설치할 수도 있습니다.
멀티 클러스터 엔진 Operator에 하나 이상의 관리형 OpenShift Container Platform 클러스터가 있어야 합니다.
로컬 클러스터는 멀티 클러스터
엔진 Operator 2.2 이상에서 자동으로 가져옵니다.로컬 클러스터에
대한 자세한 내용은 고급 구성을 참조하십시오. 다음 명령을 실행하여 hub 클러스터의 상태를 확인할 수 있습니다.oc get managedclusters local-cluster
- HyperShift Operator를 실행하려면 작업자 노드가 3개 이상인 호스팅 클러스터가 있어야 합니다.
- 호스팅된 컨트롤 플레인 기능을 활성화해야 합니다. 자세한 내용은 호스팅된 컨트롤 플레인 기능 활성화를 참조하십시오.
1.7.3.2. DNS 구성
호스트된 클러스터의 API 서버는 NodePort
서비스로 노출됩니다. API 서버에 도달할 수 있는 대상을 가리키는 api.${HOSTED_CLUSTER_NAME}.${BASEDOMAIN}
에 대한 DNS 항목이 있어야 합니다.
DNS 항목은 호스팅 컨트롤 플레인을 실행 중인 관리형 클러스터의 노드 중 하나를 가리키는 레코드만큼 간단할 수 있습니다. 이 항목은 들어오는 트래픽을 수신 pod로 리디렉션하기 위해 배포된 로드 밸런서를 가리킬 수도 있습니다.
다음 DNS 구성 예를 참조하십시오.
api.example.krnl.es. IN A 192.168.122.20 api.example.krnl.es. IN A 192.168.122.21 api.example.krnl.es. IN A 192.168.122.22 api-int.example.krnl.es. IN A 192.168.122.20 api-int.example.krnl.es. IN A 192.168.122.21 api-int.example.krnl.es. IN A 192.168.122.22 `*`.apps.example.krnl.es. IN A 192.168.122.23
1.7.3.3. 추가 리소스
- CIM 서비스에 대한 소개는 Kube API - 시작하기 가이드를 참조하십시오.
- 로드 밸런서에 대한 자세한 내용은 사용자 프로비저닝 인프라에 대한 로드 밸런싱 요구 사항을 참조하십시오.
- 이제 SR-IOV Operator를 배포할 수 있습니다. SR-IOV Operator 배포에 대한 자세한 내용은 호스팅 컨트롤 플레인 의 SR-IOV Operator 배포를 참조하십시오.
1.7.4. 베어 메탈에서 호스트된 컨트롤 플레인 클러스터 관리 (기술 프리뷰)
Kubernetes Operator 콘솔의 다중 클러스터 엔진을 사용하여 Red Hat OpenShift Container Platform 호스트 클러스터를 생성하고 관리할 수 있습니다. 호스트된 컨트롤 플레인은 AWS(Amazon Web Services) 및 베어 메탈에서 기술 프리뷰로 사용할 수 있습니다.
1.7.4.1. 사전 요구 사항
호스트된 컨트롤 플레인 클러스터를 생성하기 전에 베어 메탈에 호스트된 컨트롤 플레인을 구성해야 합니다. 자세한 내용은 베어 메탈에서 호스팅 클러스터 구성(기술 프리뷰) 을 참조하십시오.
1.7.4.2. 베어 메탈에서 호스트된 클러스터 생성
클러스터에 기본 스토리지 클래스가 구성되어 있는지 확인합니다. 그렇지 않으면 보류 중인 PVC로 끝날 수 있습니다.
다음 명령을 입력합니다.
export CLUSTERS_NAMESPACE="clusters" export HOSTED_CLUSTER_NAME="example" export HOSTED_CONTROL_PLANE_NAMESPACE="${CLUSTERS_NAMESPACE}-${HOSTED_CLUSTER_NAME}" export BASEDOMAIN="krnl.es" export PULL_SECRET_FILE=$PWD/pull-secret export MACHINE_CIDR=192.168.122.0/24 # Typically the namespace is created by the hypershift-operator # but agent cluster creation generates a capi-provider role that # needs the namespace to already exist oc create ns ${HOSTED_CONTROL_PLANE_NAMESPACE} hypershift create cluster agent \ --name=${HOSTED_CLUSTER_NAME} \ --pull-secret=${PULL_SECRET_FILE} \ --agent-namespace=${HOSTED_CONTROL_PLANE_NAMESPACE} \ --base-domain=${BASEDOMAIN} \ --api-server-address=api.${HOSTED_CLUSTER_NAME}.${BASEDOMAIN} \
잠시 후 다음 명령을 입력하여 호스팅 컨트롤 플레인 Pod가 실행 중인지 확인합니다.
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get pods
출력 예
NAME READY STATUS RESTARTS AGE capi-provider-7dcf5fc4c4-nr9sq 1/1 Running 0 4m32s catalog-operator-6cd867cc7-phb2q 2/2 Running 0 2m50s certified-operators-catalog-884c756c4-zdt64 1/1 Running 0 2m51s cluster-api-f75d86f8c-56wfz 1/1 Running 0 4m32s cluster-autoscaler-7977864686-2rz4c 1/1 Running 0 4m13s cluster-network-operator-754cf4ffd6-lwfm2 1/1 Running 0 2m51s cluster-policy-controller-784f995d5-7cbrz 1/1 Running 0 2m51s cluster-version-operator-5c68f7f4f8-lqzcm 1/1 Running 0 2m51s community-operators-catalog-58599d96cd-vpj2v 1/1 Running 0 2m51s control-plane-operator-f6b4c8465-4k5dh 1/1 Running 0 4m32s etcd-0 1/1 Running 0 4m13s hosted-cluster-config-operator-c4776f89f-dt46j 1/1 Running 0 2m51s ignition-server-7cd8676fc5-hjx29 1/1 Running 0 4m22s ingress-operator-75484cdc8c-zhdz5 1/2 Running 0 2m51s konnectivity-agent-c5485c9df-jsm9s 1/1 Running 0 4m13s konnectivity-server-85dc754888-7z8vm 1/1 Running 0 4m13s kube-apiserver-db5fb5549-zlvpq 3/3 Running 0 4m13s kube-controller-manager-5fbf7b7b7b-mrtjj 1/1 Running 0 90s kube-scheduler-776c59d757-kfhv6 1/1 Running 0 3m12s machine-approver-c6b947895-lkdbk 1/1 Running 0 4m13s oauth-openshift-787b87cff6-trvd6 2/2 Running 0 87s olm-operator-69c4657864-hxwzk 2/2 Running 0 2m50s openshift-apiserver-67f9d9c5c7-c9bmv 2/2 Running 0 89s openshift-controller-manager-5899fc8778-q89xh 1/1 Running 0 2m51s openshift-oauth-apiserver-569c78c4d-568v8 1/1 Running 0 2m52s packageserver-ddfffb8d7-wlz6l 2/2 Running 0 2m50s redhat-marketplace-catalog-7dd77d896-jtxkd 1/1 Running 0 2m51s redhat-operators-catalog-d66b5c965-qwhn7 1/1 Running 0 2m51s
1.7.4.3. InfraEnv 생성
InfraEnv
는 라이브 ISO를 시작하는 호스트가 에이전트로 참여할 수 있는 환경입니다. 이 경우 에이전트는 호스트 컨트롤 플레인과 동일한 네임스페이스에 생성됩니다.
InfraEnv
를 만들려면 다음 명령을 입력합니다.export SSH_PUB_KEY=$(cat $HOME/.ssh/id_rsa.pub) envsubst <<"EOF" | oc apply -f - apiVersion: agent-install.openshift.io/v1beta1 kind: InfraEnv metadata: name: ${HOSTED_CLUSTER_NAME} namespace: ${HOSTED_CONTROL_PLANE_NAMESPACE} spec: pullSecretRef: name: pull-secret sshAuthorizedKey: ${SSH_PUB_KEY} EOF
가상 머신 또는 베어 메탈 머신이 에이전트로 참여할 수 있는 라이브 ISO를 생성하려면 다음 명령을 입력합니다.
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get InfraEnv ${HOSTED_CLUSTER_NAME} -ojsonpath="{.status.isoDownloadURL}"
1.7.4.4. 에이전트 추가
라이브 ISO로 시작하거나 Metal3을 사용하여 머신을 수동으로 구성하여 에이전트를 추가할 수 있습니다.
에이전트를 수동으로 추가하려면 다음 단계를 수행합니다.
-
라이브 ISO를 다운로드하여 이를 사용하여 노드를 시작합니다(베어 메탈 또는 VM). 시작 시 노드는 지원 서비스와 통신하고
InfraEnv
와 동일한 네임스페이스에 있는 에이전트로 등록합니다. 각 에이전트가 생성되면 선택적으로 사양에
installation_disk_id
및hostname
을 설정할 수 있습니다. 그런 다음 이를 승인하여 에이전트가 사용할 준비가 되었음을 나타냅니다.oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agents
출력 예
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 auto-assign e57a637f-745b-496e-971d-1abbf03341ba auto-assign
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 86f7ac75-4fc4-4b36-8130-40fa12602218 -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-0.example.krnl.es"}}' --type merge oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 23d0c614-2caa-43f5-b7d3-0b3564688baa -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-1.example.krnl.es"}}' --type merge
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agents
출력 예
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 true auto-assign e57a637f-745b-496e-971d-1abbf03341ba true auto-assign
-
라이브 ISO를 다운로드하여 이를 사용하여 노드를 시작합니다(베어 메탈 또는 VM). 시작 시 노드는 지원 서비스와 통신하고
Metal3을 사용하여 에이전트를 추가하려면 다음 지침을 따르십시오.
Assisted Service를 사용하여 사용자 정의 ISO 및 Baremetal Operator를 생성하여 설치를 수행합니다.
중요:
BaremetalHost
오브젝트가 baremetal-operator 네임스페이스 외부에서 생성되므로 모든 네임스페이스를 조사하도록 Operator를 구성해야 합니다.oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'
metal3
Pod는openshift-machine-api
네임스페이스에서 다시 시작됩니다.metal3
Pod가 다시 준비될 때까지 기다립니다.until oc wait -n openshift-machine-api $(oc get pods -n openshift-machine-api -l baremetal.openshift.io/cluster-baremetal-operator=metal3-state -o name) --for condition=containersready --timeout 10s >/dev/null 2>&1 ; do sleep 1 ; done
BaremetalHost 오브젝트를 생성합니다. 베어 메탈 노드를 시작하는 데 필요한 몇 가지 변수를 구성해야 합니다.
-
BMC_USERNAME
: BMC에 연결할 사용자 이름입니다. -
BMC_PASSWORD
: BMC에 연결할 암호입니다. -
BMC_IP
: Metal3에서 BMC에 연결하는 데 사용하는 IP입니다. -
WORKER_NAME
: BaremetalHost 오브젝트의 이름(이 값은 호스트 이름으로도 사용) -
BOOT_MAC_ADDRESS
: MachineNetwork에 연결된 NIC의 MAC 주소입니다. -
UUID
: Redfish UUID, 일반적으로1
입니다. sushy-tools를 사용하는 경우 이 값은 긴 UUID입니다. iDrac를 사용하는 경우 이 값은System.Embedded.1
입니다. 판매자에게 확인해야 할 수도 있습니다. -
REDFISH_SCHEME
: 사용할 Redfish 공급자입니다. 표준 Redfish 구현을 사용하는 하드웨어를 사용하는 경우 이 값을redfish-virtualmedia
로 설정할 수 있습니다. iDRAC는idrac-virtualmedia
를 사용합니다. iLO5는ilo5-virtualmedia
를 사용합니다. 판매자에게 확인해야 할 수도 있습니다. REDFISH
: Redfish 연결 끝점.export BMC_USERNAME=$(echo -n "root" | base64 -w0) export BMC_PASSWORD=$(echo -n "calvin" | base64 -w0) export BMC_IP="192.168.124.228" export WORKER_NAME="ocp-worker-0" export BOOT_MAC_ADDRESS="aa:bb:cc:dd:ee:ff" export UUID="1" export REDFISH_SCHEME="redfish-virtualmedia" export REDFISH="${REDFISH_SCHEME}://${BMC_IP}/redfish/v1/Systems/${UUID}"
-
다음 단계를 수행하여 BaremetalHost를 생성합니다.
BMC 시크릿을 생성합니다.
oc apply -f - apiVersion: v1 data: password: ${BMC_PASSWORD} username: ${BMC_USERNAME} kind: Secret metadata: name: ${WORKER_NAME}-bmc-secret namespace: ${HOSTED_CONTROL_PLANE_NAMESPACE} type: Opaque
BMH를 생성합니다.
참고:
infraenvs.agent-install.openshift.io
레이블은 BMH를 시작하는 데 사용되는InfraEnv
를 지정하는 데 사용됩니다.bmac.agent-install.openshift.io/hostname
레이블은 호스트 이름을 수동으로 설정하는 데 사용됩니다.설치 디스크를 수동으로 지정하려면 BMH 사양에서
rootDeviceHints
를 사용할 수 있습니다.rootDeviceHints
가 제공되지 않으면 에이전트는 설치 요구 사항에 더 적합한 설치 디스크를 선택합니다.rootDeviceHints
에 대한 자세한 내용은 BareMetalHost 설명서의 rootDeviceHints 섹션을 참조하십시오.oc apply -f - apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: ${WORKER_NAME} namespace: ${HOSTED_CONTROL_PLANE_NAMESPACE} labels: infraenvs.agent-install.openshift.io: ${HOSTED_CLUSTER_NAME} annotations: inspect.metal3.io: disabled bmac.agent-install.openshift.io/hostname: ${WORKER_NAME} spec: automatedCleaningMode: disabled bmc: disableCertificateVerification: True address: ${REDFISH} credentialsName: ${WORKER_NAME}-bmc-secret bootMACAddress: ${BOOT_MAC_ADDRESS} online: true
에이전트가 자동으로 승인됩니다. 승인되지 않은 경우
bootMACAddress
가 올바른지 확인합니다.BMH가 프로비저닝됩니다.
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmh
출력 예
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioning true 2m50s
결국 BMH는
프로비저닝된
상태에 도달합니다.oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmh
출력 예
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioned true 72s
provisioned는 노드가 virtualCD에서 시작하도록 올바르게 구성되었음을 의미합니다. 에이전트가 표시되는 데 다소 시간이 걸립니다.
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
출력 예
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign
에이전트가 자동으로 승인됩니다.
나머지 두 노드에서 이 프로세스를 반복합니다.
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
출력 예
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign d9198891-39f4-4930-a679-65fb142b108b true auto-assign da503cf1-a347-44f2-875c-4960ddb04091 true auto-assign
1.7.4.5. 호스트된 클러스터에 액세스
호스트된 컨트롤 플레인이 실행 중이며 에이전트는 호스팅된 클러스터에 참여할 준비가 되어 있습니다. 에이전트가 호스트된 클러스터에 참여하기 전에 호스트 클러스터에 액세스해야 합니다.
다음 명령을 입력하여 kubeconfig를 생성합니다.
hypershift create kubeconfig --namespace ${CLUSTERS_NAMESPACE} --name ${HOSTED_CLUSTER_NAME} > ${HOSTED_CLUSTER_NAME}.kubeconfig
클러스터에 액세스하는 경우 노드가 없고 ClusterVersion에서 Red Hat OpenShift Container Platform 릴리스를 조정하려는 것을 확인할 수 있습니다.
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,nodes
출력 예
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS clusterversion.config.openshift.io/version False True 8m6s Unable to apply 4.12z: some cluster operators have not yet rolled out
클러스터를 실행하려면 노드를 추가해야 합니다.
1.7.4.6. NodePool 오브젝트 스케일링
NodePool 오브젝트를 스케일링하여 호스팅 클러스터에 노드를 추가합니다.
NodePool 오브젝트를 두 개의 노드로 확장합니다.
oc -n ${CLUSTERS_NAMESPACE} scale nodepool ${NODEPOOL_NAME} --replicas 2
ClusterAPI 에이전트 공급자는 호스트된 클러스터에 할당된 두 에이전트를 임의로 선택합니다. 이러한 에이전트는 다양한 상태를 살펴보고 마지막으로 호스팅된 클러스터에 OpenShift Container Platform 노드로 참여합니다. 상태가
바인딩
에서 전달되어 존재하지 않는 클러스터 (Add-to-existing
.-cluster)에 install-in-progress에 설치에
충분하지
않음으로 검색합니다oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
출력 예
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 hypercluster1 true auto-assign d9198891-39f4-4930-a679-65fb142b108b true auto-assign da503cf1-a347-44f2-875c-4960ddb04091 hypercluster1 true auto-assign oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}' BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: binding BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: known-unbound BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: insufficient
에이전트가 Add
-to-existing-cluster
상태에 도달하면 OpenShift Container Platform 노드가 표시되는지 확인합니다.oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
출력 예
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 5m41s v1.24.0+3882f8f ocp-worker-2 Ready worker 6m3s v1.24.0+3882f8f
clusteroperators는 노드에 워크로드를 추가하여 조정하기 시작합니다.
NodePool
오브젝트를 확장할 때 두 개의 머신이 생성된 것을 확인할 수도 있습니다.oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get machines
출력 예
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION hypercluster1-c96b6f675-m5vch hypercluster1-b2qhl ocp-worker-1 agent://da503cf1-a347-44f2-875c-4960ddb04091 Running 15m 4.12z hypercluster1-c96b6f675-tl42p hypercluster1-b2qhl ocp-worker-2 agent://4dac1ab2-7dd5-4894-a220-6a3473b67ee6 Running 15m 4.12z
clusterversion
조정은 결국 Ingress 및 Console 클러스터 Operator만 누락되는 시점에 도달합니다.oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,co NAME VERSION AVAILABLE PROGRESSING SINCE STATUS clusterversion.config.openshift.io/version False True 40m Unable to apply 4.12z: the cluster operator console has not yet successfully rolled out NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE clusteroperator.config.openshift.io/console 4.12z False False False 11m RouteHealthAvailable: failed to GET route (https://console-openshift-console.apps.hypercluster1.domain.com): Get "https://console-openshift-console.apps.hypercluster1.domain.com": dial tcp 10.19.3.29:443: connect: connection refused clusteroperator.config.openshift.io/csi-snapshot-controller 4.12z True False False 10m clusteroperator.config.openshift.io/dns 4.12z True False False 9m16s clusteroperator.config.openshift.io/image-registry 4.12z True False False 9m5s clusteroperator.config.openshift.io/ingress 4.12z True False True 39m The "default" ingress controller reports Degraded=True: DegradedConditions: One or more other status conditions indicate a degraded state: CanaryChecksSucceeding=False (CanaryChecksRepetitiveFailures: Canary route checks for the default ingress controller are failing) clusteroperator.config.openshift.io/insights 4.12z True False False 11m clusteroperator.config.openshift.io/kube-apiserver 4.12z True False False 40m clusteroperator.config.openshift.io/kube-controller-manager 4.12z True False False 40m clusteroperator.config.openshift.io/kube-scheduler 4.12z True False False 40m clusteroperator.config.openshift.io/kube-storage-version-migrator 4.12z True False False 10m clusteroperator.config.openshift.io/monitoring 4.12z True False False 7m38s clusteroperator.config.openshift.io/network 4.12z True False False 11m clusteroperator.config.openshift.io/openshift-apiserver 4.12z True False False 40m clusteroperator.config.openshift.io/openshift-controller-manager 4.12z True False False 40m clusteroperator.config.openshift.io/openshift-samples 4.12z True False False 8m54s clusteroperator.config.openshift.io/operator-lifecycle-manager 4.12z True False False 40m clusteroperator.config.openshift.io/operator-lifecycle-manager-catalog 4.12z True False False 40m clusteroperator.config.openshift.io/operator-lifecycle-manager-packageserver 4.12z True False False 40m clusteroperator.config.openshift.io/service-ca 4.12z True False False 11m clusteroperator.config.openshift.io/storage 4.12z True False False 11m
1.7.4.7. Ingress 처리
모든 OpenShift Container Platform 클러스터는 기본 애플리케이션 인그레스 컨트롤러에서 설정되며, 이 컨트롤러와 연결된 외부 DNS 레코드가 필요합니다. 예를 들어 기본 도메인 krnl.es
를 사용하여 example
이라는 HyperShift 클러스터를 생성하는 경우 와일드카드 도메인 *.apps.example.krnl.es
를 라우팅할 수 있습니다.
*.apps
.apps에 로드 밸런서 및 와일드카드 DNS 레코드를 설정할 수 있습니다. 이 프로세스에서는 CloudEvent를 배포하고, 인그레스 배포로 라우팅하는 새 로드 밸런서 서비스를 구성하고, 로드 밸런서 IP 주소에 와일드카드 DNS 항목을 할당해야 합니다.
LoadBalancer
유형의 서비스를 생성할 때 service에 대한 외부 IP 주소를 추가하도록 CloudEvent를 설정합니다.cat <<"EOF" | oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig apply -f - --- apiVersion: v1 kind: Namespace metadata: name: metallb labels: openshift.io/cluster-monitoring: "true" annotations: workload.openshift.io/allowed: management --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: metallb-operator-operatorgroup namespace: metallb --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: metallb-operator namespace: metallb spec: channel: "stable" name: metallb-operator source: redhat-operators sourceNamespace: openshift-marketplace
Operator가 실행된 후 CloudEvent 인스턴스를 생성합니다.
cat <<"EOF" | oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig apply -f - apiVersion: metallb.io/v1beta1 kind: MetalLB metadata: name: metallb namespace: metallb EOF
단일 IP 주소로
IPAddressPool
을 생성하여 ScanSetting Operator를 구성합니다. 이 IP 주소는 클러스터 노드가 사용하는 네트워크와 동일한 서브넷에 있어야 합니다.중요:
INGRESS_IP
환경 변수를 사용자 환경 주소와 일치하도록 변경합니다.export INGRESS_IP=192.168.122.23 envsubst <<"EOF" | oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig apply -f - apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: ingress-public-ip namespace: metallb spec: protocol: layer2 autoAssign: false addresses: - ${INGRESS_IP}-${INGRESS_IP} EOF
다음 단계에 따라 CloudEvent를 통해 OpenShift Container Platform 라우터를 노출합니다.
수신 트래픽을 수신 배포로 라우팅하는 LoadBalancer 서비스를 설정합니다.
cat <<"EOF" | oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig apply -f - kind: Service apiVersion: v1 metadata: annotations: metallb.universe.tf/address-pool: ingress-public-ip name: metallb-ingress namespace: openshift-ingress spec: ports: - name: http protocol: TCP port: 80 targetPort: 80 - name: https protocol: TCP port: 443 targetPort: 443 selector: ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default type: LoadBalancer EOF
OpenShift Container Platform 콘솔에 연결하려면 다음 명령을 입력합니다.
curl -kI https://console-openshift-console.apps.example.krnl.es HTTP/1.1 200 OK
clusterversion
및clusteroperator
값을 확인하여 모든 항목이 실행 중인지 확인합니다. 다음 명령을 실행합니다.oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,co
출력 예
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS clusterversion.config.openshift.io/version 4.12z True False 3m32s Cluster version is 4.12z NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE clusteroperator.config.openshift.io/console 4.12z True False False 3m50s clusteroperator.config.openshift.io/csi-snapshot-controller 4.12z True False False 25m clusteroperator.config.openshift.io/dns 4.12z True False False 23m clusteroperator.config.openshift.io/image-registry 4.12z True False False 23m clusteroperator.config.openshift.io/ingress 4.12z True False False 53m clusteroperator.config.openshift.io/insights 4.12z True False False 25m clusteroperator.config.openshift.io/kube-apiserver 4.12z True False False 54m clusteroperator.config.openshift.io/kube-controller-manager 4.12z True False False 54m clusteroperator.config.openshift.io/kube-scheduler 4.12z True False False 54m clusteroperator.config.openshift.io/kube-storage-version-migrator 4.12z True False False 25m clusteroperator.config.openshift.io/monitoring 4.12z True False False 21m clusteroperator.config.openshift.io/network 4.12z True False False 25m clusteroperator.config.openshift.io/openshift-apiserver 4.12z True False False 54m clusteroperator.config.openshift.io/openshift-controller-manager 4.12z True False False 54m clusteroperator.config.openshift.io/openshift-samples 4.12z True False False 23m clusteroperator.config.openshift.io/operator-lifecycle-manager 4.12z True False False 54m clusteroperator.config.openshift.io/operator-lifecycle-manager-catalog 4.12z True False False 54m clusteroperator.config.openshift.io/operator-lifecycle-manager-packageserver 4.12z True False False 54m clusteroperator.config.openshift.io/service-ca 4.12z True False False 25m clusteroperator.config.openshift.io/storage 4.12z True False False 25m
1.7.4.8. 호스팅된 클러스터의 노드 자동 확장 활성화
호스트 클러스터에 더 많은 용량이 필요하고 예비 에이전트를 사용할 수 있는 경우 자동 스케일링을 활성화하여 새 에이전트를 설치할 수 있습니다.
자동 확장을 활성화하려면 다음 명령을 입력합니다. 이 경우 최소 노드 수는 2이고 최대 개수는 5입니다.
oc -n ${CLUSTERS_NAMESPACE} patch nodepool ${HOSTED_CLUSTER_NAME} --type=json -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'
추가 용량을 요구하지 않고 10분이 경과하면 에이전트가 해제되어 예비 대기열에 다시 배치됩니다.
새 노드가 필요한 워크로드를 생성합니다.
cat <<EOF | oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig apply -f - apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: reversewords name: reversewords namespace: default spec: replicas: 40 selector: matchLabels: app: reversewords strategy: {} template: metadata: creationTimestamp: null labels: app: reversewords spec: containers: - image: quay.io/mavazque/reversewords:latest name: reversewords resources: requests: memory: 2Gi status: {} EOF
다음 명령을 입력하여 나머지 에이전트가 배포되었는지 확인합니다. 이 예에서는 예비 에이전트인
d9198891-39f4-4930-a679-65fb142b108b
가 프로비저닝됩니다.oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}'
출력 예
BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: installing-in-progress BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-cluster
다음 명령을 입력하여 노드를 확인하면 새 노드가 출력에 표시됩니다. 이 예에서는
ocp-worker-0
이 클러스터에 추가되었습니다.oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
출력 예
NAME STATUS ROLES AGE VERSION ocp-worker-0 Ready worker 35s v1.24.0+3882f8f ocp-worker-1 Ready worker 40m v1.24.0+3882f8f ocp-worker-2 Ready worker 41m v1.24.0+3882f8f
노드를 삭제하려면 다음 명령을 입력하여 워크로드를 삭제합니다.
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig -n default delete deployment reversewords
10분 동안 기다린 후 다음 명령을 입력하여 노드가 제거되었는지 확인합니다.
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
출력 예
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 51m v1.24.0+3882f8f ocp-worker-2 Ready worker 52m v1.24.0+3882f8f
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}' BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: known-unbound BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-cluster
1.7.4.9. 호스트된 클러스터 생성 확인
배포 프로세스가 완료되면 호스팅된 클러스터가 성공적으로 생성되었는지 확인할 수 있습니다. 호스팅된 클러스터를 생성한 후 몇 분 후에 다음 단계를 따르십시오.
extract 명령을 입력하여 새 호스트 클러스터의 kubeconfig를 가져옵니다.
oc extract -n kni21 secret/kni21-admin-kubeconfig --to=- > kubeconfig-kni21 # kubeconfig
kubeconfig를 사용하여 호스팅 클러스터의 클러스터 Operator를 봅니다. 다음 명령을 실행합니다.
oc get co --kubeconfig=kubeconfig-kni21
출력 예
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE console 4.10.26 True False False 2m38s csi-snapshot-controller 4.10.26 True False False 4m3s dns 4.10.26 True False False 2m52s image-registry 4.10.26 True False False 2m8s ingress 4.10.26 True False False 22m kube-apiserver 4.10.26 True False False 23m kube-controller-manager 4.10.26 True False False 23m kube-scheduler 4.10.26 True False False 23m kube-storage-version-migrator 4.10.26 True False False 4m52s monitoring 4.10.26 True False False 69s network 4.10.26 True False False 4m3s node-tuning 4.10.26 True False False 2m22s openshift-apiserver 4.10.26 True False False 23m openshift-controller-manager 4.10.26 True False False 23m openshift-samples 4.10.26 True False False 2m15s operator-lifecycle-manager 4.10.26 True False False 22m operator-lifecycle-manager-catalog 4.10.26 True False False 23m operator-lifecycle-manager-packageserver 4.10.26 True False False 23m service-ca 4.10.26 True False False 4m41s storage 4.10.26 True False False 4m43s
다음 명령을 입력하여 호스팅된 클러스터에서 실행 중인 Pod를 볼 수도 있습니다.
oc get pods -A --kubeconfig=kubeconfig-kni21
출력 예
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system konnectivity-agent-khlqv 0/1 Running 0 3m52s kube-system konnectivity-agent-nrbvw 0/1 Running 0 4m24s kube-system konnectivity-agent-s5p7g 0/1 Running 0 4m14s kube-system kube-apiserver-proxy-asus3-vm1.kni.schmaustech.com 1/1 Running 0 5m56s kube-system kube-apiserver-proxy-asus3-vm2.kni.schmaustech.com 1/1 Running 0 6m37s kube-system kube-apiserver-proxy-asus3-vm3.kni.schmaustech.com 1/1 Running 0 6m17s openshift-cluster-node-tuning-operator cluster-node-tuning-operator-798fcd89dc-9cf2k 1/1 Running 0 20m openshift-cluster-node-tuning-operator tuned-dhw5p 1/1 Running 0 109s openshift-cluster-node-tuning-operator tuned-dlp8f 1/1 Running 0 110s openshift-cluster-node-tuning-operator tuned-l569k 1/1 Running 0 109s openshift-cluster-samples-operator cluster-samples-operator-6b5bcb9dff-kpnbc 2/2 Running 0 20m openshift-cluster-storage-operator cluster-storage-operator-5f784969f5-vwzgz 1/1 Running 1 (113s ago) 20m openshift-cluster-storage-operator csi-snapshot-controller-6b7687b7d9-7nrfw 1/1 Running 0 3m8s openshift-cluster-storage-operator csi-snapshot-controller-6b7687b7d9-csksg 1/1 Running 0 3m9s openshift-cluster-storage-operator csi-snapshot-controller-operator-7f4d9fc5b8-hkvrk 1/1 Running 0 20m openshift-cluster-storage-operator csi-snapshot-webhook-6759b5dc8b-7qltn 1/1 Running 0 3m12s openshift-cluster-storage-operator csi-snapshot-webhook-6759b5dc8b-f8bqk 1/1 Running 0 3m12s openshift-console-operator console-operator-8675b58c4c-flc5p 1/1 Running 1 (96s ago) 20m openshift-console console-5cbf6c7969-6gk6z 1/1 Running 0 119s openshift-console downloads-7bcd756565-6wj5j 1/1 Running 0 4m3s openshift-dns-operator dns-operator-77d755cd8c-xjfbn 2/2 Running 0 21m openshift-dns dns-default-jwjkz 2/2 Running 0 113s openshift-dns dns-default-kfqnh 2/2 Running 0 113s openshift-dns dns-default-xlqsm 2/2 Running 0 113s openshift-dns node-resolver-jzxnd 1/1 Running 0 110s openshift-dns node-resolver-xqdr5 1/1 Running 0 110s openshift-dns node-resolver-zl6h4 1/1 Running 0 110s openshift-image-registry cluster-image-registry-operator-64fcfdbf5-r7d5t 1/1 Running 0 20m openshift-image-registry image-registry-7fdfd99d68-t9pq9 1/1 Running 0 53s openshift-image-registry node-ca-hkfnr 1/1 Running 0 56s openshift-image-registry node-ca-vlsdl 1/1 Running 0 56s openshift-image-registry node-ca-xqnsw 1/1 Running 0 56s openshift-ingress-canary ingress-canary-86z6r 1/1 Running 0 4m13s openshift-ingress-canary ingress-canary-8jhxk 1/1 Running 0 3m52s openshift-ingress-canary ingress-canary-cv45h 1/1 Running 0 4m24s openshift-ingress router-default-6bb8944f66-z2lxr 1/1 Running 0 20m openshift-kube-storage-version-migrator-operator kube-storage-version-migrator-operator-56b57b4844-p9zgp 1/1 Running 1 (2m16s ago) 20m openshift-kube-storage-version-migrator migrator-58bb4d89d5-5sl9w 1/1 Running 0 3m30s openshift-monitoring alertmanager-main-0 6/6 Running 0 100s openshift-monitoring cluster-monitoring-operator-5bc5885cd4-dwbc4 2/2 Running 0 20m openshift-monitoring grafana-78f798868c-wd84p 3/3 Running 0 94s openshift-monitoring kube-state-metrics-58b8f97f6c-6kp4v 3/3 Running 0 104s openshift-monitoring node-exporter-ll7cp 2/2 Running 0 103s openshift-monitoring node-exporter-tgsqg 2/2 Running 0 103s openshift-monitoring node-exporter-z99gr 2/2 Running 0 103s openshift-monitoring openshift-state-metrics-677b9fb74f-qqp6g 3/3 Running 0 104s openshift-monitoring prometheus-adapter-f69fff5f9-7tdn9 0/1 Running 0 17s openshift-monitoring prometheus-k8s-0 6/6 Running 0 93s openshift-monitoring prometheus-operator-6b9d4fd9bd-tqfcx 2/2 Running 0 2m2s openshift-monitoring telemeter-client-74d599658c-wqw5j 3/3 Running 0 101s openshift-monitoring thanos-querier-64c8757854-z4lll 6/6 Running 0 98s openshift-multus multus-additional-cni-plugins-cqst9 1/1 Running 0 6m14s openshift-multus multus-additional-cni-plugins-dbmkj 1/1 Running 0 5m56s openshift-multus multus-additional-cni-plugins-kcwl9 1/1 Running 0 6m14s openshift-multus multus-admission-controller-22cmb 2/2 Running 0 3m52s openshift-multus multus-admission-controller-256tn 2/2 Running 0 4m13s openshift-multus multus-admission-controller-mz9jm 2/2 Running 0 4m24s openshift-multus multus-bxgvr 1/1 Running 0 6m14s openshift-multus multus-dmkdc 1/1 Running 0 6m14s openshift-multus multus-gqw2f 1/1 Running 0 5m56s openshift-multus network-metrics-daemon-6cx4x 2/2 Running 0 5m56s openshift-multus network-metrics-daemon-gz4jp 2/2 Running 0 6m13s openshift-multus network-metrics-daemon-jq9j4 2/2 Running 0 6m13s openshift-network-diagnostics network-check-source-8497dc8f86-cn4nm 1/1 Running 0 5m59s openshift-network-diagnostics network-check-target-d8db9 1/1 Running 0 5m58s openshift-network-diagnostics network-check-target-jdbv8 1/1 Running 0 5m58s openshift-network-diagnostics network-check-target-zzmdv 1/1 Running 0 5m55s openshift-network-operator network-operator-f5b48cd67-x5dcz 1/1 Running 0 21m openshift-sdn sdn-452r2 2/2 Running 0 5m56s openshift-sdn sdn-68g69 2/2 Running 0 6m openshift-sdn sdn-controller-4v5mv 2/2 Running 0 5m56s openshift-sdn sdn-controller-crscc 2/2 Running 0 6m1s openshift-sdn sdn-controller-fxtn9 2/2 Running 0 6m1s openshift-sdn sdn-n5jm5 2/2 Running 0 6m openshift-service-ca-operator service-ca-operator-5bf7f9d958-vnqcg 1/1 Running 1 (2m ago) 20m openshift-service-ca service-ca-6c54d7944b-v5mrw 1/1 Running 0 3m8s
1.7.4.10. 베어 메탈에서 호스트된 클러스터 삭제
콘솔을 사용하여 베어 메탈 호스트 클러스터를 제거할 수 있습니다. 베어 메탈에서 호스팅된 클러스터를 삭제하려면 다음 단계를 완료합니다.
- 콘솔에서 Infrastructure > Clusters 로 이동합니다.
- 클러스터 페이지에서 삭제할 클러스터를 선택합니다.
- 작업 메뉴에서 클러스터 삭제 를 선택하여 클러스터를 제거합니다.
1.7.4.11. 추가 리소스
- CloudEvent에 대한 자세한 내용은 OpenShift Container Platform 설명서의 About CloudEvent 및 the 10.0.0.1 Operator 를 참조하십시오.
-
rootDeviceHints
에 대한 자세한 내용은 BareMetalHost 설명서의 rootDeviceHints 섹션 을 참조하십시오.
1.7.5. 호스팅된 컨트롤 플레인 기능 비활성화
HyperShift Operator를 설치 제거하고 호스팅 컨트롤 플레인을 비활성화할 수 있습니다. 호스팅된 컨트롤 플레인 클러스터 기능을 비활성화하는 경우 호스팅된 컨트롤 플레인 클러스터 항목에 설명된 대로 멀티 클러스터 엔진 Operator에서 호스팅 클러스터 및 관리 클러스터 리소스를 제거해야 합니다.
1.7.5.1. HyperShift Operator 설치 제거
HyperShift Operator를 제거하고 로컬 클러스터에서
hypershift-addon
을 비활성화하려면 다음 단계를 완료합니다.
다음 명령을 실행하여 실행 중인 호스팅 클러스터가 없는지 확인합니다.
oc get hostedcluster -A
중요: 호스트된 클러스터가 실행 중인 경우
hypershift-addon
이 비활성화된 경우에도 HyperShift Operator가 제거되지 않습니다.다음 명령을 실행하여
hypershift-addon
을 비활성화합니다.oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-local-hosting","enabled": false}]}}}'
팁:
hypershift-addon
을 비활성화한 후 다중클러스터 엔진 Operator 콘솔에서 로컬
클러스터에 대한hypershift-addon
을 비활성화할 수도 있습니다.
1.7.5.2. 호스팅된 컨트롤 플레인 기능 비활성화
호스트된 컨트롤 플레인 기능을 비활성화하기 전에 HyperShift Operator를 먼저 제거해야 합니다. 다음 명령을 실행하여 호스팅된 컨트롤 플레인 기능을 비활성화합니다.
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": false}]}}}'
다음 명령을 실행하여 MultiClusterEngine
사용자 정의 리소스에서 hypershift-preview
및 hypershift-local-hosting
기능이 비활성화되어 있는지 확인할 수 있습니다.
oc get mce multiclusterengine -o yaml
hypershift-preview
및 hypershift-local-hosting
의 enabled:
플래그가 false
로 설정된 다음 예제를 참조하십시오.
apiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterengine spec: overrides: components: - name: hypershift-preview enabled: false - name: hypershift-local-hosting enabled: false