私はKubernetes v1.2.4(CoreOS stable 1010.5.0上)を使用していて、rbd/cephボリュームをマウントしたいと考えています。基本的に私はhttps://github.com/kubernetes/kubernetes/tree/master/examples/rbdに従ってきましたが、私はJSONよりもYAMLを好んでいました。コアレスでkubernetesからrbd(docker)を呼び出すとfork/execの無効な引数が返される
は気づいたの両方が存在しなければならない:
secretRef:
name: ceph-secret
と
keyring: /etc/ceph/keyring
他kubectlを訴えました。これは予想される動作ですか?
kubeletがホスト上で直接rbdバイナリを呼び出そうとしているようです(これはCoreOSのような "ベアシステム"の問題です)。私はこのトリックでしビット面倒になり、バイナリおよび依存関係の上にコピーするので:
$ cat /opt/bin/rbd
#!/bin/sh
docker run -v /etc/ceph:/etc/ceph ceph/rbd [email protected]
は、/ etc /セファロ構成の世話をしたが、シェルスクリプトの実行などを作った - 私は、上の「RBDリスト」を行う場合CoreOSはすべて正常に動作します。/opt/bin(デフォルトでCoreOSのPATH上にある)は、kubeletプロセスのPATHにもあります(/ proc/kubelet pid/environで確認できます)。私は(テスト)ポッドを起動した場合
は、しかし、私は(kubectlポッドに記述)このエラーが出る:
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
5s 5s 1 {default-scheduler } Normal Scheduled Successfully assigned busybox4 to some-host
4s 4s 1 {kubelet some-host} Warning FailedMount Unable to mount volumes for pod "busybox4_default(5386c7f3-3959-11e6-a768-aa00009a7832)": rbd: map failed fork/exec /opt/bin/rbd: invalid argument
4s 4s 1 {kubelet some-host} Warning FailedSync Error syncing pod, skipping: rbd: map failed fork/exec /opt/bin/rbd: invalid argument
ので(フォーク)またはどちらかはexecve()EINVALを返しますか?いくつかのmanページを通読することにより、私は唯一の幹部が実際に起因する
An ELF executable had more than one PT_INTERP segment (i.e., tried to name more than one interpreter)
にEINVALで失敗する可能性がありますが、それはかなりあいまいなようだ見つけました。
問題が何であるか、問題をどのように修正/回避することができますか?
編集:私はstrace -fp pidを試しました。そしてgolang os/exec LookPathから推測される多くのstat()呼び出しがあります。しかし、私は "rbd"でexecve()を見たり、EINVALでシステムコールが失敗したりしていません。それが艦隊(systemd)に関係していないことを確認するために、私はkubeletを直接rootとしてコンソールで実行しようとしました。結果は同じです。
https://github.com/ceph/ceph-docker/tree/master/examples/coreos/rbdmapもチェックしてください。 –
問題は複数のノードがあり、複数のノードでrbd(またはその上に少なくともext4)を同時に使用することは安全ではないということです。 https://github.com/kubernetes/kubernetes/issues/23518が良いでしょう。しかし、疑わしいことが起こります(外部のCLIツールとの統合はあまり脆弱ではありません) – fiction
@ Yu-JuHong - 私のrbdmapスクリプトのプラグに感謝します。 – Matt