5.6. OpenStack에서 호스팅된 제어 평면 관리


Red Hat OpenStack Platform(RHOSP) 에이전트 머신에 호스팅된 제어 플레인을 배포한 후 다음 작업을 완료하여 호스팅된 클러스터를 관리할 수 있습니다.

5.6.1. 호스팅된 클러스터에 액세스

oc CLI를 사용하여 리소스에서 직접 kubeconfig 비밀을 추출하여 Red Hat OpenStack Platform(RHOSP)에서 호스팅되는 클러스터에 액세스할 수 있습니다.

호스팅 클러스터(호스팅) 네임스페이스에는 호스팅 클러스터 리소스와 액세스 비밀이 포함되어 있습니다. 호스팅된 제어 평면 네임스페이스는 호스팅된 제어 평면이 실행되는 곳입니다.

비밀 이름 형식은 다음과 같습니다.

  • kubeconfig 비밀: <hosted_cluster_namespace>-<name>-admin-kubeconfig . 예를 들어, clusters-hypershift-demo-admin-kubeconfig .
  • kubeadmin 비밀번호: <hosted_cluster_namespace>-<name>-kubeadmin-password . 예를 들어, clusters-hypershift-demo-kubeadmin-password .

kubeconfig 비밀에는 Base64로 인코딩된 kubeconfig 필드가 포함되어 있습니다. kubeadmin 비밀번호도 Base64로 인코딩되어 있습니다. 이를 추출한 후 비밀번호를 사용하여 호스팅된 클러스터의 API 서버나 콘솔에 로그인할 수 있습니다.

사전 요구 사항

  • oc CLI가 설치되었습니다.

프로세스

  1. 다음 명령을 입력하여 admin-kubeconfig 비밀번호를 추출합니다.

    $ oc extract -n <hosted_cluster_namespace> \
      secret/<hosted_cluster_name>-admin-kubeconfig \
      --to=./hostedcluster-secrets --confirm
    Copy to Clipboard Toggle word wrap

    출력 예

    hostedcluster-secrets/kubeconfig
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 입력하여 호스팅된 클러스터의 노드 목록을 보고 액세스를 확인하세요.

    $ oc --kubeconfig ./hostedcluster-secrets/kubeconfig get nodes
    Copy to Clipboard Toggle word wrap

5.6.2. 호스팅된 클러스터에 대한 노드 자동 크기 조정 활성화

Red Hat OpenStack Platform(RHOSP)에서 호스팅되는 클러스터에 더 많은 용량이 필요하고 예비 에이전트를 사용할 수 있는 경우 자동 크기 조정을 활성화하여 새로운 워커 노드를 설치할 수 있습니다.

프로세스

  1. 자동 크기 조정을 활성화하려면 다음 명령을 입력하세요.

    $ oc -n <hosted_cluster_namespace> patch nodepool <hosted_cluster_name> \
      --type=json \
      -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'
    Copy to Clipboard Toggle word wrap
  2. 새로운 노드가 필요한 작업 부하를 만듭니다.

    1. 다음 예를 사용하여 워크로드 구성을 포함하는 YAML 파일을 만듭니다.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          app: reversewords
        name: reversewords
        namespace: default
      spec:
        replicas: 40
        selector:
          matchLabels:
            app: reversewords
        template:
          metadata:
            labels:
              app: reversewords
          spec:
            containers:
            - image: quay.io/mavazque/reversewords:latest
              name: reversewords
              resources:
                requests:
                  memory: 2Gi
      Copy to Clipboard Toggle word wrap
    2. workload-config.yaml 이라는 이름으로 파일을 저장합니다.
    3. 다음 명령을 입력하여 YAML을 적용합니다.

      $ oc apply -f workload-config.yaml
      Copy to Clipboard Toggle word wrap
  3. 다음 명령을 입력하여 admin-kubeconfig 비밀번호를 추출합니다.

    $ oc extract -n <hosted_cluster_namespace> \
      secret/<hosted_cluster_name>-admin-kubeconfig \
      --to=./hostedcluster-secrets --confirm
    Copy to Clipboard Toggle word wrap

    출력 예

    hostedcluster-secrets/kubeconfig
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 입력하여 새 노드가 준비 상태인지 확인할 수 있습니다.

    $ oc --kubeconfig ./hostedcluster-secrets get nodes
    Copy to Clipboard Toggle word wrap
  5. 노드를 제거하려면 다음 명령을 입력하여 작업 부하를 삭제하세요.

    $ oc --kubeconfig ./hostedcluster-secrets -n <namespace> \
      delete deployment <deployment_name>
    Copy to Clipboard Toggle word wrap
  6. 추가 용량이 필요하지 않을 때까지 몇 분간 기다리세요. 다음 명령을 입력하면 노드가 제거되었는지 확인할 수 있습니다.

    $ oc --kubeconfig ./hostedcluster-secrets get nodes
    Copy to Clipboard Toggle word wrap

