검색

13.10. 클러스터 검사 실행

download PDF

OpenShift Virtualization 4.11에는 클러스터 유지 관리 및 문제 해결에 사용할 수 있는 사전 정의된 점검 기능을 실행하는 진단 프레임워크가 포함되어 있습니다.

중요

OpenShift Container Platform 클러스터 검사 프레임워크는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

13.10.1. OpenShift Container Platform 클러스터 검사 프레임워크 정보

점검 은 특정 클러스터 기능이 예상대로 작동하는지 확인할 수 있는 자동화된 테스트 워크로드입니다. 클러스터 점검 프레임워크는 네이티브 Kubernetes 리소스를 사용하여 검사를 구성하고 실행합니다.

클러스터 관리자는 사전 정의된 검사를 사용하여 클러스터 유지 관리를 개선하고 예기치 않은 동작 문제를 해결하며 오류를 최소화하며 시간을 절약할 수 있습니다. 또한 수표의 결과를 검토하고 추가 분석을 위해 전문가와 공유할 수 있습니다. 벤더는 제공하는 기능 또는 서비스에 대한 점검 확인을 작성하고 게시하여 고객 환경이 올바르게 구성되었는지 확인할 수 있습니다.

클러스터에서 사전 정의된 검사를 실행하려면 프레임워크의 네임스페이스 및 서비스 계정을 설정하고, 서비스 계정에 대한 ClusterRoleClusterRoleBinding 오브젝트를 생성하고, 점검 권한을 활성화한 다음, 입력 구성 맵 및 검사 작업을 생성해야 합니다. 검사를 여러 번 실행할 수 있습니다.

중요

항상 다음을 수행해야 합니다.

  • 이미지를 적용하기 전에 이미지 점검 소스의 출처가 있는지 확인합니다.
  • ClusterRole 오브젝트를 생성하기 전에 점검 권한을 검토합니다.
  • 구성 맵에서 ClusterRole 오브젝트의 이름을 확인합니다. 프레임워크가 이러한 권한을 검사 인스턴스에 자동으로 바인딩하기 때문입니다.

13.10.2. 보조 네트워크에서 가상 머신의 네트워크 연결 및 대기 시간 확인

클러스터 관리자는 사전 정의된 검사를 사용하여 네트워크 연결을 확인하고 보조 네트워크 인터페이스에 연결된 VM(가상 머신) 간의 대기 시간을 측정합니다.

처음으로 검사를 실행하려면 절차의 단계를 따르십시오.

이전에 검사를 실행한 경우 프레임워크를 설치하고 점검에 대한 권한을 활성화하는 단계가 필요하기 때문에 5단계의 절차로 건너뜁니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 역할의 사용자로 클러스터에 로그인했습니다.
  • 클러스터에는 두 개 이상의 작업자 노드가 있습니다.
  • Multus CNI(Container Network Interface) 플러그인이 클러스터에 설치되어 있습니다.
  • 네임스페이스에 대한 네트워크 연결 정의를 구성하셨습니다.

