Trident: CSINodeにはドライバーcsi.trident.netapp.ioが含まれていません

作成日 2020年10月21日  ·  6コメント  ·  ソース: NetApp/trident

説明
トライデントオペレーターとkubernetes1.17.6を使用して、永続ボリュームを作成することはできますが、ポッドにマウントすることはできません。

ポッドの説明を取得すると、次のエラーが返されます。
CSINode does not contain driver csi.trident.netapp.io

環境

  • トライデントバージョン:[20.07.1]
  • 使用されるTridentインストールフラグ:[デフォルトの/ var / lib / kubeletの場所を使用するため、カスタムフラグはありません]
  • コンテナランタイム:[Docker 19.3.12]
  • Kubernetesバージョン:[1.17.6]
  • Kubernetesオーケストレーター:[なし]
  • Kubernetes対応の機能ゲート:[不要]
  • OS:[Centos 7-3.10.0-1062.12.1.el7.x86_64]
  • NetAppバックエンドタイプ:[OnTap 9.7]
  • 他の:

再現するには
ここに記載されているようにオペレーターをインストールします: https ://netapp-trident.readthedocs.io/en/stable-v20.07/kubernetes/deploying/operator-deploy.html

ストレージクラスとコンシューマーを作成した後、pvはバインドされますが、ポッドはボリュームをワーカーにローカルに接続できません

