【云原生 • Kubernetes】配置管理 - Secret ConfigMap

news/2024/5/18 16:01:05/文章来源:https://blog.csdn.net/weixin_53072519/article/details/127077819

在这里插入图片描述

本文导读

  • 一、机密配置抽象 Secret
    • 1. 认识 Secret
    • 2. Secret 的使用
      • (1) 创建 Secret 加密数据
      • (2) 将 Secret 以变量形式挂载到 pod 容器
  • 二、配置抽象 ConfigMap
    • 1. 认识 ConfigMap
    • 2. ConfigMap 的使用
      • (1) 创建配置文件
      • (2) 创建 ConfigMap
      • (3) 将 ConfigMap 以变量形式挂载到 pod 容器


一、机密配置抽象 Secret

Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。这样的信息可能会被放在 Pod 规约中或者镜像中。使用 Secret 意味着你不需要在应用程序代码中包含机密数据。由于创建 Secret 可以独立于使用它们的 Pod,因此在创建、查看和编辑 Pod 的工作流程中暴露 Secret 及其数据的风险较小。

1. 认识 Secret

Secret 用于 数据加密,并将它们存储到 etcd 当中,然后让 Pod 容器以挂载 Volume 的方式进行访问。一般情况下存储的数据并不是明文,而是会将它做一些编码或者加密。例如常见的 base64 就是一种编码方式。

明文:可以直接看懂的东西。

如下使用 base64 编码方式输出字符串 ‘majinjian’;

[root@master ~]# echo -n 'majinjian' | base64
bWFqaW5qaWFu
[root@master ~]# 

2. Secret 的使用

(1) 创建 Secret 加密数据

首先 vi secret.yaml 创建一个 Secret 加密数据(.yaml 文件),输入以下内容;

apiVersion: v1
kind: Secret
metadata: name: mysecret
type: Opaque
data: username: cm9vdA==password: cXdlcnR5dWlvcDE5OTkuLg==

如下:

在这里插入图片描述
创建成功后执行该 yaml 文件;

[root@master ~]# kubectl apply -f secret.yaml 

此时查看 secret,可以看到 mysecret 已创建成功;

在这里插入图片描述

(2) 将 Secret 以变量形式挂载到 pod 容器

vi secret-val.yaml 创建新的 yaml 文件 secret-val.yaml;

apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: nginximage: nginxenv:- name: SECRET_USERNAMEvalueFrom:secretKeyRef:name: mysecretkey: username- name: SECRET_PASSWORDvalueFrom:secretKeyRef:name: mysecretkey: password

其中:‘valueFrom’ 代表以变量形式挂载,挂载点就是我们上一步创建的 mysecret;

在这里插入图片描述
创建成功后执行该 yaml 文件;

[root@master ~]# kubectl apply -f secret-val.yaml 

此时查看节点中的 pod,等待 mypod 运行(为 running 状态即可);

在这里插入图片描述
最后进入容器查看变量是否有没有我们挂载的值;

[root@master ~]# kubectl exec -it mypod bash

使用 echo $变量名(如echo $SECRET_USERNAME)即可查看我们存储的变量值。

二、配置抽象 ConfigMap

ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时 Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigMap 会将环境配置信息和容器镜像分开来,便于应用配置的修改。但是 ConfigMap 并不提供保密或者加密功能。

1. 认识 ConfigMap

ConfigMap 类似于 Secret,区别在于 Secret 储存加密数据,而 ConfigMap 存储的是 不加密数据,而且存储过程也与 Secret 基本相同。

2. ConfigMap 的使用

提示:为了便于区分操作前先删除之前创建的 secret 和容器。

[root@master ~]# kubectl delete secret --all
[root@master ~]# kubectl delete Pod --all

(1) 创建配置文件

此处要创建的是 properties 文件 vi redis.properties,输入以下内容;

redis.host=127.0.0.1
redis.port=6379
redis.password=123456

(2) 创建 ConfigMap

[root@master ~]# kubectl create configmap redis-config --from-file=redis.properties 
configmap/redis-config created
[root@master ~]# 

