K8S使用ConfigMap管理应用配置
K8S使用ConfigMap管理应用配置前言ConfigMap可以明文存放应用配置文件,支持多种创建模式,可以使配置文件和镜像解耦,提高镜像的复用性,同时更加灵活的更新配置文件而不需要重构镜像。1.创建ConfigMap1.1通过yaml文件创建ConfigMap...
·
K8S使用ConfigMap管理应用配置
前言
ConfigMap可以明文存放应用配置文件,支持多种创建模式,可以使配置文件和镜像解耦,提高镜像的复用性,同时更加灵活的更新配置文件而不需要重构镜像。
1.创建ConfigMap
1.1通过yaml文件创建ConfigMap(常用)
cat > nginx-cm.yaml << EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: config #定义ConfigMap的名称,用于绑定到pod使用
data:
nginx.conf: |- #配置文件的名字和内容,|- 是固定格式,不能省略
server {
listen 80;
server_name baidu.com;
root /home;
index.html index.htm;
nginx2.conf: |- #有多个配置文件按格式添加即可,也可写多个yaml文件定义
server {
listen 80;
server_name jindong.com;
root /nginx;
index.html index.htm; #配置文件缩减需要统一,不然会报错
EOF
kubectl apply -f nginx-cm.yaml
1.2通过 –from-file 参数创建ConfigMap(常用)
cat > nginx.conf << EOF
server {
listen 80;
server_name baidu.com;
root /home;
index.html index.htm;
EOF
cat > nginx2.conf << EOF
server {
listen 80;
server_name baidu.com;
root /home;
index.html index.htm;
EOF
kubectl create configmap nginx-cm --from-file=./nginx.conf --from-file=./nginx2.conf #nginx-cm为cm的名称
1.3查看configmap
kubectl get cm #查看所有configmap
kubectl get cm nginx-cm #查看指定configmap
2.ConfigMap绑定到pod
使用 Volume 的方式将ConfigMap绑定到pod
cat nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: blog-nginx
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: blog-nginx
tier: frontend
template:
metadata:
labels:
app: blog-nginx
tier: frontend
spec:
nodeSelector:
nginxssr: ssr
containers:
- name: nginx
image: nginx:v2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: nginx
volumeMounts:
- name: config #名称,与volumes的name相对应
mountPath: /etc/nginx/conf.d/ #指定configmap作为配置文件在pod容器中路径
volumes:
- name: config #名称,与volumeMounts的name相对应
configMap:
name: nginx-wp-config #填写定义的configmap的名称,即可绑定
3.动态修改configmap
configmap支持动态修改,不需要重建configmap
查看configmap属性
kubectl describe cm nginx-cm #查看configmap属性
动态修改configmap
kubectl edit cm nginx-cm #进入configmap进行修改,操作与 vim 一样
修改完configmap之后重启pod即可加载配置,热加载配置的方法未收录 😃。
更多推荐
已为社区贡献3条内容
所有评论(0)