18장. 성능 프로필을 사용하여 낮은 대기 시간을 위한 호스팅 제어 평면 조정
성능 프로필을 적용하여 호스팅된 제어 평면을 낮은 지연 시간으로 조정합니다. 성능 프로필을 사용하면 인프라 및 애플리케이션 컨테이너의 CPU를 제한하고 지연에 민감한 프로세스에 대해 대규모 페이지, 하이퍼스레딩 및 CPU 파티션을 구성할 수 있습니다.
18.1. 호스팅된 제어 평면에 대한 성능 프로필 생성 링크 복사링크가 클립보드에 복사되었습니다!
PPC(Performance Profile Creator) 도구를 사용하여 클러스터 성능 프로필을 만들 수 있습니다. PPC는 노드 튜닝 연산자의 기능입니다.
PPC는 클러스터에 대한 정보와 사용자가 제공한 구성을 결합하여 하드웨어, 토폴로지, 사용 사례에 적합한 성능 프로필을 생성합니다.
다음은 클러스터에서 성능 프로필을 만들고 적용하기 위한 고급 워크플로입니다.
-
must-gather
명령을 사용하여 클러스터에 대한 정보를 수집합니다. - PPC 도구를 사용하여 성과 프로필을 만듭니다.
- 클러스터에 성능 프로필을 적용합니다.
18.1.1. PPC에 대한 호스팅된 제어 평면 클러스터에 대한 데이터 수집 링크 복사링크가 클립보드에 복사되었습니다!
PPC(Performance Profile creator) 툴에는 must-gather
데이터가 필요합니다. 클러스터 관리자로서 must-gather
명령을 실행하여 클러스터에 대한 정보를 캡처합니다.
사전 요구 사항
-
관리 클러스터에 대한
클러스터 관리자
역할 액세스 권한이 있습니다. -
OpenShift CLI(
oc
)를 설치합니다.
프로세스
다음 명령을 실행하여 관리 클러스터
kubeconfig
파일을 내보냅니다.export MGMT_KUBECONFIG=<path_to_mgmt_kubeconfig>
$ export MGMT_KUBECONFIG=<path_to_mgmt_kubeconfig>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 모든 네임스페이스의 모든 노드 풀을 나열합니다.
oc --kubeconfig="$MGMT_KUBECONFIG" get np -A
$ oc --kubeconfig="$MGMT_KUBECONFIG" get np -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters democluster-us-east-1a democluster 1 1 False False 4.17.0 False True
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters democluster-us-east-1a democluster 1 1 False False 4.17.0 False True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
출력에서는
NodePool
리소스가 정의된 관리 클러스터의 네임스페이스클러스터가
표시됩니다. -
NodePool
리소스의 이름(예:demcluster-us-east-1a)
입니다. -
이
NodePool
이 속한HostedCluster
입니다. 예를 들어,democluster
.
-
출력에서는
관리 클러스터에서 다음 명령을 실행하여 사용 가능한 비밀을 나열합니다.
oc get secrets -n clusters
$ oc get secrets -n clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터의
kubeconfig
파일을 추출합니다.oc get secret <secret_name> -n <cluster_namespace> -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
$ oc get secret <secret_name> -n <cluster_namespace> -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
oc get secret democluster-admin-kubeconfig -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
$ oc get secret democluster-admin-kubeconfig -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스팅된 클러스터에 대한
필수 수집
번들을 생성하려면 별도의 터미널 창을 열고 다음 명령을 실행하세요.호스팅된 클러스터
kubeconfig
파일을 내보냅니다.export HC_KUBECONFIG=<path_to_hosted_cluster_kubeconfig>
$ export HC_KUBECONFIG=<path_to_hosted_cluster_kubeconfig>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
export HC_KUBECONFIG=~/hostedcpkube/hosted-cluster-kubeconfig
$ export HC_KUBECONFIG=~/hostedcpkube/hosted-cluster-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
must-gather
데이터를 저장하려는 디렉터리로 이동합니다. 호스팅된 클러스터에 대한 문제 해결 데이터를 수집하세요.
oc --kubeconfig="$HC_KUBECONFIG" adm must-gather
$ oc --kubeconfig="$HC_KUBECONFIG" adm must-gather
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작업 디렉토리에서 생성된
must-gather
디렉토리에서 압축 파일을 만듭니다. 예를 들어 Linux 운영 체제를 사용하는 컴퓨터에서 다음 명령을 실행합니다.tar -czvf must-gather.tar.gz must-gather.local.1203869488012141147
$ tar -czvf must-gather.tar.gz must-gather.local.1203869488012141147
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.1.2. Podman을 사용하여 호스팅된 클러스터에서 성능 프로필 생성기 실행 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 Podman을 Performance Profile Creator(PPC) 도구와 함께 사용하여 성능 프로필을 만들 수 있습니다.
PPC 인수에 대한 자세한 내용은 "성과 프로필 생성자 인수"를 참조하세요.
PPC 도구는 호스팅 클러스터를 인식하도록 설계되었습니다. 필수 수집
데이터에서 호스팅된 클러스터를 감지하면 자동으로 다음 작업을 수행합니다.
- MCP(머신 구성 풀)가 없다는 것을 인식합니다.
- MCP 대신 컴퓨팅 노드 구성의 진실의 원천으로 노드 풀을 사용합니다.
-
특정 풀을 타겟으로 삼지 않는 한,
node-pool-name
값을 명시적으로 지정할 필요가 없습니다.
PPC는 호스팅된 클러스터에서 수집해야 하는
데이터를 사용하여 성능 프로필을 작성합니다. 성능 구성을 위한 노드의 레이블을 다시 지정하는 등 클러스터를 변경하는 경우 PPC를 다시 실행하기 전에 반드시 수집해야 하는
데이터를 다시 만들어야 합니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 호스팅된 클러스터가 설치되었습니다.
-
Podman과 OpenShift CLI(
oc
) 설치. - 노드 튜닝 운영자 이미지에 액세스합니다.
-
클러스터에
필요한 필수
데이터에 액세스합니다.
프로세스
호스팅된 클러스터에서 다음 명령을 실행하여 Podman을 사용하여
registry.redhat.io
에 인증합니다.podman login registry.redhat.io
$ podman login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Username: <user_name> Password: <password>
Username: <user_name> Password: <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터에서 성능 프로필을 만듭니다. 이 예제에서는 샘플 PPC 인수와 값을 사용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 생성된 YAML 파일을 검토하세요.
cat my-hosted-cp-performance-profile
$ cat my-hosted-cp-performance-profile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.1.3. 호스팅된 클러스터에서 저지연 튜닝 구성 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터의 노드에서 성능 프로필로 낮은 대기 시간을 설정하려면 노드 튜닝 연산자를 사용할 수 있습니다. 호스팅된 제어 평면에서 튜닝된
객체를 포함하는 구성 맵을 만들고 노드 풀에서 해당 구성 맵을 참조하여 저지연 튜닝을 구성할 수 있습니다. 이 경우 조정된 개체는 노드 풀의 노드에 적용하려는 성능 프로필을 정의하는 PerformanceProfile
개체입니다.
프로세스
다음 명령을 실행하여 관리 클러스터
kubeconfig
파일을 내보냅니다.export MGMT_KUBECONFIG=<path_to_mgmt_kubeconfig>
$ export MGMT_KUBECONFIG=<path_to_mgmt_kubeconfig>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 관리 클러스터에
ConfigMap
객체를 만듭니다.oc --kubeconfig="$MGMT_KUBECONFIG" apply -f my-hosted-cp-performance-profile.yaml
$ oc --kubeconfig="$MGMT_KUBECONFIG" apply -f my-hosted-cp-performance-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
클러스터
네임스페이스의NodePool
객체를 편집하여spec.tuningConfig
필드와 해당 필드에 생성된 성능 프로필의 이름을 추가합니다.oc edit np -n clusters
$ oc edit np -n clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고여러 노드 풀에서 동일한 프로필을 참조할 수 있습니다. 호스팅된 제어 평면에서 노드 튜닝 연산자는 노드 풀 이름과 네임스페이스의 해시를
튜닝된
사용자 지정 리소스의 이름에 추가하여 이를 구별합니다. 변경 사항을 적용한 후 시스템은 구성 변경이 필요하다는 것을 감지하고 해당 풀의 노드에 대한 롤링 업데이트를 시작하여 새 구성을 적용합니다.
검증
다음 명령을 실행하여 모든 네임스페이스의 모든 노드 풀을 나열합니다.
oc --kubeconfig="$MGMT_KUBECONFIG" get np -A
$ oc --kubeconfig="$MGMT_KUBECONFIG" get np -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters democluster-us-east-1a democluster 1 1 False False 4.17.0 False True
NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters democluster-us-east-1a democluster 1 1 False False 4.17.0 False True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고UPDATINGCONFIG
필드는 노드 풀이 구성을 업데이트하는 중인지 여부를 나타냅니다. 이 업데이트 중에 노드 풀 상태의UPDATINGCONFIG
필드가True가
됩니다. 새로운 구성은UPDATINGCONFIG
필드가False
로 반환될 때만 완전히 적용된 것으로 간주됩니다.다음 명령을 실행하여
clusters-democluster
네임스페이스의 모든 구성 맵을 나열합니다.oc --kubeconfig="$MGMT_KUBECONFIG" get cm -n clusters-democluster
$ oc --kubeconfig="$MGMT_KUBECONFIG" get cm -n clusters-democluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에서는 kubeletconfig
kubeletconfig-performance-democluster-us-east-1a
와 성능 프로필performance-democluster-us-east-1a가
생성되었음을 보여줍니다. 노드 튜닝 운영자는튜닝된
객체를 호스팅된 클러스터에 동기화합니다. 어떤Tuned
객체가 정의되어 있는지, 그리고 각 노드에 어떤 프로필이 적용되어 있는지 확인할 수 있습니다.다음 명령을 실행하여 관리 클러스터에서 사용 가능한 비밀을 나열합니다.
oc get secrets -n clusters
$ oc get secrets -n clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터의
kubeconfig
파일을 추출합니다.oc get secret <secret_name> -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
$ oc get secret <secret_name> -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
oc get secret democluster-admin-kubeconfig -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
$ oc get secret democluster-admin-kubeconfig -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터 kubeconfig를 내보냅니다.
export HC_KUBECONFIG=<path_to_hosted-cluster-kubeconfig>
$ export HC_KUBECONFIG=<path_to_hosted-cluster-kubeconfig>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 kubeletconfig가 호스팅된 클러스터에 미러링되었는지 확인하세요.
oc --kubeconfig="$HC_KUBECONFIG" get cm -n openshift-config-managed | grep kubelet
$ oc --kubeconfig="$HC_KUBECONFIG" get cm -n openshift-config-managed | grep kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
kubelet-serving-ca 1 79m kubeletconfig-performance-democluster-us-east-1a 1 15m
kubelet-serving-ca 1 79m kubeletconfig-performance-democluster-us-east-1a 1 15m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 호스팅된 클러스터에
단일 numa 노드
정책이 설정되었는지 확인하세요.oc --kubeconfig="$HC_KUBECONFIG" get cm kubeletconfig-performance-democluster-us-east-1a -o yaml -n openshift-config-managed | grep single
$ oc --kubeconfig="$HC_KUBECONFIG" get cm kubeletconfig-performance-democluster-us-east-1a -o yaml -n openshift-config-managed | grep single
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
topologyManagerPolicy: single-numa-node
topologyManagerPolicy: single-numa-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow