web-dev-qa-db-fra.com

Kubernetes - Comment mapper les paramètres de ligne de commande runer docker à la ligne de commande kubectl

J'ai besoin d'exécuter cette commande Docker dans Kubernetes:

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

Je peux tout cartographier sauf "-notebook" - est-ce que quelqu'un sait comment faire ça?

Voici ce que j'ai jusqu'à présent, et bien sûr cela ne fonctionne pas car "-notebook" n'est pas traduit correctement en kubectl:

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

Lorsque vous définissez des spécifications de pod pour votre sauge, vous pouvez définir à la fois command et un tableau args, donc pour vous, ce serait comme

command: sage
args:
- -notebook

pour le lancement avec 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]

alors essayez de courir avec -- délimiteur: kubectl run --image=sagemath/sagemath --port=8080 --type=LoadBalancer -- sage -notebook

7

-- fait l'affaire. Cela signifie que kubectl n'analyserait pas en tant qu'arguments kubectl les chaînes suivantes commençant par -

Vous exécutez donc ce conteneur en exécutant:

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

Et si vous voulez une IP publique sur GKE, vous devez exposer l'exécution du conteneur:

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

Vous pouvez obtenir l'adresse IP publique en cours d'exécution kubectl get service dans la ligne sage dans la colonne EXTERNAL-IP

command: sage notebook
args:

Pour de tels cas

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

--command = false Si des arguments vrais et supplémentaires sont présents, utilisez-les comme champ 'commande' dans le conteneur, plutôt que comme champ 'args' qui est le champ par défaut.

0
Blue Clouds