Ich habe ein Geheimnis mit erstellt kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt
.
Wenn ich die Werte aktualisieren möchte - wie kann ich das tun?
kubernetes
kubectl
Chris Stryczynski
quelle
quelle
--save-config
um diekubectl create secret
um eine CLI - Warnung zu vermeiden.kubectl create secret tls my-domain-tls --namespace=default --key=./tls.key --cert=./tls.crt --dry-run -o yaml | kubectl apply -f -
Die Zertifikate waren im Klartext.Sie können das Geheimnis löschen und sofort neu erstellen:
Ich habe diese Befehle in ein Skript eingefügt. Beim ersten Aufruf erhalten Sie eine Warnung über das (noch nicht) vorhandene Geheimnis, aber das funktioniert.
quelle
apply
verstehe, die Verwendung macht viel mehr Sinn, danke!--namespace=kube-system
Alternativ können Sie auch
jq
's=
oder|=
Operator verwenden, um Geheimnisse im laufenden Betrieb zu aktualisieren.Obwohl es
kubectl create secret generic --dry-run
technisch gesehen möglicherweise nicht so elegant oder einfach ist wie der Ansatz, aktualisiert dieser Ansatz die Werte wirklich, anstatt sie zu löschen / neu zu erstellen. Sie benötigen auchjq
undbase64
(oderopenssl enc -base64
) Befehle zur Verfügung,tr
ein allgemein verfügbares Linux-Dienstprogramm zum Trimmen nachfolgender Zeilenumbrüche.Sehen Sie hier , um weitere Informationen über
jq
Update - Operator|=
.quelle
Da ich nicht auf Devys Antwort oben antworten konnte, was mir gefällt, weil dadurch die Eigentümerschaft erhalten bleibt, wenn beim Löschen und Neuerstellen zusätzliche Informationen in der Aufzeichnung verloren gehen können. Ich füge dies für die neueren Leute hinzu, die möglicherweise nicht sofort verstehen, dass Molke ihre Variablen nicht interpoliert werden.
Dies führte mich zu dem Versuch, die 'Patch'-Methode von kubectl zu verwenden, die ebenfalls zu funktionieren scheint.
Vielen Dank an Devy für die Antwort, die meinen Bedürfnissen am besten entspricht.
quelle
In genaueren Fällen müssen Sie möglicherweise Ihren Namespace angeben, in dem das Zertifikat erneuert werden muss, und den alten löschen.
quelle
Ich habe dieses benutzt und es hat wie ein Zauber funktioniert:
Docker-Server = https://index.docker.io/v1/ (für DockerHub)
Für weitere Informationen: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line
quelle