IBM Cloud Docs
Portworx の障害のデバッグ

Portworx の障害のデバッグ

Portworx をデバッグするオプションを確認し、障害の根本原因を探します。

ストレージ・インスタンスをマウントするポッドが正常にデプロイされているかどうかの確認

手順に従って、ポッド・デプロイメントに関連するエラー・メッセージを確認します。

  1. クラスター内のポッドをリストします。 ポッドで Running の状況が示される場合、ポッドは正常にデプロイされています。

    kubectl get pods
    
  2. ポッドの詳細を取得し、CLI 出力の Events セクションに表示されているエラー・メッセージがないか確認します。

    kubectl describe pod <pod_name>
    
  3. ポッドのログを取得し、エラー・メッセージがないか確認します。

    kubectl logs <pod_name>
    
  4. Portworx のトラブルシューティング資料で、一般的なエラーの解決手順を確認します

アプリ・ポッドの再始動

ポッドを再始動して再デプロイすると問題を解決できる場合があります。 手順に従って、特定のポッドを再デプロイします。

  1. ポッドがデプロイメントの一部である場合は、ポッドを削除し、デプロイメントでポッドをビルドし直します。 ポッドがデプロイメントの一部ではない場合、ポッドを削除して、ポッドの構成ファイルを再適用します。

    1. ポッドを削除します。
      kubectl delete pod <pod_name>
      
      出力例
      pod "nginx" deleted
      
    2. 構成ファイルを再適用して、ポッドを再デプロイします。
      kubectl apply -f <app.yaml>
      
      出力例
      pod/nginx created
      
  2. ポッドを再始動しても問題が解決しない場合は、ワーカー・ノードを再ロードします。

  3. IBM Cloud と IBM Cloud Kubernetes Service のプラグインの最新バージョンを使用していることを確認します。

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

Portworx ストレージ・ドライバーおよびプラグインのポッドで、Running の状況が示されることの確認

手順に従って、ストレージ・ドライバーおよびプラグイン・ポッドの状況を確認し、エラー・メッセージを確認します。

  1. kube-system 名前空間のポッドをリストします。
    kubectl get pods -n kube-system | grep `portworx\|stork`
    
    出力例:
    portworx-594rw                          1/1       Running     0          20h
    portworx-rn6wk                          1/1       Running     0          20h
    portworx-rx9vf                          1/1       Running     0          20h
    stork-6b99cf5579-5q6x4                  1/1       Running     0          20h
    stork-6b99cf5579-slqlr                  1/1       Running     0          20h
    stork-6b99cf5579-vz9j4                  1/1       Running     0          20h
    stork-scheduler-7dd8799cc-bl75b         1/1       Running     0          20h
    stork-scheduler-7dd8799cc-j4rc9         1/1       Running     0          20h
    stork-scheduler-7dd8799cc-knjwt         1/1       Running     0          20h
    
  2. ストレージ・ドライバーとプラグインのポッドに実行中 (Running) 状況が表示されない場合は、ポッドの詳細を取得して、根本原因を見つけます。 ポッドの状況によっては、以下のすべてのコマンドを実行できない場合があります。
    1. ドライバー・ポッドで実行されるコンテナーの名前を取得します。
      kubectl describe pod <pod_name> -n kube-system
      
    2. ドライバー・ポッドからローカル・マシン上の logs.txt ファイルに、ログをエクスポートします。
      kubectl logs <pod_name> -n kube-system > logs.txt
      
    3. ログ・ファイルを確認します。
      cat logs.txt
      
  3. 最新のログにエラー・メッセージがないか調べます。 Portworx のトラブルシューティング資料で、一般的なエラーの解決手順を確認します

kubectl CLI バージョンの確認と更新

少なくともクラスターの major.minor バージョンと同じ kubectl CLI バージョンを使用しないと、予期しない結果になる可能性があります。 例えば Kubernetes サポートしていませんkubectl サーバー バージョンから 2 バージョン以上離れたクライアント バージョン (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"}
    

    CLI バージョンが一致するのは、クライアントとサーバーの GitVersion に同じバージョンが表示される場合です。 サーバーのバージョンの +IKS 部分は無視できます。

  2. ローカルマシンとクラスターの kubectl CLIバージョンが一致しない場合は、クラスターを更新するか、 ローカルマシンに異なるCLIバージョンをインストールしてください

Helm チャートの更新

  1. 最新の Helm チャート・バージョンを見つけます。

  2. クラスターにインストールされた Helm チャートをリストし、インストールしたバージョンと最新バージョンを比較します。

    helm list --all-namespaces
    
  3. より新しいバージョンが使用可能な場合は、新しいバージョンをインストールします。 手順については、クラスター内の Portworx の更新を参照してください。