16.3. 创建 Node Observability 自定义资源

在运行性能分析查询前,您必须创建并运行 NodeObservability 自定义资源 (CR)。运行 NodeObservability CR 时,它会创建所需的机器配置和机器配置池 CR,以便在与 nodeSelector 匹配的 worker 节点上启用 CRI-O 分析。

重要

如果 worker 节点上没有启用 CRI-O 分析,则会创建 NodeObservabilityMachineConfig 资源。与 NodeObservability CR 中指定的 nodeSelector 匹配的 worker 节点。这可能需要 10 分钟或更长时间来完成。

注意

kubelet 分析被默认启用。

节点的 CRI-O unix 套接字挂载在代理 pod 上,允许代理与 CRI-O 通信来运行 pprof 请求。同样,kubelet-serving-ca 证书链被挂载到代理 pod 上,允许在代理和节点的 kubelet 端点之间进行安全通信。

先决条件

  • 已安装 Node 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
    您必须将名称指定为 cluster,因为每个集群应该只有一个 NodeObservability CR。
    2
    指定必须在其上部署 Node 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 运行已完成。