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에서 호스팅 클러스터를 생성하고 관리하려면 다음 단계를 완료하십시오.

  1. HyperShift Operator에 대해 hypershift-operator-oidc-provider-s3-credentials 라는 OIDC S3 시크릿을 생성합니다.
  2. local-cluster 네임스페이스에 보안을 저장합니다.
  3. 다음 표를 참조하여 시크릿에 다음 필드가 포함되어 있는지 확인합니다.

    필드 이름설명

    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)를 사용하여 호스트 컨트롤 플레인 클러스터를 프로비저닝하려면 다음 단계를 완료합니다.

  1. HyperShift Operator의 AWS 인증 정보 시크릿을 생성하고 local-cluster 네임스페이스에서 hypershift-operator-external-dns-credentials 이름을 지정합니다.
  2. 다음 표를 참조하여 시크릿에 필수 필드가 포함되어 있는지 확인합니다.

    필드 이름설명선택적 또는 필수

    공급자

    서비스 수준 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.6. 호스팅된 컨트롤 플레인 기능 활성화

호스팅된 컨트롤 플레인 기능은 기본적으로 비활성화되어 있습니다. 기능을 활성화하면 hypershift-addon 관리 클러스터 애드온도 자동으로 활성화됩니다. 다음 명령을 실행하여 기능을 활성화할 수 있습니다.

oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'

다음 명령을 실행하여 MultiClusterEngine 사용자 정의 리소스에서 hypershift-previewhypershift-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를 설치하려면 다음 단계를 완료합니다.

  1. 다음 예와 유사한 파일을 생성하여 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
  2. 다음 명령을 실행하여 파일을 적용합니다.

    oc apply -f <filename>

    파일 이름을 생성한 파일의 이름으로 바꿉니다.

  3. 다음 명령을 실행하여 hypershift-addon 이 설치되었는지 확인합니다.

    oc get managedclusteraddons -n local-cluster hypershift-addon
  4. 추가 기능이 설치된 경우 출력은 다음 예와 유사합니다.

    NAME               AVAILABLE   DEGRADED   PROGRESSING
    hypershift-addon   True

HyperShift 애드온이 설치되어 호스팅 클러스터를 생성하고 관리할 수 있습니다.

1.7.1.7. 호스팅된 컨트롤 플레인 CLI 설치

호스팅된 컨트롤 플레인(HyperShift) CLI는 OpenShift Container Platform 호스팅 컨트롤 플레인 클러스터를 생성하고 관리하는 데 사용됩니다. 호스팅된 컨트롤 플레인 기능을 활성화한 후 다음 단계를 완료하여 호스팅된 컨트롤 플레인 CLI를 설치할 수 있습니다.

  1. OpenShift Container Platform 콘솔에서 도움말 아이콘 > 명령줄 툴 을 클릭합니다.
  2. 플랫폼에 대해 Hypershift CLI 다운로드를 클릭합니다.

    참고: hypershift-preview 기능을 활성화한 경우에만 다운로드가 표시됩니다.

  3. 다음 명령을 실행하여 다운로드한 아카이브의 압축을 풉니다.

    tar xvzf hypershift.tar.gz
  4. 다음 명령을 실행하여 바이너리 파일을 실행 가능하게 합니다.

    chmod +x hypershift
  5. 다음 명령을 실행하여 바이너리 파일을 경로의 디렉터리로 이동합니다.

    sudo mv hypershift /usr/local/bin/.

이제 hypershift create cluster 명령을 사용하여 호스팅 클러스터를 생성하고 관리할 수 있습니다. 다음 명령을 사용하여 사용 가능한 매개변수를 나열합니다.

hypershift create cluster aws --help

1.7.1.8. 추가 리소스

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입니다. 값을 제공하지 않으면 HTTPHTTPS 모두에 대해 HTTP 프록시 URL 과 동일한 값이 사용됩니다.
  • 프록시 도메인이 없음: 프록시를 바이패스해야 하는 쉼표로 구분된 도메인 목록입니다. 해당 도메인에 있는 모든 하위 도메인을 포함하려면 마침표로 도메인 이름을 시작합니다 . 모든 대상에 대한 프록시를 바이패스하려면 별표 * 를 추가합니다.
  • 추가 신뢰 번들: 미러 레지스트리에 액세스하는 데 필요한 인증서 파일의 콘텐츠입니다.

클러스터를 생성하기 전에 정보를 검토하고 선택적으로 사용자 지정할 때 YAML: On 을 선택하여 패널의 YAML 콘텐츠를 볼 수 있습니다. 업데이트가 있는 경우 사용자 지정 설정으로 YAML 파일을 편집할 수 있습니다.