此时查看 configmap(cm为它的简称),已创建成功;

在这里插入图片描述

(3) 将 ConfigMap 以变量形式挂载到 pod 容器

vi myconfig.yaml 创建配置文件 myconfig.yaml 文件,输入以下内容;

apiVersion: v1
kind: ConfigMap
metadata:name: myconfignamespace: default
data:special.level: infospecial.type: hello

创建成功后执行文件;

[root@master ~]# kubectl apply -f myconfig.yaml 
configmap/myconfig created

此时再次查看 ConfigMap,myconfig 也创建成功了;

在这里插入图片描述
vi config-var.yaml 创建挂载文件 config-var.yaml 文件,输入以下内容;

apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: busyboximage: busyboxcommand: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ]env:- name: LEVELvalueFrom:configMapKeyRef:name: myconfigkey: special.level- name: TYPEvalueFrom:configMapKeyRef:name: myconfigkey: special.typerestartPolicy: Never

创建成功后执行文件;

[root@master ~]# kubectl apply -f config-var.yaml 
pod/mypod created

最受通过日志查看容器,可打印出 ‘info hello’,挂载完成;

[root@master ~]# kubectl logs mypod
[root@master ~]# info hello

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

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

相关文章

如何保存el-pagination组件的分页状态。

一文细解如何保存组件的分页状态。 文章目录一文细解如何保存组件的分页状态。背景一、实现原理二、代码展示1.分页组件模板背景 使用element-plus的分页组件搭建页面的时候,经常会出现这样一种情况:分页为列表页,当从列表页点击某一项进入详…

HTTP协议4)----对于数据链路层的详细讲解

꧁ 大家好,我是 兔7 ,一位努力学习C的博主~ ꧂ ☙ 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步❧ 🚀 如有不懂,可以随时向我提问,我会全力讲解~💬 &…

Springboot2.x仿B站项目第五章查询Es和内容推荐功能实现笔记及源码

文章目录系统全局模块的开发1.系统全文搜索1.1docker 下安装ES以及kibana1.2 配置Es的相关的yaml和configuration1.3 ES全文检索需求视频投稿搜索查询2.观看记录的统计2.1观看视频的添加信息2.2查询观看记录3.用户视频推荐4.视频弹幕遮罩其他章节系统全局模块的开发 本章主要实…

嵌入式分享合集67

一、CAN的接口保护电路 在一个模块上,由于是中转的CAN,需要从两个不同的连接器上连接出去(这种情况是根据客户的需求而定的)。 一般的设计如图: 一般的,我们最多使用两个电压斜坡控制电容(C2和…

Windows如何生成公钥和私钥

Windows如何生成公钥和私钥 方法一)使用git命令 一. 首先安装git二. 桌面上右键 Git Bash Here三. 命令ssh-keygen -t rsa然后 一直enter 四. 将公钥放到服务器上就可以使用SSH链接了. 方法二)使用openssl生成公钥和私钥 参考链接:https://blog.csdn.net/cduoa/article/deta…

组播路由协议——PIM DM工作机制

目录 扩散、剪枝机制 嫁接机制 状态刷新机制 断言机制 采用“推(Push)”的方式转发组播报文并生成组播表,建立SPT(最短路径树)转发组播报文。它假定每条链路都有接收者,在每条链路上都直接推送组播流量…

大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业

