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

news2024/11/16 5:32:37

文章目录

    • 一、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: 1
  selector:
    matchLabels:
      type: var
  template:
    metadata:
      labels:
        type: var
    spec:
      containers:
      - name: vardemo
        image: busybox:1.28.0
        imagePullPolicy: IfNotPresent
        command: ["/bin/sh", "-c", "sleep 36000"]
        env:
        - name: password
          valueFrom:
            secretKeyRef:
              name: var-secret
              key: password
        - name: username
          valueFrom:
            secretKeyRef:
              name: var-secret
              key: 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/sh

echo $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: YWRtaW4K
  password: TlRRMzR0ZypAMTlWRi1BZG1pTgo=

创建deployment,引入secret

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

执行YAML文件:

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

进入容器查看:

kubectl exec -it volumedemo-6dc47cff57-qstv4 -- /bin/sh

cat /tmp/password 
NTQ34tg*@19VF-AdmiN

cat /tmp/username 
admin

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

西安石油大学Python期末复习

Python期末复习 一、单选题 1. Python语言属于(C) A.机器语言 B.汇编语言 C.高级语言 D.以上都不是 2.Python 解释器环境中,用于表示上一次运算结果的特殊变量为(B) A. : B. _ C. > D.# 3.为了给整型变量x、y、z赋初值10&#xff0c…

Codeforces Round 868 (Div. 2) F. Random Walk(树上期望)

题目 n(n<2e5)个点的树&#xff0c; 从起点s出发&#xff0c;每次等概率选择一条边&#xff0c;随机游走到相邻点 若走到t&#xff0c;则停止&#xff0c;问每个点经过的期望次数&#xff0c;答案对998244353取模 思路来源 DLUT_Zeratul讲解 题解 需要分成三部分考虑…

Spring面试题--Spring中的循环引用(循环依赖)

我们以上述代码为例分析一下死循环产生的过程 为什么A是半成品呢&#xff1f; 如果熟悉bean的生命周期&#xff0c;那么在实例化对象A的时候&#xff0c;首先去调用的是构造函数&#xff0c;像是依赖注入还有接口的实现重写什么的&#xff0c;还有后置处理器&#xff0c;初始化…

【笔记】微机原理及接口技术3 -- 中断技术与DMA控制器

目录 中断技术中断概述中断处理过程 可编程定时器与计数器DMA 控制器8237A 结构工作方式工作时序 中断技术 中断概述 中断的流程是&#xff1f; CPU 正在执行进程 A此时外部或者内部中断请求发生&#xff0c;CPU 响应中断进程 A 暂时中断执行&#xff0c;转而运行中断服务程序…

华为OD机试真题 Python 实现【核酸检测人员安排】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行核酸检测筛查。 每名采样员的效率不同&#xff0c;采样效率为N人/小时。 由于外界变化&…

本地springboot项目上传到gitee

1.在gitee上新建一个仓库&#xff1a; 创建后可以拿到仓库地址&#xff1a;https://gitee.com/ouyangshuiming/linux_test.git 2. 选中 创建git仓库 3. 4.最后一步&#xff1a; 一定记得这里要写上一段话&#xff0c;才能成功提交&#xff1a;比如git 提交远程库 最后刷新…

MySQL的Join

1.Join用法 Join连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。 内连接又叫等值连接,此时的inner可以省略。 USING语句 MySQL中连接SQL语句中,ON子句的语法格式为:table1.column_name = table2.column_name。当模式设计对联接表的列采用了相同的命名样…

React hooks文档笔记(四) useRef

useRef 当想让组件记住一些信息&#xff0c;又不想触发新的渲染&#xff0c;可以使用ref&#xff1a;总是返回同一个对象。 1. state 和 refs 的比较 refs&#xff08;普通的 JavaScript 对象&#xff09; state 更改时不触发重新渲染 更改时触发重新渲染 可变的——修改/…

复现基于unet的眼底血管的医学图像分割项目

