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

jj1130050965發表於2020-12-07

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

原創 CloudMan CloudMan 2018-04-16

第155篇

用 k8s 管理機密資訊

應用啟動過程中可能需要一些敏感資訊,比如訪問資料庫的使用者名稱密碼或者祕鑰。將這些資訊直接儲存在容器映象中顯然不妥,Kubernetes 提供的解決方案是 Secret。

Secret 會以密文的方式儲存資料,避免了直接在配置檔案中儲存敏感資訊。Secret 會以 Volume 的形式被 mount 到 Pod,容器可通過檔案的方式使用 Secret 中的敏感資料;此外,容器也可以環境變數的方式使用這些資料。

Secret 可通過命令列或 YAML 建立。比如希望 Secret 中包含如下資訊:

  1. 使用者名稱 admin

  2. 密碼 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

相關文章