▪️k8s - Secret
2024-11-5
| 2025-3-19
字數 394閱讀時間 1 分鐘

概要


Secret 用來設定 k8s 中的敏感資訊,來避免創建 Pod 暴露資訊在歷史進程。
Secret 有區分 namespace
 
通常用在以下場景
  • Pod 內 Container 的環境變量
  • Pod 內 SSH 密鑰或密碼等敏感資訊
  • 允許 kubelet 在私有 image registry 拉取鏡像
 
Secret 默認情況下是非加密的儲存在 etcd 中,任何可以訪問 etcd 的都有權限可以修改
所以如果要安全使用 Secret ,請使用以下步驟
  • Secret 啟用靜態加密
  • Secret 使用最小權限來訪問
  • 限制 Secret 對特定容器的存取
  • 考慮使用外部 Secret
 
如果沒有設定不可更改 (immutable: true),修改 Secret 後,引用的 Pod 不必重啟就會重新新設定

類型


Secret 居分以下類型
Opaque
用戶定義的任意數據 (預設)
kubernetes.io/service-account-token
服務帳號 token
kubernetes.io/dockercfg
~/.dockercfg 文件
kubernetes.io/dockerconfigjson
~/.docker/config.json 文件
kubernetes.io/basic-auth
基本身份驗證
kubernetes.io/ssh-auth
SSH 身份驗證
kubernetes.io/tls
TLS 相關配置
bootstrap.kubernetes.io/token
啟動引導令牌数据
 

配置


定義

範例

在 Pod 中使用 Secret 設置 Volume

在 Pod 中使用 Secret 宣告環境變量

替代方案


  • 如果雲服務要訪問在同一 k8s 叢集中的應用,身分驗設可以使用 ServiceAccount
  • 第三方工具
  • kubernetes
  • k8s - ConfigMapk8s - StorageClass (存儲類)
    Loading...