K8S使用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即可加载配置,热加载配置的方法未收录 😃。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值