Conventions d’utilisation recommandées pour kubectl.
kubectl dans des scripts réutilisablesPour une sortie stable dans un script :
-o name, -o json, -o yaml, -o go-template ou -o jsonpath.jobs.v1.batch/monjob. Cela va assurer que kubectl n’utilise pas sa version par défaut, qui risque d’évoluer avec le temps.--generator pour coller à un comportement spécifique lorsque vous utilisez les commandes basées sur un générateur, comme kubectl run ou kubectl expose.kubectl runPour que kubectl run satisfasse l’infrastructure as code :
:v1234, v1.2.3, r03062016-1-4, plutôt que :latest (Pour plus d’informations, voir Bonnes pratiques pour la configuration).--record pour annoter les objets créés avec la ligne de commande correspondante pour une image peu paramétrée.kubectl run.kubectl run --generator=deployment/v1beta1.Vous pouvez créer les ressources suivantes en utilisant kubectl run avec le flag --generator :
| Ressource | groupe api | commande kubectl |
|---|---|---|
| Pod | v1 | kubectl run --generator=run-pod/v1 |
| Replication controller (déprécié) | v1 | kubectl run --generator=run/v1 |
| Deployment (déprécié) | extensions/v1beta1 | kubectl run --generator=deployment/v1beta1 |
| Deployment (déprécié) | apps/v1beta1 | kubectl run --generator=deployment/apps.v1beta1 |
| Job (déprécié) | batch/v1 | kubectl run --generator=job/v1 |
| CronJob (déprécié) | batch/v1beta1 | kubectl run --generator=cronjob/v1beta1 |
| CronJob (déprécié) | batch/v2alpha1 | kubectl run --generator=cronjob/v2alpha1 |
Note:kubectl run --generatorsauf pourrun-pod/v1est déprécié depuis v1.12.
Si vous n’indiquez pas de flag de générateur, d’autres flags vous demandent d’utiliser un générateur spécifique. La table suivante liste les flags qui vous forcent à préciser un générateur spécifique, selon la version du cluster :
| Ressource générée | Cluster v1.4 et suivants | Cluster v1.3 | Cluster v1.2 | Cluster v1.1 et précédents |
|---|---|---|---|---|
| Pod | --restart=Never |
--restart=Never |
--generator=run-pod/v1 |
--restart=OnFailure OU --restart=Never |
| Replication Controller | --generator=run/v1 |
--generator=run/v1 |
--generator=run/v1 |
--restart=Always |
| Deployment | --restart=Always |
--restart=Always |
--restart=Always |
N/A |
| Job | --restart=OnFailure |
--restart=OnFailure |
--restart=OnFailure OU --restart=Never |
N/A |
| Cron Job | --schedule=<cron> |
N/A | N/A | N/A |
Note: Ces flags utilisent un générateur par défaut uniquement lorsque vous n’avez utilisé aucun flag. Cela veut dire que lorsque vous combinez--generatoravec d’autres flags, le générateur que vous avez spécifié plus tard ne change pas. Par exemple, dans cluster v1.4, si vous spécifiez d’abord--restart=Always, un Deployment est créé ; si vous spécifiez ensuite--restart=Alwayset--generator=run/v1, alors un Replication Controller sera créé. Ceci vous permet de coller à un comportement spécifique avec le générateur, même si le générateur par défaut est changé par la suite.
Les flags définissent le générateur dans l’ordre suivant : d’abord le flag --schedule, puis le flag --restart, et finalement le flag --generator.
Pour vérifier la ressource qui a été finalement créée, utilisez le flag --dry-run, qui fournit l’objet qui sera soumis au cluster.
kubectl applykubectl apply pour créer ou mettre à jour des ressources. Pour plus d’informations sur l’utilisation de kubectl apply pour la mise à jour de ressources, voir le livre Kubectl.Cette page est elle utile ?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.