用 k8s 管理機密信息 - 每天5分鐘玩轉 Docker 容器技術(155)
阿新 • • 發佈:2018-04-16
Kubernetes Docker 容器 教程 應用啟動過程中可能需要一些敏感信息,比如訪問數據庫的用戶名密碼或者秘鑰。將這些信息直接保存在容器鏡像中顯然不妥,Kubernetes 提供的解決方案是 Secret。
Secret 會以密文的方式存儲數據,避免了直接在配置文件中保存敏感信息。Secret 會以 Volume 的形式被 mount 到 Pod,容器可通過文件的方式使用 Secret 中的敏感數據;此外,容器也可以環境變量的方式使用這些數據。
Secret 可通過命令行或 YAML 創建。比如希望 Secret 中包含如下信息:
用戶名
admin
密碼
123456
創建 Secret
有四種方法創建 Secret:
1. 通過 --from-literal
:
kubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=123456
每個 --from-literal
對應一個信息條目。
2. 通過 --from-file
:
echo -n admin > ./username echo -n 123456 > ./password kubectl create secret generic mysecret --from-file=./username --from-file=./password
每個文件內容對應一個信息條目。
3. 通過 --from-env-file
:
cat << EOF > env.txt username=admin password=123456 EOF kubectl create secret generic mysecret --from-env-file=env.txt
文件 env.txt
中每行 Key=Value 對應一個信息條目。
4. 通過 YAML 配置文件:
文件中的敏感數據必須是通過 base64 編碼後的結果。
執行 kubectl apply
創建 Secret:
下一節我們學習如何使用這些創建好的 Secret。
書籍:
1.《每天5分鐘玩轉Kubernetes》 https://item.jd.com/26225745440.html
2.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
3.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
用 k8s 管理機密信息 - 每天5分鐘玩轉 Docker 容器技術(155)