ConfigMap可以采用下面几种方式创建。
<br/>
**1. 使用目录创建**
```shell
# 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
configmap/game-config created
# kubectl get configmap
NAME DATA AGE
game-config 2 82s
# kubectl get configmap game-config -o go-template='{{.data}}'
map[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
ui.properties:color.good=purple
color.bad=yellow
allow.textmode=true
how.nice.to.look=fairlyNice
```
`--from-file`:指定在目录下的所有文件都会被用在 ConfigMap 里面创建一个键值对,键的名字就是文件名,值就是文件的内容。
<br/>
**2. 使用文件创建**
只要指定为一个文件就可以从单个文件中创建 ConfigMap。
```shell
# kubectl create configmap game-config-2 --from-file=game.properties --from-file=ui.properties
configmap/game-config-2 created
# kubectl get configmap
NAME DATA AGE
game-config-2 2 22s
# kubectl get configmaps game-config-2 -o yaml
apiVersion: v1
data:
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
ui.properties: |
color.good=purple
color.bad=yellow
allow.textmode=true
how.nice.to.look=fairlyNice
kind: ConfigMap
metadata:
creationTimestamp: "2022-02-21T11:31:55Z"
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:game.properties: {}
f:ui.properties: {}
manager: kubectl
operation: Update
time: "2022-02-21T11:31:55Z"
name: game-config-2
namespace: default
resourceVersion: "123146"
selfLink: /api/v1/namespaces/default/configmaps/game-config-2
uid: d311a5f5-1b16-44ac-a863-240297b630ad
```
`--from-file`:这个参数可以使用多次,你可以使用两次分別指定上个实例中的那两个配置文 件,效果就跟指定整个目录是一样的。
<br/>
**3. 使用字面值创建**
使用文字值创建,利用`--from-literal`参数传递配置信息,该参数可以使用多次。
```shell
# kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
configmap/special-config created
# kubectl get configmaps special-config -o yaml
apiVersion: v1
data:
special.how: very
special.type: charm
kind: ConfigMap
metadata:
creationTimestamp: "2022-02-21T11:37:43Z"
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:special.how: {}
f:special.type: {}
manager: kubectl
operation: Update
time: "2022-02-21T11:37:43Z"
name: special-config
namespace: default
resourceVersion: "123966"
selfLink: /api/v1/namespaces/default/configmaps/special-config
uid: e4ae0c2f-6dc8-4f26-a58c-eb36ec0cea49
```
****
参考文档:https://feisky.xyz/kubernetes-handbook/concepts/configmap.html
- K8s是什么
- K8s特点
- K8s功能
- 为什么用容器
- K8s集群搭建
- 1. 集群架构
- 2. 机器初始化
- 3. 安装Docker
- 4. 配置k8s镜像仓库
- 5. 安装k8s核心工具
- 6. 初始化主节点
- 7. node节点加入集群
- 8. 安装Pod网络插件
- 9. 测试k8s集群
- yaml资源文件
- yaml文件作用
- yaml文件编辑语法
- 资源清单描述方法
- 命令行工具kubectl
- kubectl是什么
- kubectl命令语法
- Pod
- Pod是什么
- Pod特征
- Pod定义
- Pod基本操作
- Pod分类
- Pod生命周期
- Pod重启策略
- 镜像拉取策略
- 资源限制
- 健康检查
- Label
- Namespace
- ReplicationController
- ReplicaSet
- Deployment
- HorizontalPodAutoscaler
- Service
- Service是什么
- 应用Service
- Ingress
- Ingress是什么
- 部署ingress-nginx
- Helm
- Helm是什么
- Volume
- Volume是什么
- NFS的使用
- PV与PVC
- PV与PVC是什么
- PV与PVC的使用
- ConfigMap
- ConfigMap是什么
- ConfigMap创建
- ConfigMap使用
- ConfigMap热更新
- 滚动更新Pod
- Secret
- Secret作用
- Secret类型