Comment passer de l'image pull secret tout en utilisant 'kubectl exécuter la commande?
Je suis en train d'utiliser kubectl commande exécuter pour tirer une image privées de registre et exécuter une commande à partir de cela. Mais je ne vois pas d'option pour spécifier l'image pull secret. On dirait qu'il n'est pas possible de passer de l'image secrète dans le cadre de la commande run.
Est-il une autre option pour les tirer d'un conteneur et d'exécuter une commande à l'aide kubectl? La sortie de la commande devrait être vu sur la console. Aussi une fois que la commande est terminée, le module doit mourir.
- kubernetes.io/docs/guide utilisateur/de la production de gousses/...
- Merci pour le lien. C'était une lecture intéressante. Mais je cherche à utiliser kubectl commande exécuter.
- J'ai mis à jour la question
- Ne comprends pas quel est le problème. Même le panneau de commande de la ligne nécessite une connexion de la commande".
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser les remplacements si vous spécifiez la droite, c'est un tableau à la fin, qui m'a pris un peu de comprendre, la ci-dessous fonctionne sur Kubernetes d'au moins 1,6:
--overrides='{ "apiVersion": "v1", "spec": { "imagePullSecrets": [{"name": "your-secret"}] } }'
par exemple
kubectl run -i -t hello-world --restart=Never --rm=true \
--image=eu.gcr.io/your-registry/hello-world \
--overrides='{ "apiVersion": "v1", "spec": { "imagePullSecrets": [{"name": "your-registry-secret"}] } }'
--overrides="{ \"apiVersion\": \"v1\", ...}] } }"
Vous pouvez créer le
docker-registry
secret comme décrit à @MarkO Connor lien, puis l'ajouter à la valeur par défaut ServiceAccount. C'est SA qui agit au nom de gousses, y compris en tirant leurs images.De L'ajout de ImagePullSecrets à un compte de service:
Maintenant, tout de nouveaux groupes créés dans l'espace de noms courant aura ceci ajouté à leur spec:
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'
Comme je sais que vous ne pouvez pas, mais vous pouvez utiliser
kubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }'
, mais ce n'est pas très différent de ce que vous pouvez faire aveckubectl create -f mypod.json
Ce que je pense que vous êtes après, n'est pas un
Pod
mais unJob
, par exemple, si vous avez besoin de remplir une base de données, vous pouvez créer un conteneur qui fait ça, et l'exécuter comme un emploi à la place d'un pod ou un jeu de réplicas.Kubectl run ...
crée déploiementor
travail " des objets. Travaux de finition lorsque le pod de l'exécution se termine et vous pouvez voir les logs.Jetez un oeil ici et ici pour la résiliation
kubectl run ovass-fetcher-$(date +%s) --image=nginx --overrides="$(kubectl get secret registrykey -o json)"
où j'avais déjà un travail de secret: registrykey.Sur Windows, vous pouvez le faire
patch
, mais il montre un JSON erreur, vous devez faire ce truc (à l'aide de PowerShell):Aussi , si vous souhaitez mettre à jour/ajout de imagePullSecret , alors vous devriez être en utilisant quelque chose comme ceci :
.