K8S之configMap&secret

job

第一个是初始化尝试,初始化尝试失败之后,会再重试两次。

配置资源管理:

Secret

Configmap*:1.2加入的新特征

1.18

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

这类数据可以存放在镜像当中,但是防止secret当中可以更方便的控制,减少暴露的风险保存加密的信息。

Secret的类型

[root@master01 opt]f kubectl create secret

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/service-account

pod如何来引用secret(3种方式):

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

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

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

创建:

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

指定文件提取信息

generic 默认类型,opaque加密类型。

.-from-file=/opt/username.txt

从指定获取需要加密的信息。

Data

password: 13 bytes

username: 13 bytes

保存的是加密的内容,容器内部可以解密,可以直接引用

K8S之configMap&secret_第1张图片

secret的三种方式:

陈述式创建

声明式创建

引用方式:

挂载使用

设置环境变量

docker-registry

ConfigMap:保存的是不需要加密的信息。ConfigMap是1.2之后引入的功能,应用程序会从配置文件、命令参数以及环境变量中读取配置信息

ConfigMap在创建容器中,给他注入我们需要的配置信息,既可以是单个的属性也可以整个容器的配置文件

nginx.conf

1、陈述式和声明式

kubect! create configmap game --from-file-/opt/configmap/acd.txt --from-file-/opt/configmap/dsvs.txt

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

使用字面值创建:

kubectl create configmap game1 --from-literal=scvf-shuai --from-literal=wxy=876

声明式:

apiversion: v1kind: ConfigMapmetadata

name: gamedatascvf: wxy: 876

数据卷使用configMap

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

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

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

version/config来触发滚动更新

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

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

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

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

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

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

你可能感兴趣的:(kubernetes,容器,云原生)