IBM Cloud Docs
调试 IBM Cloud Object Storage 失败

调试 IBM Cloud Object Storage 失败

查看用于调试 Object Storage 的选项,并查找任何故障的根本原因。

检查存储实例的容器是否已成功部署

执行以下步骤以查看与 pod 部署相关的任何错误消息。

  1. 列出集群中的 pod。 如果 pod 显示的状态为 Running,说明 pod 已成功供应。

    kubectl get pods
    
  2. 获取您的Pod的详细信息,并查看CLI输出中 “事件”部分显示的错误消息。

    kubectl describe pod <pod_name>
    
  3. 检索 pod 的日志并查看任何错误消息。

    kubectl logs <pod_name>
    
  4. 查看 Object Storage 故障诊断文档以了解解决常见错误的步骤

重新启动应用程序 pod

可以通过重新启动并重新部署 pod 来解决某些问题。 执行以下步骤以重新部署特定 pod。

  1. 如果您的 pod 是部署的一部分,请删除该 pod 并让部署重新构建该 pod。 如果 pod 不是部署的一部分,请删除 pod 并重新应用 pod 配置文件。

    1. 删除 pod。
      kubectl delete pod <pod_name>
      
      示例输出
      pod "nginx" deleted
      
    2. 重新应用配置文件以重新部署 pod。
      kubectl apply -f <app.yaml>
      
      示例输出
      pod/nginx created
      
  2. 如果重新启动 pod 无法解决问题,请 重新装入工作程序节点

  3. 验证是否使用的是最新的 IBM Cloud 和 IBM Cloud Kubernetes Service 插件版本。

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

确认存储驱动器和插件舱的状态为 “运行中”

执行以下步骤以检查存储驱动程序和插件 pod 的状态,并查看任何错误消息。

  1. 列出 kube-system 名称空间中的 pod。

    kubectl get pods -n kube-system
    
  2. 如果存储驱动程序和插件 pod 未显示 正在运行 状态,请获取 pod 的更多详细信息以查找根本原因。 根据 pod 的状态,以下命令可能会失败。

    1. 获取在驱动程序 pod 中运行的容器的名称。

      kubectl describe pod <pod_name> -n kube-system
      
    2. 将日志从驱动程序 pod 导出到本地机器上的 logs.txt 文件。

      kubectl logs <pod_name> -n kube-system > logs.txt
      
    3. 查看日志文件。

      cat logs.txt
      
  3. 请检查最新日志以获取任何错误消息。 查看 Object Storage 故障诊断文档以了解解决常见错误的步骤

检查您的PVC是否已成功配置

执行以下步骤以检查 PVC 的状态并查看任何错误消息。

  1. 检查您的PVC状态。 如果 PVC 显示的状态为 Bound,说明 PVC 已成功供应。

    kubectl get pvc
    
    • 如果 PVC 显示状态为 Bound,那么表示已成功供应 PVC。

      示例输出

      NAME         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
      silver-pvc   Bound     pvc-4b881a6b-ada8-4a44-b568-fe909107d756   24Gi       RWX            ibmc-file-silver            7m29s
      
    • 如果 PVC 的状态显示为 暂挂,请描述 PVC 并查看输出的 事件 部分以获取任何警告或错误消息。 请注意,在使用 PVC 部署应用程序 pod 之前,引用卷绑定方式设置为 WaitForFirstConsumer 的存储类的 PVC 将保持 暂挂 状态。

      kubectl describe pvc <pvc_name>
      

      示例输出

      Name:          local-pvc
      Namespace:     default
      StorageClass:  sat-local-file-gold
      Status:        Pending
      Volume:        
      Labels:        <none>
      Annotations:   <none>
      Finalizers:    [kubernetes.io/pvc-protection]
      Capacity:      
      Access Modes:  
      VolumeMode:    Filesystem
      Mounted By:    <none>
      Events:
      Type     Reason              Age                 From                         Message
      ----     ------              ----                ----                         -------
      Warning  ProvisioningFailed  60s (x42 over 11m)  persistentvolume-controller  storageclass.storage.k8s.io "sat-local-file-gold" not found
      
  2. 查看 Object Storage 故障诊断文档,以了解解决常见 Object Storage PVC 错误 的步骤。

检查和更新 kubectl CLI 版本

如果使用的 kubectl CLI 版本不能至少匹配集群的 major.minor 版本,那么可能会遇到意外的结果。 例如,Kubernetes 不支持与服务端版本相差2个或更多版本的 kubectl 客户端(n +/- 2)。

  1. 验证在本地计算机上运行的 kubectl CLI 版本是否与集群中安装的 Kubernetes 版本相匹配。 显示在集群中和本地计算机上安装的 kubectl CLI 版本。

    kubectl version
    

    示例输出:

    Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.32", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"darwin/amd64"}
    Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.32+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
    

    如果在 GitVersion 中看到客户机和服务器的版本相同,说明 CLI 版本匹配。 可以忽略服务器版本中的 +IKS 部分。

  2. 如果本地机器和集群上的 kubectl CLI版本不匹配,请更新集群或 在本地机器上安装其他CLI版本

检查和更新 Object Storage 插件

执行步骤以更新 Object Storage 插件

检查驱动程序日志和安装的驱动程序版本

要检查驱动程序日志并查看 Object Storage 安装的驱动程序版本,请执行以下步骤。

  1. 列出kube-system命名空间中的容器。
    kubectl get pods -n kube-system -o wide -l app=ibmcloud-object-storage-driver
    
  2. 查看您的播客的日志。
    kubectl -n kube-system exec -it -- cat /host/log/ibmc-s3fs.log
    

更新 Helm 图表

要从任何较早版本更新 Helm Chart,请执行以下步骤。

  1. 卸载当前的 Helm 图表。

    helm ls --all --all-namespaces
    
    helm uninstall <helm_chart_name> -n <helm_chart_namespace>
    
  2. 添加和更新 Helm 存储库。

    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
    
    helm repo update
    
  3. 安装新的 Helm 图表。

    helm plugin uninstall ibmc
    helm fetch --untar ibm-helm/ibm-object-storage-plugin && cd ibm-object-storage-plugin
    helm plugin install ./ibm-object-storage-plugin/helm-ibmc
    helm ibmc --help