用 k8s 管理機密信息 - 天天5分鐘玩轉 Docker 容器技術(155)

應用啓動過程當中可能須要一些敏感信息,好比訪問數據庫的用戶名密碼或者祕鑰。將這些信息直接保存在容器鏡像中顯然不妥,Kubernetes 提供的解決方案是 Secret。html

Secret 會以密文的方式存儲數據,避免了直接在配置文件中保存敏感信息。Secret 會以 Volume 的形式被 mount 到 Pod,容器可經過文件的方式使用 Secret 中的敏感數據;此外,容器也能夠環境變量的方式使用這些數據。數據庫

Secret 可經過命令行或 YAML 建立。好比但願 Secret 中包含以下信息:app

  1. 用戶名 admin學習

  2. 密碼 123456編碼

建立 Secret

有四種方法建立 Secret:spa

1. 經過 --from-literal命令行

kubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=123456

每一個 --from-literal 對應一個信息條目。code

2. 經過 --from-filehtm

echo -n admin > ./username
echo -n 123456 > ./password
kubectl create secret generic mysecret --from-file=./username --from-file=./password

每一個文件內容對應一個信息條目。blog

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

相關文章
相關標籤/搜索