zoukankan      html  css  js  c++  java
  • 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:/#
  • 相关阅读:
    hi.baidu.com 百度流量统计
    Autofac is designed to track and dispose of resources for you.
    IIS Manager could not load type for module provider 'SharedConfig' that is declared in administration.config
    How to create and manage configuration backups in Internet Information Services 7.0
    定制swagger的UI
    NSwag在asp.net web api中的使用,基于Global.asax
    NSwag Tutorial: Integrate the NSwag toolchain into your ASP.NET Web API project
    JS变量对象详解
    JS执行上下文(执行环境)详细图解
    JS内存空间详细图解
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/11424286.html
Copyright © 2011-2022 走看看