zoukankan      html  css  js  c++  java
  • Kubernetes之Secret认识

    Secret存在的意义

    • Secret的存在是为了解决密码、token、密钥等敏感信息数据的配置问题

    • 我们不再将这些敏感数据暴露到镜像或者pod中去,而是存放在etcd中

    • 镜像或者pod可以数据卷Volume或者环境变量的方式对进行读取访问

    数据初始化

    • base64得到用户名和密码

    • 创建资源编排yaml

      • secret.yaml [提取码:6666]

      • 账号和密码我们使用刚刚我们base64加密的来的密文

    创建Secret加密数据

    • kubectl create -f secret.yaml

    Pod以环境变量名方式访问

    定义pod的资源编排文件

    • secret-val.yaml [提取码:6666]

      • 这个pod如下左图所示,想读取secret中的数据需要配置secret相关的信息

    • env:表示读取secret中的数据载入到环境变量中

    • valueFrom:其下的属性都是用来定位敏感数据的

      • name:定位元数据名称空间

      • key:定位值

    • 上面的pod信息表示,从名为mysecret的元数据空间中取得key为username的值value,将这个value赋值给SECRET_USERNAME,并在环境变量中存在

    • password亦是同理

    部署yaml,测试效果

    • 可以发现,我们在环境变量中成功取得了在Secret中定义的加密数据

    Pod以挂载Volume方式访问

    定义pod的资源编排文件

    • secret-vol.yaml [提取码:6666]

      • 这个pod如下左图所示,想读取secret中的数据需要配置数据卷的相关信息

    • 将Secret挂载到了数据卷Volume中

    • 然后在spec > containers中

      • 指定了会被容器挂载的数据卷的名称为:foo

      • 指定了被容器挂在的数据卷的路径

      • 设置了数据卷的读写模式,默认值为读写模式

      • 也就是说,容器挂载数据卷,数据卷挂载Secret,然后一条通道打通,在Pod中访问Secret中的数据

    部署yaml,测试效果

    • 可以发现,我们已经在pod内部读取到了数据卷中的数据

    .

  • 相关阅读:
    Mysql源码学习——Connection Manager
    MySQL源码学习——MDL字典锁
    Mysql源码学习——用户认证原理与实现
    Mysql源码学习——Thread Manager
    你真的了解如何登录MySQL么?
    CSDN密码库窥视各大数据库性能
    Mysql源码学习——没那么简单的Hash
    How to use NoSQL in MySQL
    Oracle的聚簇也Hold不住了
    Python 错误解决方法
  • 原文地址:https://www.cnblogs.com/msi-chen/p/14336723.html
Copyright © 2011-2022 走看看