【Kubernetes资源篇】Secret加密数据配置管理详解

文章目录

    • 一、Secret加密配置理论知识
      • 1、Secret是什么?
      • 2、Secret和configMap的区别
      • 3、Secret的参数和类型
    • 二、实践:使用Secret进行加密
      • 1、方式一:环境变量方式引入
      • 2、方式二:卷挂载方式引入

一、Secret加密配置理论知识

1、Secret是什么?

上篇文章讲解了 ConfigMap资源ConfigMap配置管理中心详解,用于存放明文非加密数据,比如程序的配置文件等信息,ConfigMap并不能实现加密,如果存放一下token、密码、秘钥等敏感信息我们要使用Secret类型来进行加密。

2、Secret和configMap的区别

  • ConfigMap:用于存放文明非加密配置信息。
  • Secret:用于存放加密数据,比如密码、token等信息。

3、Secret的参数和类型

Secret三种可选参数:

  • generic:通用类型,常于存储密码数据。
  • tls:用于存储私钥和证书。
  • docker-registry:用于存放docker仓库的认证信息。

Secret三种类型:

  • Service Account:用于被 serviceaccount 引用。serviceaccout 创建时 Kubernetes 会默认创建对应的 secret。Pod 如果使用了 serviceaccount,对应的 secret 会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中。
  • Opaque:base64编码格式的Secret,用来存储密码、秘钥等。可以通过base64 --decode解码获得原始数据,因此安全性弱
  • kubernetes.io/dockerconfigjson:用来存储私有docker registry的认证信息。

二、实践:使用Secret进行加密

1、方式一:环境变量方式引入

首先先针对 username、password 值进行加密:

echo admin|base64
echo NTQ34tg*@19VF-AdmiN|base64

创建名为var-secret 的Secret

cat varSecretConfig.yaml ---
apiVersion: v1 
kind: Secret
metadata:name: var-secret
type: Opaque          # 指定加密方式
data:username: YWRtaW4K  # 值是加密后的password: TlRRMzR0ZypAMTlWRi1BZG1pTgo=

使用busybox镜像创建Deployment资源,并引入Secret

cat vardeploy.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:name: vardemo
spec:replicas: 1selector:matchLabels:type: vartemplate:metadata:labels:type: varspec:containers:- name: vardemoimage: busybox:1.28.0imagePullPolicy: IfNotPresentcommand: ["/bin/sh", "-c", "sleep 36000"]env:- name: passwordvalueFrom:secretKeyRef:name: var-secretkey: password- name: usernamevalueFrom:secretKeyRef:name: var-secretkey: username

执行YAML文件:

kubectl apply -f varSecretConfig.yaml 
kubectl apply -f vardeploy.yaml 

查看创建资源状态:

kubectl get pod -l type=var
kubectl get secret var-secret
kubectl describe secret var-secret

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ct3A6Giw-1688270847294)(D:\MD归档文档\IMG\image-20230702114038298.png)]

进入容器查看变量,是否成功引入:

kubectl exec -it vardemo-5cf58dd664-vnv5q -- /bin/shecho $username
admin
echo $password
NTQ34tg*@19VF-AdmiN

2、方式二:卷挂载方式引入

创建名为volume-secret 的Secret

cat volumeSecretConfig.yaml 
---
apiVersion: v1 
kind: Secret
metadata:name: volume-secret
type: Opaque
data:username: YWRtaW4Kpassword: TlRRMzR0ZypAMTlWRi1BZG1pTgo=

创建deployment,引入secret

cat volumedeploy.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:name: volumedemo
spec:replicas: 1selector:matchLabels:type: volumetemplate:metadata:labels:type: volumespec:volumes:- name: volume-secretsecret:secretName: volume-secret  # 定义挂载卷containers:- name: volumedemoimage: busybox:1.28.0imagePullPolicy: IfNotPresentcommand: ["/bin/sh", "-c", "sleep 36000"]volumeMounts:- name: volume-secretmountPath: /tmp readOnly: true

执行YAML文件:

kubectl apply -f volumeSecretConfig.yaml
kubectl apply -f volumedeploy.yaml	

进入容器查看:

kubectl exec -it volumedemo-6dc47cff57-qstv4 -- /bin/shcat /tmp/password 
NTQ34tg*@19VF-AdmiNcat /tmp/username 
admin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8775.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VM虚拟机端口映射接收CS弹反木马

