Kubernetes-como mapear docker executar parâmetros de linha de comando para a linha de comando kubectl

Preciso executar este comando Docker no Kubernetes:

docker run -p 8080:8080 sagemath/sagemath sage -notebook

Posso mapear tudo, exceto "- notebook " - alguém sabe como fazer isso?

Aqui está o que tenho até agora e, claro, não funciona, pois "- notebook " não é traduzido para kubectl corretamente:

kubectl run --image=sagemath/sagemath sage --port=8080 --type=LoadBalancer -notebook

Quando você define as especificações do pod para o seu sage, você pode definir as duas command e um args array, então para você seria como

command: sageargs:- -notebook

para lançar com 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]

então tente correr com -- delimitador : kubectl run --image=sagemath/sagemath --port=8080 --type=LoadBalancer -- sage -notebook

-- faz o truque. Isso significa que kubectl não analisaria como argumentos kubectl as seguintes strings que começam com -

Então você executa esse contêiner executando:

kubectl run --image=sagemath/sagemath --port=8080 sage -- -notebook

E se você quiser um IP público no GKE, exponha o contêiner em execução:

kubectl expose deploy sage --type=LoadBalancer --port=8080

Você pode obter o IP público em execução kubectl get service na linha sage na coluna externo-IP

command: sage notebookargs:

Para tais casos

k run --image=sagemath/sagemath --port=8080 --command=true -- sage notebook

-- command = falseIf argumentos verdadeiros e Extras estão presentes, use-os como o campo 'command' no contêiner, em vez do campo 'args' que é o padrão.

'- notebooknão é um argumento para docker ou kubectl, mas parasage`.

Sim-mas como faço para implementar isso no kubectl - essa é a questão. A linha de comando docker acima funciona

O comando que você deseja executar vai no final, assim como antes.