iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
0
Kubernetes

Kubernetes~成為Devops工程師的必經試煉系列 第 15

Day 15 Kubernetes 機密資料處理~Secrets

  • 分享至 

  • twitterImage
  •  

前言

Kubernates 中 Secrets 可用來儲存敏感資料如密碼,Token。這些資料可能被儲存在 Pod 或者 Docker Image中,把這些資料保存在 Secrets 元件中,可以在這些信息被使用時加以控制,並可以降低信息洩露的風險。

下面我們以 blog-service 為例,實現把 db 信息保存在 Kubernates Secrets 元件中,並在 blog-service 中讀取 Secrets 對像中的 db 信息。

實際操作

使用 kubectl 建立 Secret

假設有些 Pod 需要存取資料庫。這些 Pod 需要使用的帳號與密碼在本機的 ./username.txt./password.txt 文件裡。

# Create files needed for rest of example.
$ echo -n "admin" > ./username.txt
$ echo -n "1f2d1e2e67df" > ./password.txt

kubectl create secret 命令將這些文件 包到一個 Secret 中並在 API server 中建立了一個元件。

$ kubectl create secret generic db-user-pass --from-file=./username.txt --from-file=./password.txt
secret "db-user-pass" created

檢查上述的指令已經建立好 Secret

$ kubectl get secrets
NAME                  TYPE                                  DATA      AGE
db-user-pass          Opaque                                2         51s

$ kubectl describe secrets/db-user-pass
Name:            db-user-pass
Namespace:       default
Labels:          <none>
Annotations:     <none>

Type:            Opaque

Data
====
password.txt:    12 bytes
username.txt:    5 bytes

解碼 Secret

可以使用 kubectl get secret 獲取 secret。例如,獲取在上一節中創建的 secret:

$ kubectl get secret db-user-pass  -o yaml
apiVersion: v1
data:
  password.txt: MWYyZDFlMmU2N2Rm
  username.txt: YWRtaW4=
kind: Secret
metadata:
  creationTimestamp: 2018-10-29T14:30:38Z
  name: db-user-pass
  namespace: default
  resourceVersion: "227048"
  selfLink: /api/v1/namespaces/default/secrets/db-user-pass
  uid: 34cfe277-db87-11e8-844b-080027cb9b15
type: Opaque

解碼密碼部分

$  echo "MWYyZDFlMmU2N2Rm" | base64 --decode

參考連結

  1. Kubernetes 中 Secrets 对象的使用

  2. Kubernetes中的Secret配置详解


上一篇
Day 14 檢查 Kubernetes 中 Pod的健康狀態 ~Health Check
下一篇
Day 16 於Kubernates 架設 dotnet core mvc 專案
系列文
Kubernetes~成為Devops工程師的必經試煉17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
踏雪尋梅
iT邦研究生 5 級 ‧ 2019-04-29 17:03:56

Hellow,大哥你好,我想問一下,K8S,有辦法像Docker Hub 那樣,用帳戶去控管image的上傳及節點部署的方式嗎?

我要留言

立即登入留言