代码及数据集&#xff1a; MedicalImageSegmentation: 复现一个医学图像分割的项目 - Gitee.com xin麒/MedicalImageSegmentation - 码云 - 开源中国 (gitee.com) 两个都可以&#xff0c;差不多的&#xff08;要不就使用第二个吧&#xff0c;第二个后续都会继续更新&#xf…

【JUC-1】java多线程线程基础知识

线程创建方式 继承Thread类.实现Runable接口.实现Callable接口. Runable/Callable接口的实现, 都是重写其中的run/call方法, 实现任务逻辑, 再由线程执行器(可以是Thread类,也可以是线程池)并发执行run/call的逻辑. 而Thread类中的包含start方法, 可以控制线程启动,执行任务…

关于最小生成树

最小生成树问题&#xff0c;常用于将所有顶点连通的最大最小代价。比如十个城市去修路&#xff0c;不同成熟时之间修路的代价不同&#xff0c;让你找一个方案可以满足每个城市之间互相连通并且代价最小。 解决这个问题有两个算法&#xff0c;Prim算法和Kruskal算法。不同的是&a…

安装和配置nginx(含https)

文章目录 安装Nginx配置单独的配置&#xff1a;https配置 nginx为什么可以处理高并发 安装Nginx sudo yum update sudo yum install epel-release sudo yum install nginx sudo systemctl start nginx安装好后可以打开自己的域名 看一下默认的页面 配置 具体参考Link 位置 …

香港大学推出创新科技教育基金,拟支持Web3和生成式AI等领域教学

区块链技术是近年来备受关注的领域之一,其应用范围已经涵盖了金融、医疗、物流等众多行业。而随着区块链技术的不断发展和完善&#xff0c;越来越多的企业和机构开始将其应用到实际生产和业务中。作为其中一个重要的应用领域&#xff0c;金融领域也成为了区块链技术的重要应用场…

CTF加密解密—CRYPTO—easyrsa1

0x00 考察知识点 CTF 加解密合集&#xff1a;CTF 加解密合集 本道题实际上是在考察对RSA算法的练度问题&#xff0c;已知n&#xff0c;需要将n拆解为两个质数。 工具&#xff1a; http://www.factordb.com/index.php &#xff08;在线分离&#xff09; 0x01 题目 e 6553…

青岛大学_王卓老师【数据结构与算法】Week03_11_线性表的链式表示和实现11_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c;另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–…

f(x)*g(x)的问题——C的缺陷

整理一道颇具争议的题目 #include<stdio.h> #define Mul(x,y) x*y int main() { int a1,b2,c3; printf("%d",Mul(ab,bc)); }关于这道题目&#xff0c;根据不同的编译器&#xff0c;答案会出现两种答案 11和14&#xff0c;见下面&#xff1a; 关于dev C: 关于…

【前端面试手册】CSS系列-回流与重构

本专栏收录于前端面试手册-CSS系列如果该文章对您有帮助还希望你能点一个小小的订阅&#xff0c;来增加博主创作的动力✍&#x1f3fb;话不多说开始进入正题 回流和重构在前端CSS中是一个常见的问题&#xff0c;那么你对回流何重构有哪些了解呢&#xff1f; 一、什么场景下会触…

Vulnhub: EvilBox:One靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.130 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 secret目录爆破 feroxbuster -k -d 1 --url http://192.168.111.130/secret/ -w /opt/zidian/SecLists-2022.2/Disco…

【深度学习推荐系统 工程篇】二、从TF-Serving看生产环境的模型推理服务

前言 模型训练完成后&#xff0c;到在线部署是其所必须要做的一步&#xff0c;伴随模型结构复杂/算力增加&#xff0c;打造低延时/低资源占用的模型预测服务是模型上线的关键&#xff1b; tensorflow 很早就开源了tf-serving&#xff08;代码连接&#xff1a;https://github.…

Pygame中获取键盘按键的方法

1 事件与队列 在Pygame中&#xff0c;将用户对游戏的操作叫做“事件”。键盘按键是一种事件&#xff0c;鼠标点击和游戏手柄的输入也是一种事件。在Pygame的子模块locals中&#xff0c;对这些事件进行了定义。当用户通过键盘、鼠标或者游戏手柄对游戏进行操作后&#xff0c;产…