このDockerコマンドをKubernetesで実行する必要があります。
docker run -p 8080:8080 sagemath/sagemath sage -notebook
「-notebook」以外のすべてをマップできます-誰でもそれを行う方法を知っていますか?
これが私がこれまで持ってきたもので、もちろん "-notebook"がkubectlに正しく翻訳されていないので機能しません:
kubectl run --image=sagemath/sagemath sage --port=8080 --type=LoadBalancer -notebook
セージのポッド仕様を定義する場合、command
とargs
の両方の配列を定義できるため、次のようになります。
command: sage
args:
- -notebook
kubectl run
での起動用
Usage:
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...] [options]
--
区切り文字で実行してみてください:kubectl run --image=sagemath/sagemath --port=8080 --type=LoadBalancer -- sage -notebook
--
がトリックを行います。これは、kubectlが-
で始まる次の文字列をkubectl引数として解析しないことを意味します
だからあなたはそのコンテナを実行して実行します:
kubectl run --image=sagemath/sagemath --port=8080 sage -- -notebook
GKEでパブリックIPが必要な場合は、実行中のコンテナを公開する必要があります。
kubectl expose deploy sage --type=LoadBalancer --port=8080
行sage
のkubectl get service
を実行しているパブリックIPを列EXTERNAL-IPで取得できます
command: sage notebook
args:
そのような場合
k run --image=sagemath/sagemath --port=8080 --command=true -- sage notebook
--command = false trueおよび追加の引数が存在する場合、デフォルトの「args」フィールドではなく、それらをコンテナの「command」フィールドとして使用します。