予想される行動
ポッドはボリュームをマウントして実行することが期待されていました。 代わりに、「保留中」のままです
追加のコンテキスト
ポッドの説明:
`` `kubectl -n test describe po web-0
警告FailedScheduling11s(x2 over 12s)デフォルト-ポッド「web-0」の「VolumeBinding」フィルタープラグインの実行中のスケジューラーエラー:ポッドにバインドされていない即時のPersistentVolumeClaimsがあります
通常のスケジュールされた9sdefault-schedulerテスト/ web-0がhh1kbw02xに正常に割り当てられました
警告FailedAttachVolume(x6以上)attachdetach-controllerAttachVolume.Attachがボリューム "pvc-934230b9-900c-4539-bb0c-8feff6e18628"で失敗しました:CSINodehh1kbw02xにドライバーcsi.trident.netapp.ioが含まれていません
警告FailedAttachVolume(x6以上)attachdetach-controllerAttachVolume.Attachがボリューム "pvc-f4c2b654-ff73-4dd5-84ef-a31491b83f26"で失敗しました:CSINodehh1kbw02xにドライバーcsi.trident.netapp.ioが含まれていません



Logs from trident on this worker:

kubectl-nトライデントログトライデント-csi-9sgrt-cトライデント-メイン-f
time = "2020-10-21T17:15:31Z" level = debug msg = "n >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> nPUT https://10.111.4.90:34571 / trident / v1 / node / hh1kbw02xnHeaders:map [Content-Type:[application / json]] nBody:{n "name": "hh1kbw02x"、n "ips":[n "10.49.12.102"、n "172.17.0.1" n] n} n --------------------------------- ----------------------------------------------- "
time = "2020-10-21T17:15:32Z" level = debug msg = "n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


Logs from registrar sidecar on this worker:

kubectl -ntridentログtrident-csi-9sgrt-c driver-registrar
I1021 17:14:18.636803 6672 main.go:110]バージョン:v1.3.0-0-g6e9fff3e
I1021 17:14:18.636888 6672 main.go:120]「/ plugin / csi.sock」でgRPC接続を開こうとしています
I1021 17:14:18.636908 6672 connection.go:151] unix:///plugin/csi.sockに接続しています
I1021 17:14:18.637420 6672 main.go:127] CSIドライバーを呼び出してドライバー名を検出する
I1021 17:14:18.637435 6672 connection.go:180] GRPC呼び出し:/csi.v1.Identity/GetPluginInfo
I1021 17:14:18.637442 6672 connection.go:181] GRPCリクエスト:{}
I1021 17:14:18.639851 6672 connection.go:183] GRPC応答:{"name": "csi.trident.netapp.io"、 "vendor_version": "20.07.1"}
I1021 17:14:18.640235 6672 connection.go:184] GRPCエラー:
I1021 17:14:18.640242 6672 main.go:137] CSIドライバー名:「csi.trident.netapp.io」
I1021 17:14:18.648537 6672 node_register.go:51]次の場所で登録サーバーを起動しています:/registration/csi.trident.netapp.io-reg.sock
I1021 17:14:18.648666 6672 node_register.go:60]登録サーバーは/registration/csi.trident.netapp.io-reg.sockで開始されました


Description of csi node

kubectl get csinode hh1kbw02x -n trident -o yaml
apiVersion:storage.k8s.io/v1
種類:CSINode
メタデータ:
CreationTimestamp:2020-09-10T07:58:40Z
名前:hh1kbw02x
ownerReferences:

  • apiVersion:v1
    種類:ノード
    名前:hh1kbw02x
    uid:d3db28d6-e2be-4ad4-8534-c853b2e025b5
    resourceVersion: "30914526"
    selfLink:/apis/storage.k8s.io/v1/csinodes/hh1kbw02x
    uid:a764977a-be67-4ee9-8b7e-9aac304e0890
    仕様:
    ドライバー:null

Kubeletログ:
11月6日10:14:18hh1kbw01x kubelet:I1106 10:14:18.883059 2393 reconciler.go:209] operationExecutor.VerifyControllerAttachedVolumeがボリューム "pvc-3bcc4e38-2e69-4541-9910-711d2c086671"(UniqueName: "kubernetes.io/ csi / csi.trident.netapp.io ^ pvc-3bcc4e38-2e69-4541-9910-711d2c086671 ")ポッド" web-0 "(UID:" a235d5f9-05bf-4c77-8a84-e48f2f657d98 ")
11月6日10:14:18hh1kbw01x kubelet:E1106 10:14:18.883223 2393nestedpendingoperations.go:301] "{v olumeName:kubernetes.io/csi/csi.trident.netapp.io ^ pvc-3bcc4e38-2e69- 4541-9910-711d2c086671 podName:nodeName:} "が失敗しました。 2020-11-06 10:14:19.383183856 +0100 CET m = + 1353591.737508759(durationBeforeRetry 500ms)まで再試行は許可されません。 エラー:「ボリュームは、ボリュームのノードのボリュームステータスのVolumesInUseのリストに追加されていません」pvc-3bcc4e38-2e69-4541-9910-711d2c086671」(一意の名前: "kubernetes.io/csi/csi.trident.netapp.io ^ pvc-3bcc4e38-2e69-4541-9910-711d2c086671 ")ポッド" web-0 "(UID:" a235d5f9-05bf-4c77-8a84-e48f2f657d98 ")"
11月6日10:14:18hh1kbw01x kubelet:I1106 10:14:18.983580 2393 reconciler.go:209] operationExecutor.VerifyControllerAttachedVolumeがボリューム "pvc-f138b6cc-988b-455c-bb2e-fce022755634"(一意の名前: "kubernetes.io/ csi / csi.trident.netapp.io ^ pvc-f138b6cc-988b-455c-bb2e-fce022755634 ")ポッド" web-0 "(UID:" a235d5f9-05bf-4c77-8a84-e48f2f657d98 ")
11月6日10:14:18hh1kbw01x kubelet:E1106 10:14:18.983662 2393nestedpendingoperations.go:301] "{v olumeName:kubernetes.io/csi/csi.trident.netapp.io ^ pvc-f138b6cc-988b- 455c-bb2e-fce022755634 podName:nodeName:} "が失敗しました。 2020-11-06 10:14:19.483629729 +0100 CET m = + 1353591.837954619(durationBeforeRetry 500ms)まで再試行は許可されません。 エラー:「ボリュームは、ボリューム「pvc-f138b6cc-988b-455c-bb2e-fce022755634」(一意の名前:「kubernetes.io/csi/csi.trident.netapp.io」のノードのボリュームステータスのVolumesInUseのリストに追加されていません^ pvc-f138b6cc-988b-455c-bb2e-fce022755634 ")ポッド" web-0 "(UID:" a235d5f9-05bf-4c77-8a84-e48f2f657d98 ")"
11月6日10:14:19hh1kbw01x kubelet:I1106 10:14:19.385072 2393 reconciler.go:209] operationExecutor.VerifyControllerAttachedVolumeがボリューム "pvc-3bcc4e38-2e69-4541-9910-711d2c086671"(UniqueName: "kubernetes.io/ csi / csi.trident.netapp.io ^ pvc-3bcc4e38-2e69-4541-9910-711d2c086671 ")ポッド" web-0 "(UID:" a235d5f9-05bf-4c77-8a84-e48f2f657d98 ")
`` `

