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,一经查实,立即删除!

相关文章

极狐GitLab 17.4 重点功能解读【四】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

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;允许服务器辨识用户。…

亚信安慧AntDB基于操作符的隐式转换

背景 在新一代信息技术创新应用的大背景下&#xff0c;为了降低用户使用成本、加快改造速度&#xff0c;很多数据库产品都在做Oracle兼容性适配。AntDB作为一款成熟、稳定的国产数据库&#xff0c;高度兼容Oracle语法。本文将主要介绍AntDB数据库基于操作符的隐式转换及其设计…

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;本地传播已经趋于完全控制…

spark 大表与大表join时的Shuffle机制和过程

在 Spark 中&#xff0c;当处理大表与大表的 JOIN 操作时&#xff0c;通常会涉及到 Shuffle 机制&#xff0c;这是分布式计算中用于重新分布数据的关键步骤。Shuffle 的本质是将数据按照某种方式重新分组&#xff0c;使得相同 key 的数据能够被发送到同一个计算节点进行后续的操…

PostgreSQL查询库所有表和指定表结构(CLI)

查看所有表 \dt查看表结构 \d <指定表名>

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…

nodejs 016: javascript语法——解构赋值({ a, b, c } = {})=>{console.log(“Hello“);}

在 JavaScript 中&#xff0c;函数参数 { a, b, c } {} 的含义是在函数定义时提供一个默认的对象参数。这个对象包含了三个可选的属性 a, b, 和 c。如果没有传递参数或者传递的参数是一个非对象类型的值&#xff0c;那么函数内部将使用一个空对象 {} 作为参数。 示例 const …

基于STM32与OpenMV的智能垃圾分类系统:SSD目标检测算法的设计与流程

一、项目概述 随着城市化进程的加快&#xff0c;垃圾分类变得越来越重要。本文设计了一套基于STM32F103单片机、图像处理技术和传感器技术的智能垃圾分类系统。该系统能够自动识别垃圾类型&#xff0c;并通过机械装置进行准确分类&#xff0c;有效提升垃圾分类的效率和准确性。…

运放模块的选型参数

增益带宽积-----尤其重要&#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);…

mysql学习教程,从入门到精通,SQL RIGHT JOIN语句(24)

1、SQL RIGHT JOIN语句 RIGHT JOIN&#xff08;也被称为RIGHT OUTER JOIN&#xff09;是一种SQL语句&#xff0c;它用于从两个或多个表中根据连接条件返回右表&#xff08;RIGHT JOIN语句中指定的表&#xff09;的所有记录&#xff0c;以及左表中匹配的记录。如果左表中的行在…

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

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