前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kubernetes 配置项之 configmap vs secret

kubernetes 配置项之 configmap vs secret

原创
作者头像
keepyan
修改于 2020-01-21 08:47:21
修改于 2020-01-21 08:47:21
1.9K00
代码可运行
举报
文章被收录于专栏:TKE操作指北TKE操作指北
运行总次数:0
代码可运行

前言:在之前的文档中,我们介绍过 secret 的使用,与其同类型的资源还有 configmap ,这里我们会简单介绍一下configmap, 以及分析 cofigmap 和 secret 在功能 和 使用场景上的区别。

Configmap

ConfigMap 是有 key-value 类型的键值对,通过 ConfigMap 你可以将配置和运行的镜像进行解耦,使得应用程序有更强的移植性。

你可以通过控制台的 Kubectl 工具创建对应的 ConfigMap 对象,然后可以通过挂载数据卷、环境变量或在容器的运行命令中使用 ConfigMap。

如何创建ConfigMap?

我们可以通过两种方式来创建 ConfigMap:

From Literal Values和From Configuration File;

From Literal Values 方法:

我们可以用 kubectl create 来创建一个 ConfigMap,然后通过 kubectl get 来获取:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2
configmap "my-config" created 

# Get the ConfigMap Details for my-config
$ kubectl get configmaps my-config -o yaml
apiVersion: v1
data:
 key1: value1
 key2: value2
kind: ConfigMap
metadata:
 creationTimestamp: 2017-05-31T07:21:55Z
 name: my-config
namespace: default
 resourceVersion: "241345"
 selfLink: /api/v1/namespaces/default/configmaps/my-config
 uid: d35f0a3d-45d1-11e7-9e62-080027a46057

From Configuration File 方法:

除了上面的方式,我们还可以直接通过配置文件来创建(好吧,虽然我感觉是同一种,只不过是放到文件里面了而已……),首先,我们得有一个配置文件,假设名字叫做 myconfigmap.yaml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: v1
kind: ConfigMap
metadata:
 name: customer1
data:
 TEXT1: Customer1_Company
 TEXT2: Welcomes You
 COMPANY: Customer1 Company Technology Pct. Ltd.

然后,我们可以通过 kubectl create -f 来创建:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ kubectl create -f myconfigmap.yaml
configmap "customer1" created 

如何使用configmap?

跟 secret 一样,configmap 可以在环境变量中使用,也可以作为数据卷挂载使用。

针对TKE 环境中的用法,可以参考:

https://cloud.tencent.com/document/product/457/31717

secret 和 configmap 的区别

其实目前 Secret 的实现,就是 ConfigMap 把 value 用 base64 encode了一下,所以,其实不存在任何安全性,只要 decode 一下就能出现原来结果,相当于明文存储。

base64 这玩意儿都不能叫做加密,只能叫做编码,所以我们都不说 encrypt,而是 encode 和 decode。

当然,Kubernetes 社区有在计划对 Secret 进行下一步的安全性增强,当然这是后话了,截止目前为止,Secret 基本和 ConfigMap一样是明文存储。

secret 和 configmap 的使用场景

理论上来讲,secret 和 configmap 可以在相同的场景下使用,因为功能上都是一样的。

这里结合生产环境看下当前主流的用法:

configmap:mysql redis 等涉及密码初始化类容器业务 (如MYSQL_ROOT_PASSWORD)

