Secret Configmap

  1. 应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名,密码或者秘钥,讲这些信息直接保存在容器镜像中显然不合适,kubernetes提供的解决方案就是Secret

  2. Secret会以密文的方式存储数据,避免了直接在配置文件中保存敏感信息,Secret会以Volume的形式被mount到Pod,容器可通过文件的方式使用Secret中的敏感数据,此外,容器也可以环境变量的方式使用这些数据

  3. Secret可通过命令行或者yaml创建,比如希望Secret中包含如下信息:用户名admin,密码123456

  4. 创建Secret,有四种方法:

    1. 通过-- from-literal:kubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=123456,每个–from-literal对应一个信息条目
    2. 通过–from-file:echo -n admin > ./username echo -n 123456 > ./password .
      1. kubectl create secret generic mysecret --from-file=./username --from-file=./password
      2. 每个文件内容对应一个信息条目
    3. 通过–from-env-file
      1. cat << EOF > env.txt username=admin password=123456 EOF
      2. kubectl create secret generic mysecret --from-env-file=env.txt
      3. 文件env.txt中每行key=value对应一个信息条目
    4. 通过YAML配置文件
      1. 在这里插入图片描述

      2. 文件中的敏感数据必须是通过base64编码后的结果在这里插入图片描述

      3. 执行kubectl apply创建Secret在这里插入图片描述

  5. 查看Secret

    1. 通过kubectl get secret查看存在的secret在这里插入图片描述

    2. 显式有两个数据条目,通过kubectl describe secret查看条目的key在这里插入图片描述

    3. 如果还想查看Value,可以用kubectl edit secret mysecret在这里插入图片描述

    4. 然后通过base64将value反编码在这里插入图片描述

  6. 在Pod中使用Secret

    1. Pod可以通过Volume或者环境变量的方式使用Secret

    2. Volume方式

      1. 在这里插入图片描述

        1. 定义volume foo,来源为secret mysecret
        2. 将foo mount到容器路径/etc/foo。可指定读写权限为readOnly
      2. 创建Pod并在容器中读取Secret在这里插入图片描述

        1. Kubernetes会在指定的路径/etc/foo下为每条敏感数据创建一个文件,文件名就是数据条目的Key,这里是/etc/foo/username和/etc/foo/password,value则以明文存放在文件中
      3. 可以自定义存放数据的文件名,在这里插入图片描述

        1. 这时数据将分别存放在/etc/foo/my-group/my-username和/etc/foo/my-group-password中,

        2. 以volume方式使用的Secret支持动态更新,Secret更新后,容器中的数据也会更新

        3. 将password更新为abcdef,base64编码为YWJjZGVm在这里插入图片描述

        4. 更新Secret在这里插入图片描述

        5. 几秒钟后,新的password会同步到容器在这里插入图片描述

    3. 环境变量方式

      1. 通过Volume使用Secret,容器必须从文件读取数据,Kubernetes还支持通过环境变量使用Secret在这里插入图片描述

        1. 创建Pod并读取Secret在这里插入图片描述

        2. 通过环境变量SECRET_USERNAME和SECRET_PASSWORD,成功读取到Secret的数据

      2. 环境变量读取Secret很方便,但无法支撑Secret动态更新

  7. ConfigMap

    1. Secret可以为Pod提供密码,Token,私钥等敏感数据,对于一些非敏感的数据,比如应用的配置信息,则可以使用ConfigMap

    2. configMap的创建和使用方式与Secret类似,主要不同的是数据以明文的形式存放

    3. ConfigMap支持四种创建方式

      1. 通过–from-literal
        1. kubectl create configmap myconfigmap --from-literal=config1=xxx–from-literal=config2=yyy
        2. 每个–from-literal对应一个信息条目
      2. 通过–from-file
        1. echo -n xxx > ./config1
        2. echo -n yyy > ./config2
        3. kubectl create configmap myconfigmap --from-file=./config1 --from-file=./config2
        4. 每个文件内容对应一个信息条目
      3. 通过–from-env-file
        1. cat < env.txt config1=xxx config2=yyy EOF
        2. kubectl create configmap myconfigmap --from-env-file=env.txt
        3. 文件env.txt中每行key=value对应一个信息条目
      4. 通过YAML配置文件,文件中的数据直接以明文输入
        1. 在这里插入图片描述
    4. 与Secret一样,Pod也可以通过Volume或者环境变量的方式使用Secret

      1. Volume方式在这里插入图片描述

      2. 环境变量方式在这里插入图片描述

      3. 大多数情况下,配置信息都是以文件形式提供,所以在创建configmap时通常采用–from-file或YAML方式,读取configmap时通常采用Volume方式,比如给Pod传递如何记录日志的配置信息

        1. 在这里插入图片描述

        2. 可以采用–from-file形式,将其保存在文件logging.conf中,然后执行命令

          1. kubectl create configmap mycnfigmap --from -file=./logging.conf
        3. 如果采用YAML配置文件

          1. 在这里插入图片描述

          2. 创建并查看ConfigMap在这里插入图片描述

          3. 在Pod中使用此ConfigMap在这里插入图片描述

            1. 在volume中指定存放配置信息的文件相对路径为myapp/logging.conf
            2. 将volume mount到容器的/etc目录
          4. 创建Pod并读取配置信息在这里插入图片描述

          5. 配置信息已经保存到/etc/myapp/logging.conf文件中,Volume形式的Configmap也支持动态更新

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

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

