當更新kubernetes祕密文件時,爲了應用更改,我需要運行kubectl apply -f my-secrets.yaml
。如果有一個正在運行的容器,它仍然會使用舊的祕密。爲了在正在運行的容器上應用新的祕密,我當前運行命令kubectl replace -f my-pod.yaml
。 我想知道這是更新正在運行的容器密碼的最佳方式,還是我錯過了一些東西。更新kubernetes祕密不會更新正在運行的容器env vars
感謝。
當更新kubernetes祕密文件時,爲了應用更改,我需要運行kubectl apply -f my-secrets.yaml
。如果有一個正在運行的容器,它仍然會使用舊的祕密。爲了在正在運行的容器上應用新的祕密,我當前運行命令kubectl replace -f my-pod.yaml
。 我想知道這是更新正在運行的容器密碼的最佳方式,還是我錯過了一些東西。更新kubernetes祕密不會更新正在運行的容器env vars
感謝。
祕密安裝自動更新 當卷已經消耗祕密之中進行更新,預計鍵最終被更新。更新時間取決於kubelet同步週期。
安裝的機密已更新。問題是什麼時候。如果更新密碼的內容並不意味着您的應用程序會自動使用它。在這種情況下,應用程序監視文件更改是相應的行爲。考慮到這一點,你現在需要做更多的工作。我現在想到的一種方法是運行一個scheduled job in Kubernetes,與Kubernetes API對話,以啓動您的deployment的新推出。這樣,你可以在理論上實現你想要更新你的祕密。它有點不雅,但這是我目前唯一想到的方法。我仍然需要更多地瞭解Kubernetes概念。所以請耐心等待。
按照設計,Kubernetes不會將Secret更新推送到正在運行的Pod上。如果您想更新Pod的Secret值,則必須銷燬並重新創建Pod。你可以閱讀更多關於它here。
在http://kubernetes.io/docs/user-guide/secrets/上,在「Mounted Secrets自動更新」中,除非另有說明 - 至少我是這樣理解的。或者這是另一種情況? –
假設我們[在吊艙規範安裝祕密作爲mysecret]
我們可以刪除現有的祕密
kubectl delete secret mysecret
創建相同的祕密與更新的文件運行莢mypod
kubectl create secret mysecret <updated file/s>
那麼做
kubectl apply -f ./mypod.yaml
檢查mypod中的祕密,它會被更新。
監視祕密的另一種方法是使用'inotify'並觀察它所在的目錄。 –