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

相关推荐
IT人生--MarkGuo1 小时前
容器云后端存储NFS高可用适配
kubernetes
Insist7532 小时前
K8S-Secret资源对象
云原生·容器·kubernetes
-小末4 小时前
使用docker manifest制作本地多架构镜像
docker·容器·多架构镜像
掘金安东尼6 小时前
Amazon Polly :让文字开口说话的云端实践
人工智能·云原生
照物华8 小时前
K8s概念之进程、容器与 Pod 的终极指南
云原生·容器·kubernetes
vvilkim14 小时前
Java主流框架全解析:从企业级开发到云原生
java·运维·云原生
JohnYan21 小时前
工作笔记 - CentOS7环境运行Bun应用
javascript·后端·容器
ezreal_pan21 小时前
Kubernetes 负载均衡现象解析:为何同一批次请求集中于单个 Pod
运维·云原生·k8s·traefik
小猿姐21 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
曼岛_1 天前
[系统架构设计师]云原生架构设计理论与实践(十四)
云原生·系统架构·系统架构设计师