Kubernetes - Commands
Alasta 23 Août 2024 kubernetes kubernetes command
Description : Kubernetes, les commandes
Docker - Les commandes
Avant de voir les commands dans Kubernetes, voici un petit détour avec Docker.
Un pod ou un container vit seulement le temps de son process.
Avec Docker il y a plusieurs possibilités pour lancer des commandes :
- RUN: utilisé lors du build de l’image
- CMD: cette instruction est lancée lors du démarrage du container, mais peut être overridé si une commande est lancé via la commande **docker run
** - ENTRYPOINT: idem à CMD mais ne peut pas être overridée
docker run ubuntu [COMMAND]
docker run ubuntu sleep 10
Exemple CMD
DockerFile:
FROM ubuntu
CMD sleep 10
Build du container:
docker build -t ubuntu-sleeper .
Execution
Execution de base
docker run ubuntu-sleeper
=> Le container se lance pendant 10 secondes.
Execution en forçant la commande
docker run ubuntu-sleeper sleep 20
=> le container se lance pendant 20 secondes (on aurait pu mettre une autre commande).
Exemple ENTRYPOINT
DockerFile:
FROM ubuntu
ENTRYPOINT sleep 10
Build du container:
docker build -t ubuntu-sleeper-entrypoint .
Exécution
Exécution de base
docker run ubuntu-sleeper-entrypoint
=> Le container se lance pendant 10 secondes.
Exécution en essayant de forçer la commande
docker run ubuntu-sleeper sleep 20
=> le container se lance pendant 10 secondes.
Un moyen pour le forcer mais c’est pas trop le but est d’utiliser l’option –entrypoint:
docker run --entrypoint ls ubuntu-sleeper-entrypoint
=> on ne le voit pas mais execute un ls, mais on ne peut pas passer d’argument.
Exemple ENTRYPOINT + CMD
Docketfile
FROM ubuntu
ENTRYPOINT ["sleep"]
CMD ["10"]
Build de l’image
docker build -t ubuntu-sleeper-entrypoint-cmd .
Exécution
docker run ubuntu-sleeper-entrypoint-cmd
=> Lancement du container pendant 10 secondes.
Forcer la commande
docker run ubuntu-sleeper-entrypoint-cmd sleep 10
=> cela ne fonctionne pas, cela génére dans le container la commande: sleep sleep 10.
docker run ubuntu-sleeper-entrypoint-cmd 5
=> Lancement du container pendant 5 secondes. On ne peut modifier que l’argument (CMD).
Forcer la commande ET l’argument
docker run --entrypoint ls ubuntu-sleeper-entrypoint-cmd /var
Command dans Kubernetes
Définition du pod
apiVersion: v1
kind: pod
metadata:
name: ubuntu-sleeper-pod
spec:
containers:
- name: ubuntu-sleeper
image: ubuntu-sleeper
command: ["sleep"]
args: ["10"]
La command de Kube est l’ENTRYPOINT de docker, et l’args Kube est le CMD de docker.
La **command et l’args override la configuration définie dans le Dockerfile, ils ne peuvent pas être modifiés uns fois que le pod est créé.
Si l’args est défini sans command c’est la command du Dockerfile qui est utilisé avec l’argument du pod.