참고: 클러스터를 가져오려면 클러스터 세부 정보와 함께 제공되는 oc 명령을 실행해야 합니다. 클러스터를 생성할 때 Red Hat Advanced Cluster Management의 관리로 자동 구성되지 않습니다.

1.7.2.3. AWS에 호스트 클러스터 배포

호스팅된 컨트롤 플레인(Hypershift) 명령줄 인터페이스를 설정하고 호스팅 클러스터로 로컬 클러스터를 활성화한 후 다음 단계를 완료하여 AWS에 호스트 클러스터를 배포할 수 있습니다.

  1. 다음과 같이 환경 변수를 설정하여 필요에 따라 변수를 인증 정보로 교체합니다.

    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
  2. CLUSTER_NAMEINFRA_ID 가 동일한 값이 있는지 확인합니다. 그러지 않으면 Kubernetes Operator 콘솔의 멀티 클러스터 엔진에 클러스터가 올바르게 표시되지 않을 수 있습니다. 각 변수에 대한 설명을 보려면 다음 명령을 실행합니다.

    hypershift create cluster aws --help
  3. hub 클러스터에 로그인했는지 확인합니다.
  4. 다음 명령을 실행하여 호스트된 클러스터를 생성합니다.

    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>

    참고: 기본적으로 모든 HostedClusterNodePool 사용자 정의 리소스가 클러스터 네임스페이스에 생성됩니다. --namespace <namespace> 매개변수를 지정하면 선택한 네임스페이스에 HostedClusterNodePool 사용자 정의 리소스가 생성됩니다.

  5. 다음 명령을 실행하여 호스팅된 클러스터의 상태를 확인할 수 있습니다.

    oc get hostedclusters -n <hypershift-hosting-service-cluster>

1.7.2.4. AWS에서 호스팅 컨트롤 플레인 클러스터 가져오기

콘솔을 사용하여 호스트된 컨트롤 플레인 클러스터를 가져올 수 있습니다.

  1. Infrastructure > Clusters 로 이동하여 가져올 호스트 클러스터를 선택합니다.
  2. Import hosted cluster 를 클릭합니다.

    참고: 검색된 호스트 클러스터의 경우 콘솔에서 가져올 수도 있지만 클러스터는 업그레이드 가능한 상태여야 합니다. 호스팅 컨트롤 플레인을 사용할 수 없기 때문에 호스팅된 클러스터가 업그레이드 가능한 상태가 아닌 경우 클러스터에서 가져오기가 비활성화됩니다. Import (가져오기)를 클릭하여 프로세스를 시작합니다. 클러스터가 업데이트를 수신하는 동안 상태가 Importing 된 후 Ready 로 변경됩니다.

다음 단계를 완료하여 명령줄 인터페이스를 사용하여 AWS에서 호스팅 컨트롤 플레인 클러스터를 가져올 수도 있습니다.

  1. 다음 명령을 실행하여 HostedCluster 사용자 정의 리소스에 주석을 추가합니다.

    oc edit hostedcluster <cluster_name> -n clusters

    & lt;cluster_name >을 호스트 클러스터 이름으로 바꿉니다.

  2. 다음 명령을 실행하여 HostedCluster 사용자 정의 리소스에 주석을 추가합니다.

    cluster.open-cluster-management.io/hypershiftdeployment: local-cluster/<cluster_name>
    cluster.open-cluster-management.io/managedcluster-name: <cluster_name>

    & lt;cluster_name >을 호스트 클러스터 이름으로 바꿉니다.

  3. 다음 샘플 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 >을 호스트 클러스터 이름으로 바꿉니다.

  4. 다음 명령을 실행하여 리소스를 적용합니다.

    oc apply -f <file_name>

    <file_name>을 이전 단계에서 생성한 YAML 파일 이름으로 바꿉니다.

  5. 다음 샘플 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 >을 호스트 클러스터 이름으로 바꿉니다.

  6. 다음 명령을 실행하여 리소스를 적용합니다.

    oc apply -f <file_name>

    <file_name>을 이전 단계에서 생성한 YAML 파일 이름으로 바꿉니다.

  7. 가져오기 프로세스가 완료되면 호스트된 클러스터가 콘솔에 표시됩니다. 다음 명령을 실행하여 호스팅된 클러스터의 상태를 확인할 수도 있습니다.

    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. 사전 요구 사항

시작하기 전에 다음 사전 요구 사항을 충족해야 합니다.