VM虚拟机端口映射接收CS弹反木马 1. 前言1.1. 前期准备1.2. 整体思路 2. 整体操作流程2.1. 虚拟机配置2.2. WIFI路由器设置2.3. CS设置2.3.1. 创建本地监听器2.3.2. 创建生成木马监听器2.3.3. 创建反弹木马2.3.4. 查看效果 1. 前言 在日常的对客户的内网进行渗透的时候&#xf…

爬虫入门指南(8): 编写天气数据爬虫程序,实现可视化分析

文章目录 前言准备工作爬取天气数据可视化分析完整代码解释说明 运行效果完结 前言 天气变化是生活中一个重要的因素,了解天气状况可以帮助我们合理安排活动和做出决策。本文介绍了如何使用Python编写一个简单的天气数据爬虫程序,通过爬取指定网站上的天…

【论文阅读】一种利用地理实体目标特征的道路场景激光点云配准方法

目录 1 引 言2 道路场景点云配准方法2.1 车载点云分段2.2 配准基元的选取2.3 多尺度关键点的提取2.4 渐进式配准 3 实验与分析3.1 实验数据3.2 关键点提取结果3.3 配准结果 4 结论5 参考文献 摘 要 针对车载移动测量系统不同时期获取的道路场景点云位置一致性差、车载激光点云与…

Windows环境部署MySQL_5.7的安装、测试连接以及卸载全过程实操手册

前言: 前面记录了双环境的oracle的安装卸载及相关测试评估,这里记录下 MySQL5.7社区免费版的部署手册。 什么是 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle 公司。MySQL 是一种关系型数…

【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)

一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致问题分析) 数据不一致的原因逻辑失败导致的数据不一致物理失败导致的数据不一致 数据一致性的解决方案消费消息异步删除缓存主要流程如下图所示 订阅Binlog利用队列…

盘口策略 | 交易中最重要的是什么?

量化策略开发,高质量社群,交易思路分享等相关内容 『正文』 ˇ 交易中最重要的是什么? 当然是Timing啊~~~ “时机是这个世界上最难得到,又最容易失去的东西”夫难得而易失者,时也;时至而不旋踵者,机也,故圣人常顺时…

VScode中的插件

开启VScode中最简单的内部浏览器 - 可以访问外网 - Browser Preview 插件安装: 插件使用:由下角 - 状态栏 - VS Browser按钮 live sass compiler-vscode插件将scss编译为css live sass compiler是VSCode扩展,可以实时地将SASS / SCSS文件…

【uniapp】学习之【生命周期】

uniapp生命周期 uni-app框架的生命周期分为两种 : 应用中的生命周期 和 页面内的生命周期 uni-app 应用生命周期 uni-app 页面生命周期

node.js使用nodemailer发送阿里云企业邮箱的邮件

百度一搜就能搜到各种博客例子,但是有个问题:有些参数写的不明不白的,我在发送的时候总是报错 后面看到了一篇博客: 基于nodemailer使用阿里云企业邮箱发送邮件(526错误的解决) 注意几点: …

智能汽车时代,产业如何“软硬兼施”

摘要: 智能汽车时代,以车用芯片、基础软件为代表的卡脖子关键技术,牵动着国内整个汽车供应链的安全。“软硬兼施”正成为从企业到汽车全行业的共同重大行动。 汽车产业链、供应链安全问题近两年已经引起全行业前所未有的关注。进入智能汽车时…

Nginx负载均衡、虚拟主机

目录 常用的6种负载均衡算法 轮询算法(round robin)默认 权重(weight) 响应时间(fair) 连接数(least_conn) IP_hash url_hash(第三方) 开发优选:一致性哈希 安装步骤: 虚拟主机 常用的6种负载均衡算法 轮询算法(round robin)默认 轮询方式&a…

uniapp 移动端 后台返回数据流 查看PDF

使用步骤&#xff1a; 1.官网下载地址pdf.js 2.在项目的根目录新建hybrid文件夹&#xff0c;将下载的pdf.js压缩包解压后&#xff0c;复制到hybrid下的html文件夹中 3.在page文件夹下新建一个filePreview.vue页面&#xff0c;页面代码如下&#xff1a; <template><…