configmap
一、通过命令来创建configmap和键值
-
使用命令添加环境变量:kubectl create configmap nginx-from --from-literal=nginx_port=80 --from-literal=server_name=myapp.jinlong.com
-
查看configmap:
kubectl get configmap

- 查看configmap里面的键值
kubectl describe cm nginx-from

二、通过文件的形式来创建configmap和键值。
- 创建文件。
vim www.conf
server{
server_name myapp.jinlong.com
listen 80
root /data/web/html/;
}
- 使用文件开始创建configmap和键值。
kubectl create configmap nginx-www --from-file=./www.conf

- 查看configmap:
Kubectl get configmap

- 查看configmap里面的键值
Kubectl get cm nginx-www –o yaml

标红色的为文件里面的键值。
- 创建pod,将键值注入到pod中。
vim pod-configmap.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-cm-1
namespace: default
labels:
app: myapp
tier: frontend
annotations:
jinlong.com/created-by: "cluster admin"
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort: 80
env:
- name: NGINX_SERVER_PORT
valueFrom:
configMapKeyRef:
name: nginx-from
key: nginx_port
- name: NGINX_SERVER_NAME
valueFrom:
configMapKeyRef:
name: nginx-from
key: server_name
kubectl apply -f pod-configmap.yaml
查看pod是否创建成功
Kubectl get pod

Pod运行正常,创建成功。
- 进入pod查看键值是否注入成功。
kubectl exec -it pod-cm-1 -- /bin/sh
printenv

查看的我们的注入数据,说明注入成功的。
方法二、
通过文件挂在的方式注入键值。
- 创建文件
vim pod-congfigmap-2.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-cm-2
namespace: default
labels:
app: myapp
tier: frontend
annotations:
jinlong.com/created-by: "cluster admin"
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort: 80
volumeMounts:
- name: nginxconf
mountPath: /etc/nginx/config.d/
readOnly: true
volumes:
- name: nginxconf
configMap:
name: nginx-from
kubectl apply -f pod-configmap-2.yaml
- 查看pod是否正常。
Kubectl get pod

-
进入pod,查看键值是否注入。
image.png
键值名在所在的目录,键值在所采的文件。说明键值注入成功。
方法三:
挂在文件的方式,注入环境变量。
vim pod-configmap-3.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-cm-3
namespace: default
labels:
app: myapp
tier: frontend
annotations:
jinlong.com/created-by: "cluster admin"
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort: 80
volumeMounts:
- name: nginxconf
mountPath: /etc/nginx/conf.d/
readOnly: true
volumes:
- name: nginxconf
configMap:
name: nginx-www
验证是否注入键值和文件
kubectl exec -it pod-cm-3 -- /bin/sh

验证成功。
网友评论