🌩️ 精彩专栏推荐👇🏻👇🏻👇🏻 💂 作者主页: 【进入主页—🚀获取更多源码】 🎓 web前端期末大作业: 【📚HTML5网页期末作业 (1000套…

Oracle 常用的经典SQL查询

/*1、查看表空间的名称及大小*/ select t.tablespace_name, round(sum(bytes / (1024 * 1024)), 0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name d.tablespace_namegroup by t.tablespace_name; /*2、查看表空间物理文件的名称及大小*/ select…

vue3 模版语法

App.vue 注释掉首页的文本内容&#xff0c;只剩下对应的图标即可。 <div class"wrapper"><!-- <HelloWorld msg"You did it!day day up 自己更新" /> --></div></header><main><!-- <TheWelcome /> -->&…

“发展与治理”2022元宇宙共治大会成功举行

2022年9月24日下午&#xff0c;“发展与治理”2022元宇宙共治大会暨《元宇宙发展与治理》课题征求意见会、元宇宙产业委数字藏品发展研讨会议&#xff0c;在央链直播平台线上召开&#xff0c;本次会议汇聚众多高科技产业引领者和建设者&#xff0c;以及数权藏品众多流量平台共聚…

Navicat设置utf8mb4后保存emoji仍然报错的解决方法

一、前言 最近遇到一个问题&#xff0c;需要查库并导出报表&#xff1b; 由于报表比较特殊&#xff0c;程序没有实现&#xff0c;因此准备先查询生产库、复制为insert语句&#xff0c;然后在本地Navicat里执行、处理、再导出xls&#xff0c;这样快一些。 但是&#xff0c;没想…

SwiftUI AR教程之如何使用 SwiftUI 按钮在 RealityKit 中切换前后摄像头(教程含源码)

iOS AR 开发快速指南 如果您正在为 iOS 构建增强现实体验,您可能希望让您的用户能够在前置(又称“自拍”或“正面”)摄像头和后置(又称“世界侧”)摄像头之间切换。这是有关如何将此功能添加到您的应用程序的基本教程。 基本设置 首先,让我们从 Xcode 中的 Augmented …

Nginx系列之反向代理过程

nginx通过proxy模块对上游服务使用http/https协议进行反向代理&#xff0c;下图是反向代理处理过程 在读取客户端发送的请求时&#xff0c;如果proxy_request_bufferringon,那么读取完整的包体后再发送给后端服务&#xff0c;如果 proxy_request_bufferringoff&#xff0c;则是…

DDL操作表-查询和DDL操作表-创建

DDL操作表-查询 1.C(Create):创建 2.R(Retrieve):查询 3.U(Update):修改 4.D(Delete):删除 R(Retrieve):查询 查询某个数据库中所有的表名称show tables;查询表结构desc 表名; DDL操作表-创建 C(Create):创建 1.语法:create table 表名(列名  数据类型1,列…

指针初阶详解

目录序言地址指针是什么指针和指针变量为什么定义指针指针指针的大小类型指针的解引用指针-整数指针运算指针 - 指针指针比较野指针二级指针指针数组序言 指针这个模块是C语言里面比较难理解的的,学习成本倒是不高,就是有点费脑子.我们这里重点关注什么是指针和指针的用法.这篇…

Fast.ai 的新课来了,给你详细介绍 Stable Diffusion 原理

最近跟学生们学了个新词儿&#xff0c;叫做「双厨狂喜」。一般形容两个知名创作者合作出来的作品 ------ 例如视频或者直播等 ------ 很受大伙儿欢迎。这次&#xff0c;告诉你一个好消息&#xff0c;fast.ai 要和 Huggingface, Stability.ai&#xff08;Stable Diffusion 作者之…

[BJDCTF2020]EasySearch

解题&#xff1a; 进入环境只有 一个登录框&#xff0c;一般我的思路都是先用 万能密码登录一下&#xff0c;不行的话就扫源码 发现 index.php.swp 文件 <?phpob_start();//加密function get_hash(){$chars ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234…

PDF转word格式如果失败了,可以这样做

PDF是可以直接转成Word格式&#xff0c;方法也很简单&#xff0c;只需要把PDF另存为就可以了。 首先&#xff0c;在PDF的【文件】下选择【另存为】&#xff0c;然后选择新的保存路径。 出现新的对话框后&#xff0c;在【保存类型】那里选择【Word】格式&#xff0c;再点击保存…

连接打印机出现错误0X00000709怎么解决?

在使用打印机的时候&#xff0c;出现系统提示&#xff1a;操作无法完成&#xff08;错误0x00000709&#xff09;&#xff0c;再次检查打印机名称&#xff0c;并确保打印机已连接到网络。该怎么办呢&#xff1f;下面小编总结了这个问题的几种解决办法&#xff0c;总有一种适合你…

SpringCloud2——Nacos配置管理

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…