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

相关推荐
云川之下16 分钟前
【k8s】Docker inspect 命令
docker·容器·kubernetes
云烟成雨TD41 分钟前
Micrometer 系列【63】统一观测:基于 Spring Boot 的生产级演示案例 | 基于 OTLP 集成 Prometheus + Jaeger
spring boot·云原生·prometheus
猫吃了源码1 小时前
CentOS7使用Kubeadm安装部署K8s(Kubernetes)最新稳定版本1.26.x
云原生·容器·kubernetes
倔强的石头1062 小时前
飞牛OS部署Mtab:Docker搭建自托管书签导航并实现远程访问
运维·docker·容器
张忠琳2 小时前
【k3s】AutoK3s v0.9.3 —— Part 7 辅助模块超深度逐行分析
云原生·容器·kubernetes·k3s·autok3s
张忠琳12 小时前
【k3s】AutoK3s v0.9.3 Part 1 入口与 CLI 命令模块 — 超深度逐行分析之三
云原生·容器·kubernetes·k3s·autok3s
m0_5257247215 小时前
AIOps全链路智能运维架构揭秘
云原生·devops
xiaoxiangsiyan18 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns
AR_xsy18 小时前
docker--资源配额 配置
运维·docker·容器
国际云,接待19 小时前
Docker 容器突然退出、服务莫名重启:从 OOMKilled 到内存泄漏的生产排查手册
运维·docker·容器