1 - 如何获取CSI版本信息

本章节指导用户如何查看CSI版本信息。

操作步骤

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。

  2. 执行以下命令,查看huawei-csi-node所在节点信息。

    kubectl get pod -A  -owide | grep huawei-csi-node
    

    命令结果示例如下:

    NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE     IP               NODE            NOMINATED NODE   READINESS GATES
    huawei-csi    huawei-csi-node-87mss                      3/3     Running   0               6m41s   192.168.129.155      node-1          <none>           <none>
    huawei-csi    huawei-csi-node-xp8cc                      3/3     Running   0               6m41s   192.168.129.156      node-2          <none>           <none
    
  3. 使用远程访问工具(以PuTTY为例),通过节点IP地址,登录任意huawei-csi-node所在节点。

  4. 执行以下命令,查看CSI版本信息。

    cat /var/lib/kubelet/plugins/csi.huawei.com/version
    

    命令显示版本信息如下。

    4.5.0
    

2 - 如何查看华为CSI日志

查看huawei-csi-controller服务的日志

  1. 执行以下命令,获取huawei-csi-controller所在的节点

    kubectl get pod -A -o wide | grep huawei
    

    命令结果示例如下,其中IP为节点主机ip,NODE为节点主机名称。

    NAME                                    READY   STATUS    RESTARTS   AGE     IP             NODE         NOMINATED NODE   READINESS GATES
    huawei-csi-controller-695b84b4d8-tg64l  9/9     Running  0          14s     <host1-ip>     <host1-name> <none>           <none>
    
  2. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群中huawei-csi-controller服务所在节点

  3. 进入日志目录。

    cd /var/log/huawei
    
  4. 执行以下命令,查看容器自定义输出日志。

    vi huawei-csi-controller
    
  5. 进入容器目录。

    cd /var/log/containers
    
  6. 执行以下命令, 查看容器标准输出日志。

    vi huawei-csi-controller-<name>_huawei-csi_huawei-csi-driver-<contrainer-id>.log
    

查看huawei-csi-node服务的日志

  1. 执行以下命令,获取huawei-csi-node所在的节点

    kubectl get pod -A -o wide | grep huawei
    

    命令结果示例如下,其中IP为节点主机ip,NODE为节点主机名称。

    NAME                     READY   STATUS    RESTARTS   AGE     IP             NODE         NOMINATED NODE   READINESS GATES
    huawei-csi-node-g6f7z    3/3     Running  0          14s     <host2-ip>     <host2-name> <none>           <none>
    
  2. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群中huawei-csi-node服务所在节点

  3. 进入日志目录。

    cd /var/log/huawei
    
  4. 执行以下命令,查看容器自定义输出日志。

    vi huawei-csi-node
    
  5. 进入容器目录。

    cd /var/log/containers
    
  6. 执行以下命令, 查看容器标准输出日志。

    vi huawei-csi-node-<name>_huawei-csi_huawei-csi-driver-<contrainer-id>.log
    

3 - 日志收集

前置检查

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群内有oceanctl工具的节点。

  2. 执行以下命令,显示版本号为v4.5.0

    oceanctl version
    

    命令结果示例如下:

    Oceanctl Version: v4.5.0
    
  3. 执行oceanctl collect logs –help命令,返回信息如下。

    $ oceanctl collect logs --help
    Collect logs of one or more nodes in specified namespace in Kubernetes
    
    Usage:
      oceanctl collect logs [flags]
    
    Examples:
      # Collect logs of all nodes in specified namespace
      oceanctl collect logs -n <namespace>
    
      # Collect logs of specified node in specified namespace
      oceanctl collect logs -n <namespace> -N <node>
    
      # Collect logs of all nodes in specified namespace
      oceanctl collect logs -n <namespace> -a
    
      # Collect logs of all nodes in specified namespace with a maximum of 50 nodes collected at the same time
      oceanctl collect logs -n <namespace> -a --threads-max=50
    
      # Collect logs of specified node in specified namespace
      oceanctl collect logs -n <namespace> -N <node> -a
    
    Flags:
      -a, --all                Collect all nodes messages
      -h, --help               help for logs
      -n, --namespace string   namespace of resources
      -N, --nodename string    Specify the node for which information is to be collected.
          --threads-max int    set maximum number[1~1000] of threads for nodes to be collected. (default 50)
    
    Global Flags:
          --log-dir string   Specify the directory for printing log files. (default "/var/log/huawei")
    
  4. 执行以下命令,检查Pod是否正常启动,其中,huawei-csi为CSI安装的命名空间。

    kubectl get deployment -n huawei-csi
    

    命令结果示例如下:

    NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
    huawei-csi-controller   1/1     1            1           21h
    

使用oceanctl收集CSI命名空间下所有日志

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录前置检查章节中检查的节点。

  2. 执行oceanctl collect logs -n <namespace> -a –threads-max=<max_node_processing_num>命令,收集集群内所有CSI容器所在节点的CSI日志,其中threads-max参数指定了同时收集日志的最大节点数量,默认为50,可以根据主机性能与负载情况配置。

    oceanctl collect logs -n huawei-csi -a --threads-max=10
    
  3. 检查/tmp目录下生成的日志压缩包,可以使用unzip <zip_name> -d collect_logs解压日志压缩包,其中<zip_name>为压缩包的名字。

    # date
    Wed Sep 20 02:49:24 EDT 2023
    
    # ls
    huawei-csi-2023-09-20-02:48:22-all.zip
    

使用oceanctl收集CSI单个节点日志

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录前置检查章节中检查的节点。

  2. 执行oceanctl collect logs -n <namespace> -N <nodeName>命令,收集集群内所有CSI容器所在节点的CSI日志。

    oceanctl collect logs -n huawei-csi -N node-1
    
  3. 检查/tmp目录下生成的日志压缩包,可以使用unzip <zip_name> -d collect_logs解压日志压缩包,其中<zip_name>为压缩包的名字。

    # date
    Thu Sep 21 04:08:47 EDT 2023
    
    # ls
    huawei-csi-2023-09-21-04:05:15-node-1.zip