• Kubernetes Secret(机密存储)


    Kubernetes Secret(机密存储)

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

    • 加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。
    • 应用场景:凭据

    通过文本文件创建用户密码

    1、创建用户名密码文件

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

    2、通过文件创建用户名密码

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

    3、查看创建用户名密码
    kubectl get secret

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

    4、查看详情
    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文件创建用户名密码

    1、编码用户名密码

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

    2、创建yaml文件 vim user.yaml

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

    3、创建用户名密码

    kubectl create -f user.yaml

    4、查看创建用户
    kubectl get secret

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

    通过环境变量导入到容器中

    1、创建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

    2、创建容器

    kubectl create -f secret-var.yaml

    3、查看创建容器
    kubectl get pods

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

    4、进入容器查看变量

    kubectl exec -it mypod bash

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

    通过volume挂载用户名密码

    1、创建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

    2、创建容器

    kubectl create -f secret-vol.yaml

    3、查看容器
    kubectl get pod

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

    4、进入容器查看
    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:/#
  • 相关阅读:
    Android 关于屏幕适配
    android 数据存储之SharePreference 的几种方式
    Android多项目依赖在Eclipse中无法关联源代码的问题解决 Ctril 点不进去的解决方法
    android onIntent 是什么东西
    Android一次退出所有Activity的方法(升级版)
    Android 一次退出所有activity的方法
    android 获取屏幕尺寸
    自定义view(自定义view的时候,三个构造函数各自的作用)
    Android应用自动更新功能的实现!!!
    android实现透明和半透明效果
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/11424286.html
Copyright © 2020-2023  润新知