スキップしてメイン コンテンツに移動

OpenShiftで動かしているPodからIBM Cloudのファイルストレージへの書き込みに失敗する

コンテナを非root権限で動かすのは徐々に一般的なこととして受け入れられつつあるように思う。
その一方で、非rootで動かしているが故に困ることはまだまだあるなあとも感じる。

今回引っかかったのは、IBM Cloudのファイルストレージを払い出して、OpenShiftのPVとして使用する時の話。
簡単に結論を言えば、次のようにして、対象のサービスアカウントに権限を付してDeploymentに書いてしまうのが手っ取り早い(ただし本番での使用は推奨できない)し、もう少し時間が取れるならInitContainerを使用する方法なども検討の余地がありそう。(リンク先参照)

oc create sa mysa
oc adm policy add-scc-to-user anyuid -z mysa

ちなみにこの手っ取り早い現実解はOpenShiftの師匠から教えてもらった。身近にそういう人がいると、自学自習も進みやすくてとてもありがたい。

今回だと、NGINXのコンテナからマウントして参照しつつ、アプリから当該マウント先の下に動的にディレクトリを作ってファイルを出力するような使い方が必要だった。
もちろん、コンテナ自体にroot権限を付して動かせばそれはそれで一つの解決方法なのかもしれないけれど、基本的にはそれは個人的に取りたくない方法だった。

そうなると、今回のように必要なクラスター操作の権限を持っているなら、長期的な方針が決まるまではOpenShiftの権限設定で対応するとして、意思決定を先延ばしにする、というのは現実解としてとても気に入っている