
- Kubernetes 教程
- Kubernetes - 主頁
- Kubernetes - 概覽
- Kubernetes - 架構
- Kubernetes - 設定
- Kubernetes - 映像
- Kubernetes - 作業
- Kubernetes - 標籤和選擇器
- Kubernetes - 名稱空間
- Kubernetes - 節點
- Kubernetes - 服務
- Kubernetes - Pod
- Kubernetes - 副本控制器
- Kubernetes - 副本集
- Kubernetes - 部署
- Kubernetes - 卷
- Kubernetes - 金鑰
- Kubernetes - 網路策略
- 高階 Kubernetes
- Kubernetes - API
- Kubernetes - Kubectl
- Kubernetes - Kubectl 命令
- Kubernetes - 建立應用
- Kubernetes - 應用部署
- Kubernetes - 自動伸縮
- Kubernetes - 儀表板設定
- Kubernetes - 監視
- Kubernetes 有用資源
- Kubernetes - 快速指南
- Kubernetes - 有用資源
- Kubernetes - 討論
Kubernetes - 金鑰
金鑰可以定義為用於儲存敏感資料(如使用者名稱和密碼)的 Kubernetes 物件,並對其加密。
在 Kubernetes 中建立金鑰有許多方法。
- 從 txt 檔案中建立。
- 從 yaml 檔案中建立。
從文字檔案中建立
要從文字檔案(例如使用者名稱和密碼)建立金鑰,我們首先需要將它們儲存在一個 txt 檔案中,然後使用以下命令。
$ kubectl create secret generic tomcat-passwd –-from-file = ./username.txt –fromfile = ./. password.txt
從 Yaml 檔案中建立
apiVersion: v1 kind: Secret metadata: name: tomcat-pass type: Opaque data: password: <User Password> username: <User Name>
建立金鑰
$ kubectl create –f Secret.yaml secrets/tomcat-pass
使用金鑰
一旦我們建立了金鑰,就可以在 Pod 或副本控制器中引用該金鑰,如下所示 −
- 環境變數
- 卷
作為環境變數
要將金鑰用作環境變數,我們將在 Pod Yaml 檔案的 spec 部分下使用 env。
env: - name: SECRET_USERNAME valueFrom: secretKeyRef: name: mysecret key: tomcat-pass
作為卷
spec: volumes: - name: "secretstest" secret: secretName: tomcat-pass containers: - image: tomcat:7.0 name: awebserver volumeMounts: - mountPath: "/tmp/mysec" name: "secretstest"
作為環境變數的金鑰配置
apiVersion: v1 kind: ReplicationController metadata: name: appname spec: replicas: replica_count template: metadata: name: appname spec: nodeSelector: resource-group: containers: - name: appname image: imagePullPolicy: Always ports: - containerPort: 3000 env: -----------------------------> 1 - name: ENV valueFrom: configMapKeyRef: name: appname key: tomcat-secrets
在上面的程式碼中,在 env 定義下,我們正在副本控制器中將金鑰用作環境變數。
金鑰作為卷掛載
apiVersion: v1 kind: pod metadata: name: appname spec: metadata: name: appname spec: volumes: - name: "secretstest" secret: secretName: tomcat-pass containers: - image: tomcat: 8.0 name: awebserver volumeMounts: - mountPath: "/tmp/mysec" name: "secretstest"
廣告