5.6.3. 가용성 영역에 대한 노드 풀 구성

여러 Red Hat OpenStack Platform(RHOSP) Nova 가용성 영역에 노드 풀을 분산하여 호스팅 클러스터의 고가용성을 개선할 수 있습니다.

참고

가용성 영역은 반드시 장애 도메인과 일치하지 않으며 본질적으로 높은 가용성 이점을 제공하지 않습니다.

사전 요구 사항

  • 호스팅된 클러스터를 생성했습니다.
  • 관리 클러스터에 액세스할 수 있습니다.
  • hcpoc CLI가 설치되었습니다.

프로세스

  1. 사용자의 필요에 맞는 환경 변수를 설정하세요. 예를 들어, az1 가용성 영역에 두 대의 추가 머신을 생성하려면 다음을 입력할 수 있습니다.

    $ export NODEPOOL_NAME="${CLUSTER_NAME}-az1" \
      && export WORKER_COUNT="2" \
      && export FLAVOR="m1.xlarge" \
      && export AZ="az1"
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 입력하여 환경 변수를 사용하여 노드 풀을 만듭니다.

    $ hcp create nodepool openstack \
      --cluster-name <cluster_name> \
      --name $NODEPOOL_NAME \
      --replicas $WORKER_COUNT \
      --openstack-node-flavor $FLAVOR \
      --openstack-node-availability-zone $AZ
    Copy to Clipboard Toggle word wrap

    다음과 같습니다.

    <cluster_name>
    호스팅된 클러스터의 이름을 지정합니다.
  3. 다음 명령을 실행하여 클러스터 네임스페이스의 노드 풀 리소스를 나열하여 노드 풀의 상태를 확인하세요.

    $ oc get nodepools --namespace clusters
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                      CLUSTER         DESIRED NODES   CURRENT NODES   AUTOSCALING   AUTOREPAIR   VERSION   UPDATINGVERSION   UPDATINGCONFIG   MESSAGE
    example                   example         5               5               False         False        4.17.0
    example-az1               example         2                               False         False                  True              True             Minimum availability requires 2 replicas, current 0 available
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 호스팅된 클러스터에서 시작되는 메모를 확인하세요.

    $ oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                      STATUS   ROLES    AGE     VERSION
    ...
    example-extra-az-zh9l5    Ready    worker   2m6s    v1.27.4+18eadca
    example-extra-az-zr8mj    Ready    worker   102s    v1.27.4+18eadca
    ...
    Copy to Clipboard Toggle word wrap

  5. 다음 명령을 실행하여 노드 풀이 생성되었는지 확인하세요.

    $ oc get nodepools --namespace clusters
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME              CLUSTER         DESIRED   CURRENT   AVAILABLE   PROGRESSING   MESSAGE
    <node_pool_name>  <cluster_name>  2         2         2           False         All replicas are available
    Copy to Clipboard Toggle word wrap

5.6.4. 노드 풀에 대한 추가 포트 구성