bug

最も参考になるコメント

だから私はそれを修正しました、私がそう言うかもしれないなら。 外部ストレージプロビジョナーがどのように機能するかを読み、サイドカーコンテナーを使用したドライバー登録の概念を理解した後、セットアップを確認しました。

デフォルトのroot-dirである/ var / lib / kubeletの下にある構成ファイルで開始するようにkubeletを構成するため、これは非常に誤解を招く恐れがありました。

数か月前、私たちは脳を分割し、ポッドとコンテナを別の保管場所に移動することを決定したため、管理と運用を分割しました

したがって、構成ファイルのroot-dirを、/ var / lib / kubeletではなく/ containersを指すように変更しました。

デフォルトのトライデントプロビジョナーは、デフォルトの場所を調べて、プラグインを「埋め込み」ます。

したがって、2つのことを確認する必要があります。

  1. ps aux | grep kubelet | grep -e 'root-dir ->構成されたフォルダーを取得します(私の場合は/ containerでした)
  2. trident_provisioner_cr.yamlを変更し、パラメーター「 kubeletDir 」を追加してカスタマイズします
    apiVersion: trident.netapp.io/v1 kind: TridentProvisioner metadata: name: trident namespace: trident spec: debug: true kubeletDir: /container

頑張ってください。これを閉じます。

全てのコメント6件

ここでのRancherRKEとK8S(v1.18.10)、およびDocker19.3.13を使用してUbuntu18.04.4 LTSを実行しているノードでの同じ問題は、上記の環境と一致します...

ここでもubuntu18.04のアップストリームk8と同じです

trident-csiデーモンセットとデプロイメントの両方を再デプロイし、後でkubeletを再起動することで、それを「解決」することができました。

うん。 演算子の代わりにtridentctlを使用しました。

だから私はそれを修正しました、私がそう言うかもしれないなら。 外部ストレージプロビジョナーがどのように機能するかを読み、サイドカーコンテナーを使用したドライバー登録の概念を理解した後、セットアップを確認しました。

デフォルトのroot-dirである/ var / lib / kubeletの下にある構成ファイルで開始するようにkubeletを構成するため、これは非常に誤解を招く恐れがありました。

数か月前、私たちは脳を分割し、ポッドとコンテナを別の保管場所に移動することを決定したため、管理と運用を分割しました

したがって、構成ファイルのroot-dirを、/ var / lib / kubeletではなく/ containersを指すように変更しました。

デフォルトのトライデントプロビジョナーは、デフォルトの場所を調べて、プラグインを「埋め込み」ます。

したがって、2つのことを確認する必要があります。

  1. ps aux | grep kubelet | grep -e 'root-dir ->構成されたフォルダーを取得します(私の場合は/ containerでした)
  2. trident_provisioner_cr.yamlを変更し、パラメーター「 kubeletDir 」を追加してカスタマイズします
    apiVersion: trident.netapp.io/v1 kind: TridentProvisioner metadata: name: trident namespace: trident spec: debug: true kubeletDir: /container

頑張ってください。これを閉じます。

trident-csiデーモンセットポッドがtrident-controllerと通信できない場合に、同様のことが観察されました。 この場合、それを妨げたのはネットワークポリシーによるものでした。

このページは役に立ちましたか?
0 / 5 - 0 評価