(資料圖)
在 Kubernetes 中,Secret 對象不僅可以用來存儲敏感信息,如訪問私有鏡像倉庫的憑證、HTTPS 證書等,還可以實(shí)現(xiàn) Secret 對象的熱更新。
首先,我們需要創(chuàng)建一個 Secret 對象??梢允褂靡韵旅顏韯?chuàng)建一個 Secret 對象:
$ kubectl create secret generic my-secret --from-literal=foo=bar
在這個命令中,my-secret
參數(shù)指定了 Secret 對象的名稱,--from-literal
參數(shù)用于指定要存儲的鍵值對。
可以使用以下命令來查看剛創(chuàng)建的 Secret 對象的詳細(xì)信息:
$ kubectl describe secret my-secret
接下來,我們需要創(chuàng)建一個使用上一步中創(chuàng)建的 Secret 對象的 Pod 對象。可以使用以下 YAML 配置文件來創(chuàng)建一個簡單的 Pod 對象:
apiVersion: v1kind: Podmetadata: name: my-podspec: containers: - name: my-container image: busybox command: - sh - -c - while true; do echo $foo; sleep 10; done env: - name: foo valueFrom: secretKeyRef: name: my-secret key: foo
在這個配置文件中,我們創(chuàng)建了一個使用上一步中創(chuàng)建的 Secret 對象的 Pod 對象。其中,env
屬性將 Secret 對象中的 foo
鍵值對作為環(huán)境變量傳遞給了容器,容器將會每隔 10 秒鐘打印一次環(huán)境變量 foo
的值。
可以使用以下命令來部署 Pod 對象:
$ kubectl apply -f pod.yaml
當(dāng)需要更新 Secret 對象中的鍵值對時,可以使用以下命令來更新 Secret 對象:
$ kubectl create secret generic my-secret --from-literal=foo=baz --dry-run=client -o yaml | kubectl apply -f -
在這個命令中,--from-literal
參數(shù)用于指定要更新的鍵值對,--dry-run=client -o yaml
參數(shù)用于生成更新后的 Secret 對象的 YAML 配置文件,| kubectl apply -f -
參數(shù)用于將更新后的 YAML 配置文件應(yīng)用到 Kubernetes 中。
當(dāng)更新了 Secret 對象后,我們可以觀察 Pod 對象的日志,看到環(huán)境變量 foo
的值已經(jīng)從 bar
變?yōu)榱?baz
。
$ kubectl logs my-pod
關(guān)鍵詞: