kubernetes常用资源——configMap
Configmap
configmap配置信息和镜像解耦,实现方式为将配置信息放到configmap对象中,然后在pod中作为volume挂载到pod中,从而实现导入配置的目的。
使用场景:
- 通过configmap给pod定义全局环境变量
- 通过configmap给pod传递命令行参数,如mysql -u -p 中的账户名密码可以通过configmap传递
- 通过configmap给pod中的容器服务提供配置文件,配置文件以挂载到容器的形式使用
注意:configmap需要在pod使用它之前创建。
- pod只能使用位于同一个namespace的configmap,即configmap不能跨namespace使用
- 通常用语非安全加密的配置场景
- configmap通常是小于1MB的配置
示例1:
[root@haproxy1 case10-configmap]# cat 1-deploy_configmap.yml
#定义configmap资源
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
namespace: dujie
data:
#default是key,value对应的是配置文件内容
default: |
server {
listen 80;
server_name www.mysite.com;
index index.html index.php index.htm;
location / {
root /data/nginx/html;
if (!-e $request_filename) {
rewrite ^/(.*) /index.html last;
}
}
}
---
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: dujie
spec:
replicas: 1
selector:
matchLabels:
app: ng-deploy-80
template:
metadata:
labels:
app: ng-deploy-80
spec:
containers:
- name: ng-deploy-80
image: nginx:1.20.0
ports:
- containerPort: 80
volumeMounts:
- name: nginx-config
mountPath: /etc/nginx/conf.d/mysite
volumes:
#volumes指定类型为configmap
- name: nginx-config
configMap:
name: nginx-config
#设置item,key为上面定义的,path为文件名
items:
- key: default
path: mysite.conf
---
apiVersion: v1
kind: Service
metadata:
namespace: dujie
name: ng-deploy-80
spec:
ports:
- name: http
port: 81
targetPort: 80
nodePort: 30019
protocol: TCP
type: NodePort
selector:
app: ng-deploy-80
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 J.のblog!
评论