私はkubernetesとGoogleコンテナエンジン(GKE)で遊んでいます。Google Container Engineに非ルートユーザーを配備したDockerコンテナは、マウントされたGCEに書き込むことができません。永続ディスク
私はこれは私の複製コントローラである。このイメージからjupyter/all-spark-notebook
をコンテナを展開:あなたは、私はGoogleのCompute Engineの永続ディスクをマウント見ることができるように
{
"apiVersion": "v1",
"kind": "ReplicationController",
"metadata": {
"name": "datalab-notebook"
},
"spec": {
"replicas": 1,
"selector": {
"app": "datalab-notebook"
},
"template": {
"metadata": {
"name": "datalab-notebook",
"labels": {
"environment": "TEST",
"app": "datalab-notebook"
}
},
"spec": {
"containers": [{
"name": "datalab-notebook-container",
"image": "jupyter/all-spark-notebook",
"env": [],
"ports": [{
"containerPort": 8888,
"name": "datalab-port"
}],
"volumeMounts": [{
"name": "datalab-notebook-persistent-storage",
"mountPath": "/home/jovyan/work"
}]
}],
"volumes": [{
"name": "datalab-notebook-persistent-storage",
"gcePersistentDisk": {
"pdName": "datalab-notebook-disk",
"fsType": "ext4"
}
}]
}
}
}
}
。私の問題は、コンテナが非rootユーザーを使用し、マウントされたディスクがrootによって所有されていることです。私のコンテナはディスクに書き込むことができません。
- GCE永続ディスクをマウントし、root以外のユーザーのいないコンテナに対して読み書きできる方法はありますか?
- もう1つの一般的な質問:Google Container Engineでルートユーザーでコンテナを実行するのは安全ですか?
は、root以外のユーザーでGCEのPD書き込み可能にするために、ポッドのセキュリティコンテキストのFSGroupフィールドを使用することができ、あなたの入力のために事前に
あなたは何を安全と定義しますか? GKはあなたにkubernetesクラスタの一部として実行される各VMを提供するので、少なくともそれは慣れていましたが、それがまだ当てはまるかどうかはわかりませんが、私はそう信じています。だから、rootのユーザコンテナはあなたのホスト上でrootを走らせるのと同じだから、もしあなたのアプリケーションが正常にルートを走らせていれば、あなたは大丈夫であるはずです –