いくつかの背景知識を提供するために、3ノードのGlusterFSクラスタが実行されており、一部のサーバーにいくつかのディレクトリをマウントして動作するかどうかをテストしました。また、Kubernetesクラスタ(現在1つのノード)でマウントをテストして、これが問題ではないこと、およびgluster-clientパッケージがインストールされていることを確認しました。
RancherはKubernetesの管理オーバーレイとして使用されました。永続ボリュームを手動で作成し、Glusterプラグインを選択しました。エンドポイントの場合は、カスタムエンドポイントとサービスオブジェクトを作成する必要があります。
私が受け取ったエラーは次のとおりです。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedMount 7m8s (x34 over 86m) kubelet, ssk8smstd01 Unable to mount volumes for pod "hello-7f66d8f588-whxwz_default(6a45cd5e-7259-11e9-ab24-005056aa5a40)": timeout expired waiting for volumes to attach or mount for pod "default"/"hello-7f66d8f588-whxwz". list of unmounted volumes=[pvc1]. list of unattached volumes=[pvc1 default-token-n7tlv]
Warning FailedMount 3m2s (x44 over 86m) kubelet, ssk8smstd01 (combined from similar events): MountVolume.SetUp failed for volume "gluster1" : mount failed: mount failed: exit status 1
Mounting command: mount
Mounting arguments: -t glusterfs -o backup-volfile-servers=ip1:ip2:ip3,log-file=/var/lib/kubelet/plugins/kubernetes.io/glusterfs/gluster1/hello-7f66d8f588-whxwz-glusterfs.log,log-level=ERROR ip1:gv0 /var/lib/kubelet/pods/6a45cd5e-7259-11e9-ab24-005056aa5a40/volumes/kubernetes.io~glusterfs/gluster1
Output: Mount failed. Please check the log file for more details.
the following error information was pulled from the glusterfs log to help diagnose this issue:
[2019-05-09 14:19:04.005668] E [MSGID: 100026] [glusterfsd.c:2307:glusterfs_process_volfp] 0-: failed to construct the graph
[2019-05-09 14:19:04.005900] E [graph.c:982:glusterfs_graph_destroy] (-->/usr/sbin/glusterfs(mgmt_getspec_cbk+0x12e) [0x5589853fc38e] -->/usr/sbin/glusterfs(glusterfs_process_volfp+0x148) [0x5589853f6dc8] -->/usr/lib/x86_64-linux-gnu/libglusterfs.so.0(glusterfs_graph_destroy+0x6b) [0x7fa9c305268b] ) 0-graph: invalid argument: graph [Invalid argument]
似たようなものを見た人やアイデアを持っている人はいますか?
答え1
Rancherの技術スタッフと話をした後、この問題が見つかりました。
問題は、Hyperkube(K8sバイナリ用ラッパー)がかなり古いGlusterFSバージョンと一緒にプリパッケージで提供されていたため、最終的にバージョン5にダウングレードしなければならず、問題が解決されたことです。
答え2
これは役に立つかもしれません:https://github.com/gluster/glusterfs/issues/658
つまり、クライアントとサーバーで同じバージョンのGlusterFSを使用する必要があります。