SR-IOV나 여러 네트워크와 같은 고급 네트워킹 시나리오를 지원하기 위해 노드 풀에 대한 추가 포트를 구성할 수 있습니다.

5.6.4.1. 노드 풀에 대한 추가 포트 사용 사례

노드 풀에 추가 포트를 구성하는 일반적인 이유는 다음과 같습니다.

SR-IOV(단일 루트 I/O 가상화)
물리적 네트워크 장치가 여러 개의 가상 기능(VF)으로 나타나도록 합니다. 노드 풀에 추가 포트를 연결하면 워크로드에서 SR-IOV 인터페이스를 사용하여 지연 시간이 짧고 성능이 뛰어난 네트워킹을 구현할 수 있습니다.
DPDK(데이터 플레인 개발 키트)
커널을 우회하여 사용자 공간에서 빠른 패킷 처리를 제공합니다. 추가 포트가 있는 노드 풀은 DPDK를 사용하여 네트워크 성능을 개선하는 워크로드에 대한 인터페이스를 노출할 수 있습니다.
NFS의 마닐라 RWX 볼륨
NFS를 통한 ReadWriteMany (RWX) 볼륨을 지원하여 여러 노드가 공유 스토리지에 액세스할 수 있습니다. 노드 풀에 추가 포트를 연결하면 마닐라에서 사용하는 NFS 네트워크에 워크로드가 도달할 수 있습니다.
멀투스 CNI
여러 네트워크 인터페이스에 포드를 연결할 수 있습니다. 추가 포트가 있는 노드 풀은 듀얼 스택 연결 및 트래픽 분리를 포함하여 보조 네트워크 인터페이스가 필요한 사용 사례를 지원합니다.

5.6.4.2. 노드 풀에 대한 추가 포트 옵션

--openstack-node-additional-port 플래그를 사용하면 OpenStack에서 호스팅된 클러스터의 노드에 추가 포트를 연결할 수 있습니다. 플래그는 쉼표로 구분된 매개변수 목록을 사용합니다. 매개변수를 여러 번 사용하여 여러 개의 추가 포트를 노드에 연결할 수 있습니다.

매개변수는 다음과 같습니다.

Expand
매개변수설명필수 항목기본

network-id

노드에 연결할 네트워크의 ID입니다.

제공됨

해당 없음

vnic-type

포트에 사용할 VNIC 유형입니다. 지정하지 않으면 Neutron은 기본 유형 normal을 사용합니다.

없음

해당 없음

disable-port-security

포트에 대한 포트 보안을 비활성화할지 여부입니다. 지정하지 않으면 Neutron은 네트워크 수준에서 명시적으로 비활성화하지 않는 한 포트 보안을 활성화합니다.

없음

해당 없음

address-pairs

포트에 할당할 IP 주소 쌍 목록입니다. 형식은 ip_address=mac_address 입니다. 여러 쌍을 하이픈( - )으로 구분하여 제공할 수 있습니다. mac_address 부분은 선택 사항입니다.

없음

해당 없음

5.6.4.3. 노드 풀에 대한 추가 포트 생성

Red Hat OpenStack Platform(RHOSP)에서 실행되는 호스팅 클러스터의 노드 풀에 대한 추가 포트를 구성할 수 있습니다.

사전 요구 사항

  • 호스팅된 클러스터를 생성했습니다.
  • 관리 클러스터에 액세스할 수 있습니다.
  • hcp CLI가 설치되었습니다.
  • RHOSP에서 추가 네트워크가 생성됩니다.
  • 호스팅된 클러스터에서 사용되는 프로젝트는 추가 네트워크에 액세스할 수 있어야 합니다.
  • "노드 풀에 대한 추가 포트 옵션"에 나열된 옵션을 검토했습니다.

