Kubernetes - cómo asignar parámetros de línea de comandos de ejecución de docker a la línea de comandos de kubectl

Necesito ejecutar este comando de Docker en Kubernetes:

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

Puedo mapear todo excepto "- notebook" - ¿alguien sabe cómo hacer eso?

Esto es lo que tengo hasta ahora, y por supuesto no funciona ya que "- notebook" no se traduce a kubectl correctamente:

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

Cuando define la especificación de pod para su sage, puede definir ambos command y un args array, así que para ti sería como

command: sageargs:- -notebook

para lanzar con 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]

así que intenta correr con -- delimitador : kubectl run --image=sagemath/sagemath --port=8080 --type=LoadBalancer -- sage -notebook

-- hace el truco. Significa que kubectl no analizaría como argumentos de kubectl las siguientes cadenas que comienzan con -

Así que ejecuta ese contenedor ejecutando:

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

Y si desea una IP pública en GKE, debe exponer el contenedor que se ejecuta:

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

Puede hacer que la IP pública se ejecute kubectl get service en la fila sage en la columna EXTERNAL-IP

command: sage notebookargs:

Para tales casos

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

-- command=falseSi hay argumentos true y extra, utilícelos como el campo' command 'en el contenedor, en lugar del campo' args', que es el predeterminado.

`- notebook 'no es un argumento para docker o kubectl, sino para ‘sage’.

Sí, pero cómo lo implemento en kubectl, esa es la pregunta. La línea de comandos de docker anterior funciona

El comando que desea ejecutar va al final, al igual que antes.