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

相关推荐
阿里云云原生8 小时前
LLM 不断提升智能下限,MCP 不断提升创意上限
云原生
阿里云云原生8 小时前
GraalVM 24 正式发布阿里巴巴贡献重要特性 —— 支持 Java Agent 插桩
云原生
云上艺旅11 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
c无序11 小时前
【Docker-7】Docker是什么+Docker版本+Docker架构+Docker生态
docker·容器·架构
FixBug_Nick11 小时前
使用Docker安装及使用最新版本的Jenkins
docker·容器·jenkins
ghostwritten13 小时前
Run Milvus in Kubernetes with Milvus Operator
容器·kubernetes·milvus
Zero_to_zero123413 小时前
解决docker的ubuntu系统中文乱码问题
ubuntu·docker·容器
@郭小茶14 小时前
docker-compose方式部署docker项目
运维·docker·容器
duration~15 小时前
K8S自定义CRD
容器·贪心算法·kubernetes
ghostwritten16 小时前
Docker Registry Clean
运维·docker·容器