前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 1.19.0——密码管理

Kubernetes 1.19.0——密码管理

原创
作者头像
gz_naldo
修改2020-09-24 14:32:01
1.6K1
修改2020-09-24 14:32:01
举报
文章被收录于专栏:CloudComputingCloudComputing

创建secret

使用MySQL创建一个pod出来

这里直接显示出密码redhat,并不安全
这里直接显示出密码redhat,并不安全
代码语言:javascript
复制
Secret有三种类型: 
Opaque:base64编码格式的Secret,用来存储密码、密钥等;但数 
据也通过base64 –decode解码得到原始数据,所有加密性很弱。 
kubernetes.io/dockerconfigjson:用来存储私有docker registry的认证 
信息。 
kubernetes.io/service-account-token: 用于被serviceaccount引用。 
serviceaccout创建时Kubernetes会默认创建对应的secret。Pod如果 
使用了serviceaccount,对应的secret会自动挂载到Pod目录 
/run/secrets/ kubernetes.io/serviceaccount中。

通过查询help将创建secret的命令复制出来并成功创建
通过查询help将创建secret的命令复制出来并成功创建
通过 kubectl describe secrets查看其属性,这里表示k1和k2都有7个字节
通过 kubectl describe secrets查看其属性,这里表示k1和k2都有7个字节
通过kubectl get secrets mysecret1 -o yaml获取值,被Base64编码后的值
通过kubectl get secrets mysecret1 -o yaml获取值,被Base64编码后的值

可用echo xxxx | base64 -d进行解码,这里不作演示

也可以通过file文件的方式来创建,但是相对来说不如前一种命令行便捷
也可以通过file文件的方式来创建,但是相对来说不如前一种命令行便捷
还可以通过env的方式创建,但实际还是不如第一种命令行来的方便
还可以通过env的方式创建,但实际还是不如第一种命令行来的方便
还可以通过yaml文件的方式进行创建
还可以通过yaml文件的方式进行创建
直接通过kubectl delete secrets 名字进行删除
直接通过kubectl delete secrets 名字进行删除

使用secret

以卷的方式来挂载

主要用于传递配置文件

会将secret下的k1和k2当成两个文件写到pod中挂载的目录/xx下
会将secret下的k1和k2当成两个文件写到pod中挂载的目录/xx下
代码语言:javascript
复制
创建了2个文件有何意义?

由上两张图可知,也可以将文件传递至pod的目录下
由上两张图可知,也可以将文件传递至pod的目录下
代码语言:javascript
复制
那如果只想传递一个文件呢?

只需对yaml稍加改动,添加subPath字段
只需对yaml稍加改动,添加subPath字段
现在将pod里面的nginx的配置文件拷贝出来,作一些修改,添加一些注释
现在将pod里面的nginx的配置文件拷贝出来,作一些修改,添加一些注释
修改一下yaml,用刚创建的myconf,将修改后的nginx.conf传递至pod并挂载到mountPath
修改一下yaml,用刚创建的myconf,将修改后的nginx.conf传递至pod并挂载到mountPath
成功传递
成功传递
代码语言:javascript
复制
如果我们下载一个镜像,里面的配置文件不满足我们需求,那我们可以用以上方法重新定义配置文件然后通过secret方式传递过去

以变量的方式来挂载

给pod传递变量

通过修改配置配件可以引用mysecret1中的变量
通过修改配置配件可以引用mysecret1中的变量
因为k1的值我们事先知道是redhat1,这里通过valueFrom的引用登录成功
因为k1的值我们事先知道是redhat1,这里通过valueFrom的引用登录成功

configmap

还可通过configmap的形式创建
还可通过configmap的形式创建
还可通过configmap的形式创建
还可通过configmap的形式创建
通过编写配置文件configMap也成功将变量传递至pod指定目录下
通过编写配置文件configMap也成功将变量传递至pod指定目录下
代码语言:javascript
复制
也可以将自己修改的配置文件传递过去,方法同前面nginx一样,这里不作演示

由上两张图看出,这里通过configMap传递密码,效果也是一样的
由上两张图看出,这里通过configMap传递密码,效果也是一样的
代码语言:javascript
复制
总结:
Secret和configMap用法基本类似,但是对于configMap来说都是以明文的方式存储
对于secret都是经过了base64编码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建secret
  • 使用secret
    • 以卷的方式来挂载
      • 以变量的方式来挂载
        • configmap
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档