配置资源管理

本文详细介绍了Kubernetes中的Secret和ConfigMap两种资源管理方式,重点讲解了它们的用途(如密码、token管理、配置文件传递)、创建方法(陈述式和声明式)、使用场景(挂载、环境变量、免密登录)以及热更新和滚动更新的区别。
摘要由CSDN通过智能技术生成

配置资源管理:

Secret

Configmap*:1.2加入的新特征。

Secret:保存密码,token,敏感的k8s资源。

这类数据可以直接存放在镜像当中,但是放在secret当中可以更方便的控制,减少暴露的风险。

Secrets的类型

查看

kubectl get secrets

四种方式:

docker-registry :存储docker仓库认证信息,以及docker组件认证信息。 (私有 )

generic:是secret的默认模式,Opaque base64加密编码的secret,用户自定义的密码,密钥等等

tls:TLS/SSL 用于存储证书和私钥,https

系统自建的:kubernetes.io/service-account-token用来访问系统的apiserver。pod会默认使用这个kubernetes.io/service-account-token创建的secret和apiserver通信,自动挂载到pod的/run/secret/kubernetes.io/serviceaccount.

pod如何来引用secret

3种方式:

1,挂载的方式,secret挂载到pod当中一个或者多个容器的卷里面。

2,把secret作为容器的环境变量

3,docker-registry可以作为集群拉取镜像时使用。使用secret可以实现免密登录

创建方式:

1,陈述式创建

指定文件提取信息

先创建两个文件

kubectl create secret generic mysecret --from-file=/opt/username.txt --from-file=/opt/password.txt

generic 默认类型,Opaque加密方式

2,声明式创建

将加密信息的方式

把数据加密

vim secret.yaml

data中保存的加密信息。

使用方式:

1,挂载,(最多的方式)

vim test1.yaml

把加密的信息传到指定容器的指定目录当中去,在容器中不是加密的

还可以传文件

kubectl create secret generic mysecret2 --from-file=/etc/passwd --from-file=/etc/shadow

2,传递为容器的环境变量

#我给nginx1.22这个容器里面传了两个环境变量,这两个变量的值从secret来, 分别是两条mysecret1的加密信息

kubectl exec -it mypod1 bash

3,免密登录harbor仓库

kubectl create secret docker-registry myharbor --docker-server=192.168.176.64 --docker-username=admin --docker-password=123456

指定节点拉取

secret的三种方式:

创建可以是陈述式创建

也可以是声明式

引用方式:

挂载使用

设定环境变量

docker-registry

ConfigMap:

保存的是不需要加密的信息。configmap的1.2引入的功能,应用程序会从配置文件,免密参数,以及环境变量中读取配置信息 configmap在创建容器中,给他主任我们需要的配置信息。即可以是单个的属性也可以是整个容器的配置文件。

创建方式:

1,陈述式

mkdir configmap

vim cc.txt

vim cc1.txt

创建

kubectl create configmap game --from-file=/opt/configmap/cc.txt --from-file=/opt/configmap/cc1.txt

查看

信息不是加密的

从指定文件创建,可以是一个,也可以是多个文件

使用字面值创建

kubectl create configmap game1 --from-literal=cc=youqian --from-literal=chen=bianyq

声明式方式创建:

vim configmap.yaml

都是以键值对的方式保存的

引用:

1,作为环境变量

vim configmap.yaml

传入

2,数据卷使用configMap

准备好一个nginx.conf的配置文件

创建configMap

kubectl create configmap nginx-con --from-file=/opt/nginx-configmap/nginx.conf

vim nginx1.yaml

找不到,因为nginx.conf中工作目录错误

1,我们通过数据卷的形式,把配置文件传给了pod内部容器。

2,config的热更新,在pod运行的情况下,对config的配置信息进行修改。直接生效(反应到容器当中)

3,configmap的热更新不会触发pod的滚动更新机制(deployment)

热更新不会重启

直接通过nginx-con更改

kubectl edit cm nginx-con

但nginx没有重启

version/config来触发滚动更新

kubectl patch deployments.apps nginx1 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/confgi": "20240116"}}}}}'

secret:主要作用的保存加密文件,主要的使用方式就是挂载方式

configMap:主要作用把配置信息传给容器。主要方式也是挂载方式

configMap的热更新:热更新可以直接反映到容器的内部,也不会触发pod的更新机制。如果不是需要重启的配置,都可以直接生效。

version/config来触发滚动更新

kubectl patch deployments.apps nginx1 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/confgi": "20240116"}}}}}'

需要重启的,可以重启pod。

更新:就是把配置信息重新传到容器内,重启也是一样

configMap:就是把配置信息传给容器,键偉对形式保存的,非加密的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值