configmap
一鸦致、通過命令來創(chuàng)建configmap和鍵值
使用命令添加環(huán)境變量: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
二砚哗、通過文件的形式來創(chuàng)建configmap和鍵值嚼鹉。
- 創(chuàng)建文件勤婚。
vim www.conf
server{
server_name myapp.jinlong.com
listen 80
root /data/web/html/;
}
- 使用文件開始創(chuàng)建configmap和鍵值遵班。
kubectl create configmap nginx-www --from-file=./www.conf
- 查看configmap:
Kubectl get configmap
- 查看configmap里面的鍵值
Kubectl get cm nginx-www –o yaml
標紅色的為文件里面的鍵值忧换。
- 創(chuàng)建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是否創(chuàng)建成功
Kubectl get pod
Pod運行正常蜻牢,創(chuàng)建成功。
- 進入pod查看鍵值是否注入成功偏陪。
kubectl exec -it pod-cm-1 -- /bin/sh
printenv
查看的我們的注入數據抢呆,說明注入成功的。
方法二笛谦、
通過文件掛在的方式注入鍵值抱虐。
- 創(chuàng)建文件
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饥脑,查看鍵值是否注入恳邀。
鍵值名在所在的目錄懦冰,鍵值在所采的文件。說明鍵值注入成功谣沸。
方法三:
掛在文件的方式刷钢,注入環(huán)境變量。
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
驗證成功乳附。