Wie gehen Bild ziehen Geheimnis, während mit 'kubectl run' - Befehl?
Ich versuche, mit kubectl Befehl ausführen zu ziehen, ein image von private-registry und führen Sie einen Befehl aus, der. Aber ich sehe nicht, eine option, um das Bild zu geben pull Geheimnis. Wie es aussieht ist es nicht möglich, pass-Bild secret als Teil für Befehl ausführen.
Gibt es eine Alternative zum ziehen aus einem Behälter und ausführen eines Befehls mit kubectl? Die Ausgabe des Befehls sollte man auf der Konsole. Auch wenn der Befehl beendet die pod sterben sollte.
- kubernetes.io/docs/user-guide/Produktion-pods/...
- Danke für den link. Es war eine interessante Lektüre. Aber ich bin auf der Suche zu verwenden kubectl Befehl ausführen.
- Ich aktualisierte die Frage
- Verstehe nicht, was das problem ist. Auch die docker-Befehl-Linie erfordert eine eigene "login" - Befehl.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die überschreibungen, wenn Sie es richtig, es ist ein array, in das Ende, das hat mich ein bisschen, um herauszufinden, die folgenden arbeiten auf Kubernetes von mindestens 1,6:
--overrides='{ "apiVersion": "v1", "spec": { "imagePullSecrets": [{"name": "your-secret"}] } }'
beispielsweise
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"}] } }'
Können Sie die
docker-registry
Geheimnis wie beschrieben an @MarkO 'Connor' s link, und fügen Sie es der Standard-ServiceAccount. Es ist das SA-das wirkt sich auf die Namen der pods, einschließlich ziehen Ihre Bilder.Vom Hinzufügen ImagePullSecrets zu einem service account:
Nun, alle neuen pods erstellt im aktuellen Namensraum haben diese Hinzugefügt, um Ihre spec:
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'
Soweit ich weiß ist Sie nicht, aber Sie können
kubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }'
, aber das ist nicht sehr Verschieden von dem, was Sie tun können, mitkubectl create -f mypod.json
Was ich denke, du bist nach nicht ein
Pod
aber einJob
zum Beispiel, wenn Sie brauchen, um füllen Sie eine Datenbank, können Sie einen container erstellen, die das tut, und führen Sie es als job anstatt ein pod oder ein Replikat festlegen.Kubectl run ...
schafft Bereitstellungor
job` - Objekte. Aufträge fertig stellen", wenn der pod-Ausführung beendet, und Sie können überprüfen Sie die Protokolle.Werfen Sie einen Blick hier und hier für die Kündigung
kubectl run ovass-fetcher-$(date +%s) --image=nginx --overrides="$(kubectl get secret registrykey -o json)"
wo ich hatte zuvor eine funktionierende Geheimnis: registrykey.Unter Windows können Sie tun
patch
, aber es zeigt eine JSON-Fehler, den Sie haben, um diesen trick zu tun (mit PowerShell):Auch , wenn Sie wollen, Sie zu aktualisieren/anfügen imagePullSecret , dann sollten Sie mit so etwas wie dieses :
.