절차

  1. 프레임워크를 설정하는 리소스가 포함된 구성 파일을 생성합니다. 여기에는 프레임워크의 네임스페이스 및 서비스 계정, 서비스 계정에 대한 권한을 정의하는 ClusterRoleClusterRoleBinding 오브젝트가 포함됩니다.

    예 13.3. 프레임워크 매니페스트 파일 예

    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: kiagnose
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: kiagnose
      namespace: kiagnose
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: kiagnose
    rules:
      - apiGroups: [ "" ]
        resources: [ "configmaps" ]
        verbs:
          - get
          - list
          - create
          - update
          - patch
      - apiGroups: [ "" ]
        resources: [ "namespaces" ]
        verbs:
          - get
          - list
          - create
          - delete
          - watch
      - apiGroups: [ "" ]
        resources: [ "serviceaccounts" ]
        verbs:
          - get
          - list
          - create
      - apiGroups: [ "rbac.authorization.k8s.io" ]
        resources:
          - roles
          - rolebindings
          - clusterrolebindings
        verbs:
          - get
          - list
          - create
          - delete
      - apiGroups: [ "rbac.authorization.k8s.io" ]
        resources:
          - clusterroles
        verbs:
          - get
          - list
          - create
          - bind
      - apiGroups: [ "batch" ]
        resources: [ "jobs" ]
        verbs:
          - get
          - list
          - create
          - delete
          - watch
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: kiagnose
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: kiagnose
    subjects:
      - kind: ServiceAccount
        name: kiagnose
        namespace: kiagnose
    ...
  2. 프레임워크 매니페스트를 적용합니다.

    $ oc apply -f <framework_manifest>.yaml
  3. 검사를 통해 클러스터 액세스에 필요한 권한을 사용하여 ClusterRoleRole 오브젝트가 포함된 구성 파일을 만듭니다.

    클러스터 역할 매니페스트 파일 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: kubevirt-vm-latency-checker
    rules:
    - apiGroups: ["kubevirt.io"]
      resources: ["virtualmachineinstances"]
      verbs: ["get", "create", "delete"]
    - apiGroups: ["subresources.kubevirt.io"]
      resources: ["virtualmachineinstances/console"]
      verbs: ["get"]
    - apiGroups: ["k8s.cni.cncf.io"]
      resources: ["network-attachment-definitions"]
      verbs: ["get"]

  4. 검사 역할 매니페스트를 적용합니다.

    $ oc apply -f <latency_roles>.yaml
  5. 확인에 대한 입력 매개변수가 포함된 ConfigMap 매니페스트를 생성합니다. 구성 맵은 검사를 실행하고 점검 결과를 저장할 프레임워크에 대한 입력을 제공합니다.

    입력 구성 맵의 예

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: kubevirt-vm-latency-checkup
      namespace: kiagnose
    data:
      spec.image: registry.redhat.io/container-native-virtualization/vm-network-latency-checkup:v4.11.0
      spec.timeout: 10m
      spec.clusterRoles: |
        kubevirt-vmis-manager
      spec.param.network_attachment_definition_namespace: "default" 1
      spec.param.network_attachment_definition_name: "bridge-network" 2
      spec.param.max_desired_latency_milliseconds: "10" 3
      spec.param.sample_duration_seconds: "5" 4

    1
    NetworkAttachmentDefinition 오브젝트가 있는 네임스페이스입니다.
    2
    NetworkAttachmentDefinition 오브젝트의 이름입니다.
    3
    선택 사항: 가상 머신 간에 필요한 최대 대기 시간(밀리초)입니다. 측정된 대기 시간이 이 값을 초과하면 검사가 실패합니다.
    4
    선택 사항: 대기 시간 점검 기간(초)입니다.
  6. 프레임워크의 네임스페이스에 구성 맵을 생성합니다.

    $ oc apply -f <latency_config_map>.yaml
  7. 검사를 실행할 Job 오브젝트를 생성합니다.

    작업 매니페스트 예

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: kubevirt-vm-latency-checkup
      namespace: kiagnose
    spec:
      backoffLimit: 0
      template:
        spec:
          serviceAccount: kiagnose
          restartPolicy: Never
          containers:
            - name: framework
              image: registry.redhat.io/container-native-virtualization/checkup-framework:v4.11.0
              env:
                - name: CONFIGMAP_NAMESPACE
                  value: kiagnose
                - name: CONFIGMAP_NAME
                  value: kubevirt-vm-latency-checkup

  8. 작업 매니페스트를 적용합니다. 점검에서는 ping 유틸리티를 사용하여 연결을 확인하고 대기 시간을 측정합니다.

    $ oc apply -f <latency_job>.yaml
  9. 작업이 완료될 때까지 기다립니다.

    $ oc wait --for=condition=complete --timeout=10m job.batch/kubevirt-vm-latency-checkup -n kiagnose
  10. ConfigMap 오브젝트의 상태를 검색하여 대기 시간 점검 결과를 검토합니다. 측정된 대기 시간이 spec.param.max_desired_latency_ millisecondss 속성보다 크면 확인 작업이 실패하고 오류를 반환합니다.

    $ oc get configmap kubevirt-vm-latency-checkup -n kiagnose -o yaml

    출력 구성 맵(success)의 예

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: kubevirt-vm-latency-checkup
      namespace: kiagnose
    ...
      status.succeeded: "true"
      status.failureReason: ""
      status.result.minLatencyNanoSec: 2000
      status.result.maxLatencyNanoSec: 3000
      status.result.avgLatencyNanoSec: 2500
      status.results.measurementDurationSec: 300
    ...

  11. 프레임워크를 삭제하고 이전에 생성한 리소스를 확인합니다. 여기에는 작업, 구성 맵, 클러스터 역할, 프레임워크 매니페스트 파일이 포함됩니다.

    참고

    다른 검사를 실행하려는 경우 프레임워크 및 클러스터 역할 매니페스트 파일을 삭제하지 마십시오.

    $ oc delete -f <file_name>.yaml

13.10.3. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.