文章目錄
將憑證 secret 以檔案掛戴至 Container 中
之前筆記 使用 cert-manager 建立憑證 紀錄到如何使用 cert-manager 來建立憑證,只是透過 cert-manager 產生的憑證會以 Kubernetes secret 方式存在,一般 application 無法直接取用,所以今天就來紀錄一下如何將 Kubernetes secret 轉成 file 方式 mount 進 container 中讓 application 使用
基本環境說明
- macOS Catalina 10.15.7
docker desktop 3.1.0(51484)
- docker engine 20.10.2
- Kubernetes v1.19.3
Helm chart
- cert-manager v1.1.0
docker images
只用來模擬 application ,隨便用任意 container 皆可
- redis:latest
存有憑證資訊的 secret
這邊使用之前筆記 使用 cert-manager 建立憑證 產生的 secret 做示範,或是可以參考 Create a secret containing some ssh keys 來建立
設定方式
將 secret
yowko-tls
mount 至 container 的/https/
中```bash kubectl apply -f <(echo " apiVersion: v1 kind: Pod metadata: name: demopod spec: containers: - image: redis name: demopod volumeMounts: - name: certificate-volume mountPath: /https readOnly: true ports: - containerPort: 6379 protocol: TCP volumes: - name: certificate-volume secret: secretName: yowko-tls ") ```
說明
cerrt-manager 預設產生的 secret 中的 data 包含三個 key:
ca.crt
,tls.crt
,tls.key
直接將 secret mount 成資料夾,secret data 下的三組 key 會自行轉換為 file name,value 則會直接進到 file 中
kubectl exec -it demopod -- ls /https
驗證憑證有效性
進到該 container
kubectl exec -it demopod -- bash
更新 apt 並安裝 openssl
apt update && apt install -y openssl
驗證憑證
tls.crt
openssl x509 -text -noout -in /https/tls.crt
tls.key
openssl rsa -check --in /https/tls.key
心得
今天筆記對 Kubernetes 專家來說是廢話,但前幾天我真的一直在找方法嘗試將 secret 中的 key 跟 value 手動
轉換為 file,後來查到 Mount SSL certificates in the Pod with Kubernetes secret 才知道原來可以自動轉換呀XD
所以立馬筆記一下,加深自己印象,也許可以讓其他人少花點時間 (還是其實只有我不知道 @@“)
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-03
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。