ARM64 OpenShift Container Platform 클러스터에서 호스팅된 클러스터를 실행하려면 다음 단계를 따르십시오.

  1. 관리 클러스터에 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
  2. 다중 아키텍처 릴리스 이미지로 기본 릴리스 이미지를 재정의하는 호스트 클러스터를 생성합니다.

    예를 들어 호스트된 컨트롤 플레인(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 오브젝트를 추가합니다.

  3. 호스트된 클러스터에 64비트 x86 NodePool 개체를 추가합니다.

    예를 들어 호스트된 컨트롤 플레인(hypershift) 명령줄 인터페이스를 통해 다음 명령을 입력합니다. 클러스터 이름, 노드 풀 이름 및 노드 풀 복제본을 사용자의 정보로 교체하십시오.

    hypershift create nodepool aws \
    --cluster-name $CLUSTER_NAME \
    --name $NODEPOOL_NAME \
    --node-count=$NODEPOOL_REPLICAS

1.7.2.7. AWS에서 호스트 클러스터 삭제

호스팅 클러스터 및 관리되는 클러스터 리소스를 제거하려면 다음 단계를 완료합니다.

  1. 다음 명령을 실행하여 호스팅 클러스터 및 해당 백엔드 리소스를 삭제합니다.

    hypershift destroy cluster aws --name <cluster_name> --infra-id <infra_id> --aws-creds <aws-credentials> --base-domain <base_domain> --destroy-cloud-resources

    필요한 경우 이름을 바꿉니다.

  2. 다음 명령을 실행하여 다중 클러스터 엔진 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. 추가 리소스

1.7.4. 베어 메탈에서 호스트된 컨트롤 플레인 클러스터 관리 (기술 프리뷰)

Kubernetes Operator 콘솔의 다중 클러스터 엔진을 사용하여 Red Hat OpenShift Container Platform 호스트 클러스터를 생성하고 관리할 수 있습니다. 호스트된 컨트롤 플레인은 AWS(Amazon Web Services) 및 베어 메탈에서 기술 프리뷰로 사용할 수 있습니다.

1.7.4.1. 사전 요구 사항

호스트된 컨트롤 플레인 클러스터를 생성하기 전에 베어 메탈에 호스트된 컨트롤 플레인을 구성해야 합니다. 자세한 내용은 베어 메탈에서 호스팅 클러스터 구성(기술 프리뷰) 을 참조하십시오.

1.7.4.2. 베어 메탈에서 호스트된 클러스터 생성

클러스터에 기본 스토리지 클래스가 구성되어 있는지 확인합니다. 그렇지 않으면 보류 중인 PVC로 끝날 수 있습니다.

  1. 다음 명령을 입력합니다.

    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} \
  2. 잠시 후 다음 명령을 입력하여 호스팅 컨트롤 플레인 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를 시작하는 호스트가 에이전트로 참여할 수 있는 환경입니다. 이 경우 에이전트는 호스트 컨트롤 플레인과 동일한 네임스페이스에 생성됩니다.

  1. 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
  2. 가상 머신 또는 베어 메탈 머신이 에이전트로 참여할 수 있는 라이브 ISO를 생성하려면 다음 명령을 입력합니다.

    oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get InfraEnv ${HOSTED_CLUSTER_NAME} -ojsonpath="{.status.isoDownloadURL}"

1.7.4.4. 에이전트 추가

라이브 ISO로 시작하거나 Metal3을 사용하여 머신을 수동으로 구성하여 에이전트를 추가할 수 있습니다.

  • 에이전트를 수동으로 추가하려면 다음 단계를 수행합니다.

    1. 라이브 ISO를 다운로드하여 이를 사용하여 노드를 시작합니다(베어 메탈 또는 VM). 시작 시 노드는 지원 서비스와 통신하고 InfraEnv 와 동일한 네임스페이스에 있는 에이전트로 등록합니다.
    2. 각 에이전트가 생성되면 선택적으로 사양에 installation_disk_idhostname 을 설정할 수 있습니다. 그런 다음 이를 승인하여 에이전트가 사용할 준비가 되었음을 나타냅니다.

      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

  • Metal3을 사용하여 에이전트를 추가하려면 다음 지침을 따르십시오.

    1. 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 네임스페이스에서 다시 시작됩니다.

    2. 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
    3. 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}"
    4. 다음 단계를 수행하여 BaremetalHost를 생성합니다.

      1. 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
      2. 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

        에이전트가 자동으로 승인됩니다.

      3. 나머지 두 노드에서 이 프로세스를 반복합니다.

        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. 호스트된 클러스터에 액세스

