16.3. 노드 Observability 사용자 정의 리소스 생성

프로파일링 쿼리를 실행하기 전에 NodeObservability CR(사용자 정의 리소스)을 생성하고 실행해야 합니다. NodeObservability CR을 실행하면 필요한 머신 구성 및 머신 구성 풀 CR을 생성하여 nodeSelector 와 일치하는 작업자 노드에서 CRI-O 프로파일링을 활성화합니다.

중요

작업자 노드에서 CRI-O 프로파일링이 활성화되지 않으면 NodeObservabilityMachineConfig 리소스가 생성됩니다. NodeObservability CR에 지정된 nodeSelector 와 일치하는 작업자 노드가 다시 시작됩니다. 이 작업을 완료하는 데 10분 이상 걸릴 수 있습니다.

참고

kubelet 프로필은 기본적으로 활성화되어 있습니다.

노드의 CRI-O unix 소켓은 에이전트 pod에 마운트되어 에이전트가 CRI-O와 통신하여 pprof 요청을 실행할 수 있습니다. 마찬가지로 kubelet-serving-ca 인증서 체인이 에이전트 pod에 마운트되어 에이전트와 노드의 kubelet 끝점 간에 안전하게 통신할 수 있습니다.

사전 요구 사항

  • 노드 Observability Operator가 설치되어 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.

절차

  1. 다음 명령을 실행하여 OpenShift Container Platform CLI에 로그인합니다.

    $ oc login -u kubeadmin https://<HOSTNAME>:6443
  2. 다음 명령을 실행하여 node-observability-operator 네임스페이스로 다시 전환합니다.

    $ oc project node-observability-operator
  3. 다음 텍스트가 포함된 nodeobservability.yaml 이라는 CR 파일을 생성합니다.

        apiVersion: nodeobservability.olm.openshift.io/v1alpha2
        kind: NodeObservability
        metadata:
          name: cluster 1
        spec:
          nodeSelector:
            kubernetes.io/hostname: <node_hostname> 2
          type: crio-kubelet
    1
    클러스터 당 하나의 NodeObservability CR만 있어야 하므로 이름을 cluster로 지정해야 합니다.
    2
    노드 Observability 에이전트를 배포해야 하는 노드를 지정합니다.
  4. NodeObservability CR을 실행합니다.

    oc apply -f nodeobservability.yaml

    출력 예

    nodeobservability.olm.openshift.io/cluster created

  5. 다음 명령을 실행하여 NodeObservability CR의 상태를 검토합니다.

    $ oc get nob/cluster -o yaml | yq '.status.conditions'

    출력 예

    conditions:
      conditions:
      - lastTransitionTime: "2022-07-05T07:33:54Z"
        message: 'DaemonSet node-observability-ds ready: true NodeObservabilityMachineConfig
          ready: true'
        reason: Ready
        status: "True"
        type: Ready

    이유가 Ready 이고 상태가 True 인 경우 NodeObservability CR 실행이 완료됩니다.