프로세스

  • --openstack-node-additional-port 옵션과 함께 hcp create nodepool openstack 명령을 실행하여 추가 포트가 연결된 호스팅 클러스터를 만듭니다. 예를 들면 다음과 같습니다.

    $ hcp create nodepool openstack \
      --cluster-name <cluster_name> \
      --name <nodepool_name> \
      --replicas <replica_count> \
      --openstack-node-flavor <flavor> \
      --openstack-node-additional-port "network-id=<sriov_net_id>,vnic-type=direct,disable-port-security=true" \
      --openstack-node-additional-port "network-id=<lb_net_id>,address-pairs:192.168.0.1-192.168.0.2"
    Copy to Clipboard Toggle word wrap

    다음과 같습니다.

    <cluster_name>
    호스팅된 클러스터의 이름을 지정합니다.
    <nodepool_name>
    노드 풀의 이름을 지정합니다.
    <replica_count>
    원하는 복제본 수를 지정합니다.
    <flavor>
    사용할 RHOSP 플레이버를 지정합니다.
    <sriov_net_id>
    SR-IOV 네트워크 ID를 지정합니다.
    <lb_net_id>
    로드 밸런서 네트워크 ID를 지정합니다.

5.6.5. 노드 풀에 대한 추가 포트 구성

클라우드 기반 네트워크 기능(CNF)과 같은 고성능 워크로드를 위해 RHOSP에서 호스팅된 클러스터 노드 성능을 조정할 수 있습니다. 성능 튜닝에는 RHOSP 리소스 구성, 성능 프로필 생성, 튜닝된 NodePool 리소스 배포, SR-IOV 장치 지원 활성화가 포함됩니다.

CNF는 클라우드 기반 환경에서 실행되도록 설계되었습니다. 라우팅, 방화벽, 부하 분산 등의 네트워크 서비스를 제공할 수 있습니다. 고성능 컴퓨팅 및 네트워킹 장치를 사용하여 CNF를 실행하도록 노드 풀을 구성할 수 있습니다.

5.6.5.1. 호스팅된 클러스터 노드의 성능 조정

성능 프로필을 만들고 조정된 NodePool 리소스를 배포하여 Red Hat OpenStack Platform(RHOSP) 호스팅 제어 평면에서 고성능 워크로드를 실행합니다.

사전 요구 사항

  • 전용 CPU, 메모리, 호스트 집계 정보 등 워크로드를 실행하는 데 필요한 리소스를 갖춘 RHOSP 플레이버가 있습니다.
  • SR-IOV 또는 DPDK 지원 NIC에 연결된 RHOSP 네트워크가 있습니다. 네트워크는 호스팅된 클러스터에서 사용하는 프로젝트에서 사용할 수 있어야 합니다.