호스트된 컨트롤 플레인이 실행 중이며 에이전트는 호스팅된 클러스터에 참여할 준비가 되어 있습니다. 에이전트가 호스트된 클러스터에 참여하기 전에 호스트 클러스터에 액세스해야 합니다.

  1. 다음 명령을 입력하여 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 오브젝트를 스케일링하여 호스팅 클러스터에 노드를 추가합니다.

  1. 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

  2. 에이전트가 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 항목을 할당해야 합니다.

  1. 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
  2. Operator가 실행된 후 CloudEvent 인스턴스를 생성합니다.

    cat <<"EOF" | oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig apply -f -
    apiVersion: metallb.io/v1beta1
    kind: MetalLB
    metadata:
      name: metallb
      namespace: metallb
    EOF
  3. 단일 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
  4. 다음 단계에 따라 CloudEvent를 통해 OpenShift Container Platform 라우터를 노출합니다.

    1. 수신 트래픽을 수신 배포로 라우팅하는 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
    2. OpenShift Container Platform 콘솔에 연결하려면 다음 명령을 입력합니다.

      curl -kI https://console-openshift-console.apps.example.krnl.es
      
      HTTP/1.1 200 OK
    3. clusterversionclusteroperator 값을 확인하여 모든 항목이 실행 중인지 확인합니다. 다음 명령을 실행합니다.

      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. 호스팅된 클러스터의 노드 자동 확장 활성화

호스트 클러스터에 더 많은 용량이 필요하고 예비 에이전트를 사용할 수 있는 경우 자동 스케일링을 활성화하여 새 에이전트를 설치할 수 있습니다.

  1. 자동 확장을 활성화하려면 다음 명령을 입력합니다. 이 경우 최소 노드 수는 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분이 경과하면 에이전트가 해제되어 예비 대기열에 다시 배치됩니다.

  2. 새 노드가 필요한 워크로드를 생성합니다.

    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
  3. 다음 명령을 입력하여 나머지 에이전트가 배포되었는지 확인합니다. 이 예에서는 예비 에이전트인 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

  4. 다음 명령을 입력하여 노드를 확인하면 새 노드가 출력에 표시됩니다. 이 예에서는 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

  5. 노드를 삭제하려면 다음 명령을 입력하여 워크로드를 삭제합니다.

    oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig -n default delete deployment reversewords
  6. 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. 호스트된 클러스터 생성 확인

배포 프로세스가 완료되면 호스팅된 클러스터가 성공적으로 생성되었는지 확인할 수 있습니다. 호스팅된 클러스터를 생성한 후 몇 분 후에 다음 단계를 따르십시오.

  1. extract 명령을 입력하여 새 호스트 클러스터의 kubeconfig를 가져옵니다.

    oc extract -n kni21 secret/kni21-admin-kubeconfig --to=- > kubeconfig-kni21
    # kubeconfig
  2. 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

  3. 다음 명령을 입력하여 호스팅된 클러스터에서 실행 중인 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. 베어 메탈에서 호스트된 클러스터 삭제

콘솔을 사용하여 베어 메탈 호스트 클러스터를 제거할 수 있습니다. 베어 메탈에서 호스팅된 클러스터를 삭제하려면 다음 단계를 완료합니다.

  1. 콘솔에서 Infrastructure > Clusters 로 이동합니다.
  2. 클러스터 페이지에서 삭제할 클러스터를 선택합니다.
  3. 작업 메뉴에서 클러스터 삭제 를 선택하여 클러스터를 제거합니다.

1.7.4.11. 추가 리소스

1.7.5. 호스팅된 컨트롤 플레인 기능 비활성화

HyperShift Operator를 설치 제거하고 호스팅 컨트롤 플레인을 비활성화할 수 있습니다. 호스팅된 컨트롤 플레인 클러스터 기능을 비활성화하는 경우 호스팅된 컨트롤 플레인 클러스터 항목에 설명된 대로 멀티 클러스터 엔진 Operator에서 호스팅 클러스터 및 관리 클러스터 리소스를 제거해야 합니다.

1.7.5.1. HyperShift Operator 설치 제거

HyperShift Operator를 제거하고 로컬 클러스터에서 hypershift-addon 을 비활성화하려면 다음 단계를 완료합니다.

  1. 다음 명령을 실행하여 실행 중인 호스팅 클러스터가 없는지 확인합니다.

    oc get hostedcluster -A

    중요: 호스트된 클러스터가 실행 중인 경우 hypershift-addon 이 비활성화된 경우에도 HyperShift Operator가 제거되지 않습니다.

  2. 다음 명령을 실행하여 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-previewhypershift-local-hosting 기능이 비활성화되어 있는지 확인할 수 있습니다.

oc get mce multiclusterengine -o yaml

hypershift-previewhypershift-local-hostingenabled: 플래그가 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

1.7.5.3. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.