Necesito ejecutar este comando de Docker en Kubernetes:
docker run -p 8080:8080 sagemath/sagemath sage -notebookPuedo 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:- -notebookpara 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
Ali
May 3, 2022, 2:53pm
3
-- 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 -- -notebookY si desea una IP pública en GKE, debe exponer el contenedor que se ejecuta:
kubectl expose deploy sage --type=LoadBalancer --port=8080Puede 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’.
Quinn
May 3, 2022, 3:08pm
6
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.