secret:第三方镜像仓库凭证 配置TLS 类型secret 用于记录证书秘钥等信息。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kubernetes(k8s)-ConfigMap介绍
我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
运维小路
2024/12/31
2210
Kubernetes(k8s)-ConfigMap介绍
Kubernetes中ConfigMap的使用
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。
王先森sec
2023/10/17
3930
ConfigMap 补充 和 Secret
对于上一篇文章我们分享了为什么要使用 ConfigMap ,我们创建 ConfigMap 的时候可以传入单个或者多个键值对,也可以传入文件,还分享了如何简单的传入 ConfigMap 里面的数据作为环境变量
阿兵云原生
2023/09/01
2080
ConfigMap 补充 和 Secret
kubernetes中那些不为存储数据而存在的volume
这kubernetes中,这类Volume不是为了存放数据,也不是用来做数据交换,而是为容器提供预先定义好的数据。所以从容器角度来看,这类Volume就像是被投射进容器一样。
极客运维圈
2020/01/20
7630
kubernetes中那些不为存储数据而存在的volume
kubernetes(十) kubernetes service,ingress&cm,secret
yum -y install ipvsadm modprobe br_netfilter cat > /etc/sysconfig/modules/ipvs.modules <<EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 EOF chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
alexhuiwang
2020/09/23
6150
kubernetes(十) kubernetes service,ingress&cm,secret
.NET Core 使用 K8S ConfigMap的正确姿势
ASP.NET Core默认的配置文件定义在appsetings.json和appsettings.{Environment}.json文件中。 这里面有一个问题就是,在使用容器部署时,每次修改配置文件都需要重新构建镜像。当然你也可能会说,我的配置文件很稳定不需要修改,但你又如何确保配置文件中一些机密配置的安全问题呢?比如暴露了你的远程数据库的连接信息,哪天被员工不小心删库跑路了呢? 那接下来就来讲解下如何在.NET Core 中正确使用ConfigMap。
圣杰
2019/09/12
1.6K0
.NET Core 使用 K8S ConfigMap的正确姿势
【K8S专栏】Kubernetes应用配置管理
不论什么样的应用,基本都有配置文件,在企业中,大部分会用到配置中心,比如apollo、nacos等,也有一些公司直接使用Kubernetes自带的配置管理,主要有:
没有故事的陈师傅
2022/12/06
6100
10 . Kubernetes之Configmap,Secret
Configmap和Secret类似,用来存储配置文件的Kubernetes资源对象,所有的配置内容都存储在etcd中.
iginkgo18
2020/09/27
7770
Kubernetes-配置字典ConfigMap
很多生产环境中的应用程序配置较为复杂,可能需要多个config文件、命令行参数和环境变量的组合。使用容器部署时,把配置应该从应用程序镜像中解耦出来,以保证镜像的可移植性。尽管Secret允许类似于验证信息和秘钥等信息从应用中解耦出来,但在K8S1.2前并没有为了普通的或者非secret配置而存在的对象。在K8S1.2后引入ConfigMap来处理这种类型的配置数据。
菲宇
2019/06/12
1.5K0
Kubernetes中的Configmap和Secret
如果需要向容器传递参数,可以在Yaml文件中通过command和args或者环境变量的方式实现。
大江小浪
2018/12/05
1.9K0
Kubernetes中的Configmap和Secret
ASP.NET Core on K8S深入学习(9)Secret & Configmap
  在应用启动过程中需要一些敏感信息,比如数据库用户名、密码,如果直接明文存储在容器镜像中是不安全的,K8S提供的方案是Secret。
Edison Zhou
2019/09/06
8880
ASP.NET Core on K8S深入学习(9)Secret & Configmap
kubernetes ConfigMap和Secret:配置应用程序
当启动镜像时,容器启动时执行如下命令:tail -f /var/log/aa.log
yaohong
2019/09/14
1.2K0
深入探究 K8S ConfigMap 和 Secret
ConfigMap 是用来存储配置文件的 Kubernetes 资源对象,配置对象存储在 Etcd 中,配置的形式可以是完整的配置文件、key/value 等形式。
用户5166556
2020/04/22
3.1K0
深入探究 K8S ConfigMap 和 Secret
k8s 实践经验(九)配置存储之 Configmap & secret
这篇比较轻松,上一篇也比较轻松,因为我这会儿的时间被称之为“碎片时间”。
看、未来
2022/05/09
6400
k8s 实践经验(九)配置存储之 Configmap & secret
k8s-kubernetes-configmap存储
ConfigMap功能在Kubernetes1.2版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。 ConfigMap API给我们提供了向容器中注入配置信息的机制, ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象
eadela
2019/12/11
4880
关于 Kubernetes中secret、configmap的一些笔记
我不再装模作样地拥有很多朋友,而是回到了孤单之中,以真正的我开始了独自的生活。有时我也会因为寂寞而难以忍受空虚的折磨,但我宁愿以这样的方式来维护自己的自尊,也不愿以耻辱为代价去换取那种表面的朋友。——余华《在细雨中呼喊》
山河已无恙
2023/01/30
1.1K0
K8S学习笔记之Kubernetes 配置管理 ConfigMap
很多情况下我们为某一应用做好镜像,当我们想修改其中的一些参数的时候,就变得比较麻烦,又要重新制作镜像,我们是不是有一种方式,让镜像根据不同的场景调用我们不同的配置文件呢,那我们就需要用到 k8s 的另外一种资源,那就是 ConfigMap。
Jetpropelledsnake21
2019/07/01
2K0
kubernetes中configmap和secret
Kubernetes是一个容器编排平台,用于管理容器化应用程序的部署、扩展和管理。在Kubernetes中,ConfigMap和Secret是两个核心概念,它们用于存储应用程序的配置和敏感数据,以便应用程序可以使用它们。
堕落飞鸟
2023/04/01
4870
K8S ConfigMap使用
configmap是k8s的一个配置管理组件,可以将配置以key-value的形式传递,通常用来保存不需要加密的配置信息,加密信息则需用到Secret,主要用来应对以下场景:
oYabea
2020/09/07
3.6K0
Pod 的存储之Configmap
​ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者 JSON 二进制大对象。
星哥玩云
2022/09/15
3850
Pod 的存储之Configmap
相关推荐
Kubernetes(k8s)-ConfigMap介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档