프로세스

  1. perfprofile.yaml 이라는 파일에 요구 사항을 충족하는 성능 프로필을 만듭니다. 예를 들면 다음과 같습니다.

    구성 맵의 성능 프로필 예시

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: perfprof-1
      namespace: clusters
    data:
      tuning: |
        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cnf-performanceprofile
          namespace: "${HYPERSHIFT_NAMESPACE}"
        data:
          tuning: |
            apiVersion: performance.openshift.io/v2
            kind: PerformanceProfile
            metadata:
              name: cnf-performanceprofile
            spec:
              additionalKernelArgs:
                - nmi_watchdog=0
                - audit=0
                - mce=off
                - processor.max_cstate=1
                - idle=poll
                - intel_idle.max_cstate=0
                - amd_iommu=on
              cpu:
                isolated: "${CPU_ISOLATED}"
                reserved: "${CPU_RESERVED}"
              hugepages:
                defaultHugepagesSize: "1G"
                pages:
                  - count: ${HUGEPAGES}
                    node: 0
                    size: 1G
              nodeSelector:
                node-role.kubernetes.io/worker: ''
              realTimeKernel:
                enabled: false
              globallyDisableIrqLoadBalancing: true
    Copy to Clipboard Toggle word wrap

    중요

    HyperShift Operator 네임스페이스, 격리되고 예약된 CPU, 대규모 페이지 수에 대한 환경 변수가 아직 설정되지 않은 경우 성능 프로필을 적용하기 전에 이를 만듭니다.

  2. 다음 명령을 실행하여 성능 프로필 구성을 적용합니다.

    $ oc apply -f perfprof.yaml
    Copy to Clipboard Toggle word wrap
  3. 클러스터 이름에 대한 CLUSTER_NAME 환경 변수가 아직 설정되어 있지 않으면 해당 변수를 정의합니다.
  4. 다음 명령을 실행하여 노드 풀 이름 환경 변수를 설정합니다.

    $ export NODEPOOL_NAME=$CLUSTER_NAME-cnf
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 플레이버 환경 변수를 설정합니다.

    $ export FLAVOR="m1.xlarge.nfv"
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 실행하여 성능 프로필을 사용하는 노드 풀을 만듭니다.

    $ hcp create nodepool openstack \
      --cluster-name $CLUSTER_NAME \
      --name $NODEPOOL_NAME \
      --node-count 0 \
      --openstack-node-flavor $FLAVOR
    Copy to Clipboard Toggle word wrap
  7. 다음 명령을 실행하여 PerformanceProfile 리소스를 참조하도록 노드 풀에 패치를 적용합니다.

    $ oc patch nodepool -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
      -p '{"spec":{"tuningConfig":[{"name":"cnf-performanceprofile"}]}}' --type=merge
    Copy to Clipboard Toggle word wrap
  8. 다음 명령을 실행하여 노드 풀을 확장합니다.

    $ oc scale nodepool/$CLUSTER_NAME --namespace ${HYPERSHIFT_NAMESPACE} --replicas=1
    Copy to Clipboard Toggle word wrap
  9. 노드가 준비될 때까지 기다리세요.

    1. 다음 명령을 실행하여 노드가 준비될 때까지 기다리세요.

      $ oc wait --for=condition=UpdatingConfig=True nodepool \
        -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
        --timeout=5m
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 구성 업데이트가 완료될 때까지 기다리세요.

      $ oc wait --for=condition=UpdatingConfig=False nodepool \
        -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
        --timeout=30m
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 모든 노드가 정상화될 때까지 기다리세요.

      $ oc wait --for=condition=AllNodesHealthy nodepool \
        -n ${HYPERSHIFT_NAMESPACE} ${CLUSTER_NAME} \
        --timeout=5m
      Copy to Clipboard Toggle word wrap
참고

노드에 SSH 연결을 만들거나 oc debug 명령을 사용하여 성능 구성을 확인할 수 있습니다.

5.6.5.2. 호스팅된 클러스터에서 SR-IOV 네트워크 운영자 활성화

SR-IOV 네트워크 운영자가 NodePool 리소스에 의해 배포된 노드에서 SR-IOV 지원 장치를 관리하도록 설정할 수 있습니다. 운영자는 호스팅된 클러스터에서 실행되며 레이블이 지정된 작업자 노드가 필요합니다.

프로세스

  1. 다음 명령을 실행하여 호스팅된 클러스터에 대한 kubeconfig 파일을 생성합니다.

    $ hcp create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 kubeconfig 리소스 환경 변수를 만듭니다.

    $ export KUBECONFIG=$CLUSTER_NAME-kubeconfig
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 SR-IOV 기능을 나타내도록 각 작업자 노드에 레이블을 지정합니다.

    $ oc label node <worker_node_name> feature.node.kubernetes.io/network-sriov.capable=true
    Copy to Clipboard Toggle word wrap

    다음과 같습니다.

    <worker_node_name>
    호스팅된 클러스터의 워커 노드 이름을 지정합니다.
  4. "SR-IOV 네트워크 운영자 설치"의 지침에 따라 호스팅된 클러스터에 SR-IOV 네트워크 운영자를 설치합니다.
  5. 설치 후 독립 실행형 클러스터와 동일한 프로세스를 사용하여 호스팅된 클러스터에서 SR-IOV 워크로드를 구성합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat