kubernetes集群系列资料13–存储机制介绍

一、K8S存储机制介绍  

k8s的stateful控制组件是为有状态服务而设计的,有状态服务需要对数据进行存储;k8s有4种存储机制,主要为:

  1)configMap:为K8S存储配置文件而设计的,configMap可以用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。
  2)secret:为了解决密码、token、密钥等敏感数据的配置加密而设计,而不需要将这些敏感数据暴露到镜像或pod.spec中,可以volume或环境变量的方式使用。
  3)volume:为容器提供共享存储卷,避免发生容器崩溃重启后容器中文件丢失的问题。当pod不存在时,volume也不复存在;k8s支持多种类型的卷,pod可使用任意数量的卷。
  4)persistentVolume/persistentVolumeClai:

二、configMap介绍

  许多应用程序从配置文件、命令行参数或环境变量中读取配置信息,而configMap API给我们提供了向容器注入配置信息的机制。
  传统生成环境中,配置文件注册中心负责向n个集群n个节点应用程序的提供配置信息,该中心需要自行构建,没有较好的开源方案。应用程序向配置文件注册中心提供本节点的信息(如:IP、hostname),配置文件注册中心根据规则为该节点应用程序更新配置,应用程序按照新配置进行重载后运行。
  k8s集群中,configMap充当了配置文件注册中心的作用。pod向configMap申请配置,configMap为各pod下发不同的配置。
  configMap创建配置有3中方式:使用目录创建、使用文件创建、使用字面值创建。

1、使用目录创建configMap

mkdir configMapFile;cd configMapFile
cat > game.properties <<eof
enemies=aliens
lives=3
enemies.cheat=true
enemies.cheat.level=noGoodRotten
enemies.code.passphrase=UUDDLRLRBABAS
enemies.code.allowed=true
enemies.code.lives=30
eof

cat >ui.properties<<eof
color.good=purple
color.bad=yellow
allow.textmode=true
how.nice.to.look=fairlyNice
eof

kubectl create configmap game-config --from-file=../configMapFile #创建configMap;
kubectl get configmap               #查看configMap;
kubectl get cm game-config -o yaml  #以yaml格式输出game-config配置;
kubectl get cm game-config -o json    #以yaml格式输出game-config配置;

技术分享图片

 

 

 

2、使用文件创建configMap

kubectl create configmap game-config2 --from-file=../configMapFile/game.properties #使用文件创建configMap;
kubectl get cm game-config2 -o yaml

技术分享图片

 

 

 多次使用文件创建,与在该目录下一次性批量创建效果相同。

3、使用字面量创建configMap

kubectl create configmap game-config3 --from-literal=special.how=very --from-literal=special.type=charm #使用字面量创建configMap;
kubectl get cm game-config3 -o yaml

技术分享图片

 

三、secret介绍 

 

kubernetes集群系列资料13--存储机制介绍

[db:回答]

以上是kubernetes集群系列资料13–存储机制介绍的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>