相关文章

tauri开发配置文件和文件夹访问路径问题

文件夹没权限&#xff1a;Unhandled Promise Rejection: path not allowed on the configured scope: /Users/song/Library/Application Support/com.pakeplus.app/assets/default.png 没有文件夹&#xff0c;需要先创建&#xff1a;Unhandled Promise Rejection: path: /Users…

数据结构与算法——Java实现 24.中缀表达式转后缀

目录 中缀表达式转后缀表达式 引言 思路 代码 正因为我有能力跨越&#xff0c;考验才会降临 —— 24.9.28 中缀表达式转后缀表达式 引言 Java中的编译器会将我们编写代码中的中缀表达式转化为后缀表达式&#xff0c;然后编译好输出程序 思路 遍历中缀表达式&#xff0c;如果遇…

javaweb之会话管理

Cookie&#xff1a; 1. Cookie 的定义 Cookie 是存储在用户浏览器中的小块数据&#xff0c;通常由服务器发送并存储&#xff0c;以便在用户浏览器和服务器之间保持会话状态。每次用户发送请求时&#xff0c;浏览器都会自动附带相应的 Cookie&#xff0c;允许服务器辨识用户。…

JSR 303学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程&#xff1a;封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

低代码可视化-UniApp二维码可视化-代码生成器

市面上提供了各种各样的二维码组件&#xff0c;做了一简单的uniapp二维码组件&#xff0c;二维码实现依赖davidshimjs/qrcodejs。 组件特点 跨浏览器支持&#xff1a;利用Canvas元素实现二维码的跨浏览器兼容性&#xff0c;兼容微信小程序、h5、app。 无依赖性&#xff1a;QR…

基于SpringBoot的新冠检测信息管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 国内外在该方向的研究现状及分析 新型冠状病毒肺炎疫情发生以来&#xff0c;中国政府采取积极的防控策略和措施&#xff0c;经过两个多月的不懈努力&#xff0c;有效控制了新发病例的増长&#xff0c;本地传播已经趋于完全控制…

JavaWeb图书借阅系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 login.jsp 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优…

Elasticsearch学习笔记(1)

初识 Elasticsearch 认识和安装 Elasticsearch 是由 Elastic 公司开发的一套强大的搜索引擎技术&#xff0c;属于 Elastic 技术栈的一部分。完整的技术栈包括&#xff1a; Elasticsearch&#xff1a;用于数据存储、计算和搜索。Logstash/Beats&#xff1a;用于数据收集。Kib…

运放模块的选型参数

增益带宽积-----尤其重要&#xff1a; GWB 增益*带宽 压摆率&#xff1a; 高带宽的运放一般都是电流型运放&#xff1a; 注意压摆率计算公式里面的Vopp参数是放大后的电压最大值&#xff1a; 参数&#xff0c;布局一定参考数据手册&#xff01;&#xff01;&#xff01;&…

关于AI副业,能说的都说了(最核心3大赛道、机会、方向)

