web-dev-qa-db-ja.com

Kubernetes-docker runコマンドラインパラメーターをkubectlコマンドラインにマッピングする方法

この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
8
A br

セージのポッド仕様を定義する場合、commandargsの両方の配列を定義できるため、次のようになります。

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

sagekubectl 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」フィールドとして使用します。

0
Blue Clouds