Kubernetes(K8S之存储)

configmap

configMap描述信息

configMap功能在Kubernetes1.2版本中引入,许多应用程序会从配置文件,命令行参数或环境变量中读取配置信息。ConfigMap API给我们提供了向容器中注入配置信息的机制。ConfigMap可以被用来保存单个属性。

也可以用来保存整个配置文件或者JSON二进制大对象。

ConfigMap的创建

1,使用目录创建

$ls docs/user-guide/configmap/kubectl/

game.properties

ui.properties

$cat docs/user-guide/configmap/kubectl/game.properties

enemies=aliens

lives=3

enemies.cheat=true

enemies.cheat.level=noGoodRotten

secret.code.passphrase=UUDDLRLRBABAS

secret.code.allowed=true

secret.code.lives=30

$cat docs/user-guide/configmap/kubectl/ui.properties

color.good=purple

color.bad=yellow

allow.textmode=true

how.nice.to.look=fairlyNice

$kubectl create configmap game-config --from-file=docs/user-guide/configmap/kubectl

-from-file指定在目录下的所有文件都会被用在ConfigMap里面创建一个键值对。键的名字就是文件名。值就是文件的内容。

2.使用文件创建

只要指定为一个文件就可以从单个文件中创建ConfigMap

$kubectl create configmap game-config-2 --from-file=docs/user-

guide/configmap/kubectl/game.properties

$kubectl get configmaps game-config-2 -o yaml

-from-file 这个参数可以使用多次,你可以使用两次分别指定上个实例中的那两个配置文件,效果就跟指定整个目录是一样的。

3使用字面值创建

使用文字值创建,利用 -from-literal参数传递配置信息。该参数可以使用多次。格式如下。

$kubectl create configmap special-config --from-literal=specical.how=very --from-literal=special.type=charm

$kubectl get configmaps special=config -o yaml

1.Pod中使用ConfigMap

1.使用ConfigMap来替代环境变量。

apiVersion:v1

kind : configMap

metafata:

name: special-config

namespace:default

data:

special.how: very

special.type: charm

apiVersion: v1

kind: ConfigMap

metadata:

name:env-config

namespace:default

data:

log_level:INFO

apiVersion: v1

kind: Pod

命令

kubectl get cm

kubectl describe cm env-config

2.用configMap设置命令行参数

APIVersion: v1

kind: ConfigMap

metadata:

name: special-config

namespace: default

data:

special.how: very

special.type: charm

apiVersion: v1

kind: Pod

metadata:

name: dapi-test-pod

spec:

containers:

-name:test-container

image: hub.atguigu.com/library/myapp:v1

command: ["/bin/sh","-c","echo (SPECIAL_LEVEL_KEY) (SPECIAL_TYPE_KEY)" ]

env:

-name: SPECIAL_LEVEL_KEY

valueFrom:

configMapkeyRef:

name: special-config

key: special.how

-name: SPECIAL_TYPE_KEY

valueFrom:

configMapKeyRef:

name: special-config

key: special.type

restarPolicy: Never

3.通过数据卷插件使用ConfigMap

apiVersion: v1

kind: ConfigMap

metadata:

name: special-config

namespace: default

data:

special.how: very

special.type: charm

在数据卷里面使用这个ConfigMap,有不同的选项。最基本的就是将文件填入数据卷。在这个文件中。键就是文件名。键值就是文件内容。

apiVersion: v1

kind: Pod

metadata:

name: dapi-test-pod

spec:

containers:

name:test-contrainer

image:v1

command:

volumeMounts:

-name: config-volume

mountPath: /etc/config

ConfigMap的热更新

Secret

Secret存在的意义

Service Account

2,使用方式
1,将Secret挂载到Volume中
2,将Secret导出到环境变量中

Volume

PV-PVC

相关推荐
Akamai中国2 小时前
分布式AI推理的成功之道
人工智能·分布式·云原生·云计算·云服务·云平台·云主机
川石教育3 小时前
测试工程师如何学会Kubernetes(k8s)容器知识
云原生·容器·kubernetes·kubernetes容器·kubernetes教程
iRayCheung4 小时前
Kind方式部署k8s单节点集群并创建nginx服务对外访问
nginx·kubernetes·kind
小黑_深呼吸4 小时前
Prometheus实战教程:k8s平台-Mysql监控案例
运维·学习·kubernetes·prometheus
THMAIL5 小时前
mac M芯片运行docker-desktop异常问题
macos·docker·容器
家庭云计算专家6 小时前
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
服务器·人工智能·docker·容器·编辑器
匆匆z26 小时前
AWS EC2 微服务 金丝雀发布(Canary Release)方案
微服务·云原生·金丝雀部署
富士康质检员张全蛋7 小时前
云原生|kubernetes|kubernetes的etcd集群备份策略
云原生·kubernetes·etcd
慧一居士7 小时前
Kubernetes 中kind类型和各类型详细配置完整示例介绍
云原生·kubernetes·yaml配置
云手机管家8 小时前
CDN加速对云手机延迟的影响
运维·服务器·网络·容器·智能手机·矩阵·自动化