命令行指定方式创建
[root@master vml]# kubectl create configmap nginx --from-literal=nginx_port=80 --from-literal=server_name=www.chenxi.com configmap/nginx created
查看
[root@master vml]# kubectl get configmap NAME DATA AGE nginx 2 15s ui-config 1 37d [root@master vml]# kubectl describe configmap nginx Name: nginx Namespace: default Labels: <none> Annotations: <none> Data ==== nginx_port: ---- 80 server_name: ---- www.chenxi.com Events: <none>
命令行已指定文件方式创建
[root@master vml]# kubectl create configmap www.nginx.conf --from-file=./www.conf configmap/www.nginx.conf created
查看
[root@master vml]# kubectl get configmap NAME DATA AGE nginx 2 35m ui-config 1 37d www.nginx.conf 1 2m14s
编写pod文件:这个方式不能实时更新
[root@master vml]# cat pod.yaml apiVersion: v1 kind: Pod metadata: name: pod-demo namespace: default labels: app: myapp tier: frontend spec: containers: - name: myapp image: ikubernetes/myapp:v1 ports: - name: http containerPort: 80 - name: https containerPort: 443 env: - name: NGINX valueFrom: configMapKeyRef: name: nginx key: nginx_port optional:
启动
[root@master vml]# kubectl apply -f pod.yaml pod/pod-demo created [root@master vml]# kubectl exec -it pod-demo -- /bin/sh / # echo $NGINX 80 / # exit
与存储卷的方式挂载
[root@master vml]# cat pod.yaml apiVersion: v1 kind: Pod metadata: name: pod-demo namespace: default labels: app: myapp tier: frontend spec: containers: - name: myapp image: ikubernetes/myapp:v1 ports: - name: http containerPort: 80 - name: https containerPort: 443 volumeMounts: - name: nginx mountPath: /chenxi readOnly: true volumes: - name: nginx configMap: name: www.nginx.conf [root@master vml]# kubectl exec -it pod-demo -- /bin/sh / # ls /chenxi www.conf / # ls /chenxi/www.conf /chenxi/www.conf / # cat /chenxi/www.conf server { server_name www.chenxi.com; listen 80; root /data/www/html; }
使用edit在线修改configMap内容
[root@master vml]# kubectl edit configMap www.nginx.conf # Please edit the object below. Lines beginning with a '#' will be ignored, # and an empty file will abort the edit. If an error occurs while saving this file will be # reopened with the relevant failures. # apiVersion: v1 data: www.conf: |+ server { server_name www.chenxi.com; listen 9090; root /data/www/html; } kind: ConfigMap metadata: creationTimestamp: "2020-04-27T02:58:24Z" name: www.nginx.conf namespace: default resourceVersion: "8747971" selfLink: /api/v1/namespaces/default/configmaps/www.nginx.conf uid: 5a958a9e-31f6-453c-9379-42bde7a21200 configmap/www.nginx.conf edited ---表示修改成功 [root@master vml]# kubectl exec -it pod-demo -- /bin/sh / # cat /chenxi/www.conf 会有一定延迟 server { server_name www.chenxi.com; listen 80; root /data/www/html; } / # cat /chenxi/www.conf 再次查看 server { server_name www.chenxi.com; listen 9090; 修改成功 root /data/www/html; }
如果存在多个文件如何只挂在一个文件
[root@master vml]# kubectl explain pods.spec.volumes.configMap. KIND: Pod VERSION: v1 RESOURCE: configMap <Object> DESCRIPTION: ConfigMap represents a configMap that should populate this volume Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling. FIELDS: defaultMode <integer> Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. items <[]Object> ---给定指定挂载的文件列表 If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. name <string> Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names optional <boolean> Specify whether the ConfigMap or its keys must be defined
secret 投射数据卷的介绍
[root@master vml]# kubectl create secret --help Create a secret using specified subcommand. Available Commands: docker-registry 创建一个给 Docker registry 使用的 secret generic 从本地 file, directory 或者 literal value 创建一个 secret tls 创建一个 TLS secret Usage: kubectl create secret [flags] [options] Use "kubectl <command> --help" for more information about a given command. Use "kubectl options" for a list of global command-line options (applies to all commands)