AI&#xff0c;是生产力工具~ AI&#xff0c;也是焦虑和痛点 一直有小伙伴在问AI副业的事儿&#xff0c;之前也分享过很多。 但是&#xff0c;很多人对AI于副业的作用&#xff0c;过于表面和形式&#xff0c;所以&#xff0c;狂金来叨叨一下最核心的3大赛道&#xff0c;希望…

本地部署ollama大模型

方案一 1. 安装 Docker Ollama 大模型通常是通过 Docker 来运行的&#xff0c;因此首先需要确保本地已经安装了 Docker。如果还没有安装 Docker&#xff0c;可以参考以下安装步骤&#xff1a; Mac 用户&#xff1a; 前往 Docker 官网 下载并安装 Docker Desktop。安装完成后&…

【C语言】动态内存管理:malloc、calloc、realloc、free

本篇介绍一下C语言中的malloc/calloc/realloc。 使用这些函数需要包含头文件<stdlib.h>。malloc/calloc/realloc申请的空间都是 堆区的。 1.malloc和free 1.1 malloc C语言提供了一个动态内存开辟的函数malloc&#xff0c;函数原型如下。 void* malloc(size_t size);…

确保架构与业务一致性和合规性的成功转型之路:理论与实践的全面解读

架构与业务一致性在数字化转型中的重要性 在数字化转型的过程中&#xff0c;企业架构与业务的一致性是确保技术变革能够真正推动业务发展的关键因素之一。企业架构不仅要支持业务需求&#xff0c;还需要确保与行业标准、法律法规的合规性。通过将理论转化为实践&#xff0c;企…

渗透测试--文件上传常用绕过方式

文件上传常用绕过方式 1.前端代码&#xff0c;限制只允许上传图片。修改png为php即可绕过前端校验。 2.后端校验Content-Type 校验文件格式 前端修改&#xff0c;抓取上传数据包&#xff0c;并且修改 Content-Type 3.服务端检测&#xff08;目录路径检测&#xff09; 对目…

无人机专业实操重要性凸显,组装、调试、改装技术详解

无人机专业的实操性在当今技术飞速发展的背景下显得尤为重要&#xff0c;这不仅体现在无人机的日常应用上&#xff0c;还贯穿于无人机的组装、调试及改装等关键环节中。以下是对这些技术环节的详细解析&#xff1a; 一、无人机组装技术 无人机的组装是无人机技术的基础&#x…

mysql8.0安装后没有my.ini

今天安装mysql后想改一下配置文件看了一下安装路径 C:\Program Files\MySQL\MySQL Server 8.0 发现根本没有这个文件查看隐藏文件也没用查了之后才知道换地方了和原来的5.7不一样 新地址是C:\ProgramData\MySQL\MySQL Server 8.0 文件也是隐藏的记得改一下配置

Json-Rpc框架(Muduo库快速上手)

阅读导航 引言一、Muduo库简介二、Muduo库常见接口1. TcpServer类基础介绍2. EventLoop类基础介绍3. TcpConnection类基础介绍4. TcpClient类基础介绍5. Buffer类基础介绍 三、Muduo库使用示例⭕英译汉服务器⭕英译汉客户端 引言 在上一篇文章中&#xff0c;我们简要介绍了在项…

SpringBoot教程(安装篇) | Docker Desktop的安装(Windows下的Docker环境)

SpringBoot教程&#xff08;安装篇&#xff09; | Docker Desktop的安装&#xff08;Windows下的Docker环境&#xff09; 前言如何安装Docker Desktop资源下载安装启动&#xff08;重点&#xff09;加入汉化包 设置加速镜像 前言 如果你在 Windows 上&#xff0c;确保 Docker …

Java实现找色和找图功能

某天&#xff0c;张三接到一个任务需求&#xff0c;将一个Excel表格里面的员工信息&#xff0c;录入到员工系统里面&#xff0c;由于数据量非常大&#xff0c;操作起来巨慢。经过一段时间的操作和观察&#xff0c;他发现这种操作&#xff0c;非常有规律&#xff0c;基本就是一些…

huggingface的transformers与datatsets的安装与使用

目录 1.安装 2.分词 2.1tokenizer.encode&#xff08;&#xff09; 2.2tokenizer.encode_plus &#xff08;&#xff09; 2.3tokenizer.batch_encode_plus&#xff08;&#xff09; 3.添加新词或特殊字符 3.1tokenizer.add_tokens&#xff08;&#xff09; 3.2 token…