Kubernetes配置中心(ConfigMap)使用
1.1-配置文件(以nginx为例)
kind: ConfigMap # 指定类型
apiVersion: v1
metadata:
name: config # 配置名
namespace: nginx # 命名空间(不指定则默认为default)
data:
# nginx的配置文件名(内容根据实际应用)
# 同一个命名空间下,可以创建多个配置文件以供调用
nginx.conf: |
#user nobody;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
daemon off;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 0;
#keepalive_timeout 65;
server {
listen 8888; #注意,此处的listen对应于/etc/fdfs/storage.conf中的http.server_port=8888
server_name localhost;
client_max_body_size 10000M;
location ~/group1/M00 {
proxy_pass http://site4;
if ($arg_attname ~ "^(.+)") {
add_header Content-Type application/x-download;
add_header Content-Disposition "attachment;filename=$arg_attnamee";
}
root /opt/fastdfs_storage_data/data;
ngx_fastdfs_module;
}
}
}
1.2-pod中使用配置文件
此处为正常从本机挂载文件,和从配置中心挂在文件区别,还有通过pv远程挂载(点击可查看)
# 此处为容器内部
volumeMounts:
- name: host-name # 指定挂载的名
mountPath: /etc/localtime # 指定挂载到容器内部位置
- name: nginx-config # 指定挂在明
mountPath: /usr/local/nginx/conf/nginx.conf # 指定容器挂在位置
# 此处需要使用subPath指定一下配置文件,当时测试时不指定无法读取配置配置中心的配置文件(可能是自己操作不当)
subPath: nginx.conf
# 此处与容器平级,可以同级创建多个以 -name区分操作即可
volumes:
- name: host-name # 与容器内部挂载名同步
hostPath:
path: /etc/localtime # 选择本地文件挂载到容器内部
- name: nginx-config # 与容器内部挂在明同步
configMap: # 此处指定为configMap类型
name: config # 此处config要与配置中心的配置name保持一致
items:
- key: nginx.conf # 此处为配置中心的内部的配置文件名
path: nginx.conf # 由于没有配置path所以与配置文件名保持一致即可