Kubernetes Secret(機密存儲)

Kubernetes Secret(機密存儲)

官方文檔:https://kubernetes.io/docs/concepts/configuration/secret/nginx

  • 加密數據並存放Etcd中,讓Pod的容器以掛載Volume方式訪問。
  • 應用場景:憑據

經過文本文件建立用戶密碼

一、建立用戶名密碼文件vim

echo -n 'admin' > ./username.txt
echo -n '1f2d1e2e67df' > ./password.txt

二、經過文件建立用戶名密碼api

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

三、查看建立用戶名密碼
kubectl get secretbash

NAME TYPE DATA AGE
db-user-pass Opaque 2 37s

四、查看詳情
kubectl describe secret db-user-pass編碼

Name: db-user-pass
Namespace: default
Labels: <none>
Annotations: <none>

Type: Opaque

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

經過yaml文件建立用戶名密碼

一、編碼用戶名密碼加密

echo -n 'admin' | base64
echo -n '1f2d1e2e67df' | base64

二、建立yaml文件 vim user.yamlspa

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

三、建立用戶名密碼code

kubectl create -f user.yaml

四、查看建立用戶
kubectl get secretblog

NAME TYPE DATA AGE
db-user-pass Opaque 2 5m42s
mysecret Opaque 2 18s

經過環境變量導入到容器中

一、建立yaml文件
vim secret-var.yaml文檔

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: nginx
    image: nginx
    env:
      # 環境變量名稱:用戶
      - name: SECRET_USERNAME
        valueFrom:
          # 選擇輸入secret用戶
          secretKeyRef:
            name: mysecret
            key: username
      # 環境變量名稱:密碼
      - name: SECRET_PASSWORD
        valueFrom:
          # 選擇輸入secret密碼
          secretKeyRef:
            name: mysecret
            key: password

二、建立容器

kubectl create -f secret-var.yaml

三、查看建立容器
kubectl get pods

NAME READY STATUS RESTARTS AGE
mypod 1/1 Running 0 23s

四、進入容器查看變量

kubectl exec -it mypod bash

root@mypod:/# echo $SECRET_USERNAME
admin
root@mypod:/# echo $SECRET_PASSWORD
1f2d1e2e67df

經過volume掛載用戶名密碼

一、建立yaml文件

vim secret-vol.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - name: foo
      mountPath: "/etc/foo"
      readOnly: true
  volumes:
  - name: foo
    secret:
      # 建立的secret
      secretName: mysecret

二、建立容器

kubectl create -f secret-vol.yaml

三、查看容器
kubectl get pod

NAME READY STATUS RESTARTS AGE
mypod 1/1 Running 0 46s

四、進入容器查看
kubectl exec -it mypod bash

root@mypod:/# ls /etc/foo/
password username
root@mypod:/# cat /etc/foo/password 
1f2d1e2e67dfroot@mypod:/# cat /etc/foo/username 
adminroot@mypod:/#
相關文章
相關標籤/搜索