作者设置:由于当前各个常用镜像站无法正常代理下载镜像,这篇实验中所用到的镜像建议先从网络下载获取再导入到私仓使用,
或私信后台回复:9521 获取~ ~
目录描述
-
Kubernetes常见的配置资源介绍
-
ConfigMap介绍说明
-
ConfigMap创建方式
-
ConfigMap使用方式
-
ConfigMap实践案例
五、ConfigMap 实践案例
实验环境:
单master+双node,操作系统Ub22.04(live-server),Kubernetes v1.25
5.1 操作示范: env 变量
#查看Pod默认的变量命令格式:
kubectl exec -it [PODNAME] -- env
#这里借用前面搭建时的demoapp配置文件,查看默认变量
root@master1ha1:~# kubectl exec -it demoapp-75586749f8-pmbhf -n default -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=demoapp-75586749f8-pmbhf
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
DEMOAPP_PORT_80_TCP_PORT=80
DEMOAPP_PORT_80_TCP_ADDR=10.105.4.244
KUBERNETES_SERVICE_PORT=443
DEMOAPP_PORT_80_TCP=tcp://10.105.4.244:80
KUBERNETES_PORT_443_TCP_PROTO=tcp
DEMOAPP_SERVICE_HOST=10.105.4.244
DEMOAPP_SERVICE_PORT=80
DEMOAPP_SERVICE_PORT_80_80=80
DEMOAPP_PORT_80_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
DEMOAPP_PORT=tcp://10.105.4.244:80
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://10.96.0.1:443
DEPLOYENV=Production
RELEASE=Stable
PS1=[\u@\h \w]\$
HOME=/root
#创建配置文件
root@master1ha1:~# vim storage-configmap-valueFrom-env.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-pod-test
namespace: default
data:
host: 0.0.0.0
port: "8888"
---
apiVersion: v1
kind: Pod
metadata:
name: configmap-env-demo
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/guang_demo/qwer:ik8s-demoappv1.0
name: pod-test
env:
- name: HOST
valueFrom:
configMapKeyRef:
name: cm-pod-test
key: host
optional: true #true时,如果configmap中的key即使不存在,也不会导致容器无法初始化
- name: PORT
valueFrom:
configMapKeyRef:
name: cm-pod-test
key: port
optional: false #false时,如果configmap中的key不存在,会导致容器无法初始化
#查询生成信息
root@master1ha1:~# kubectl get pod -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default configmap-env-demo 1/1 Running 0 75s 10.244.2.27 node2 <none> <none>
#查看变量,能看到PORT和HOST带入
root@master1ha1:~# kubectl exec -it configmap-env-demo -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=configmap-env-demo
TERM=xterm
PORT=8888
HOST=0.0.0.0
KUBERNETES_PORT=tcp://10.96.0.1:443
DEMOAPP_SERVICE_HOST=10.105.4.244
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP_PORT=443
DEMOAPP_PORT=tcp://10.105.4.244:80
DEMOAPP_PORT_80_TCP_PORT=80
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
DEMOAPP_SERVICE_PORT_80_80=80
DEMOAPP_PORT_80_TCP=tcp://10.105.4.244:80
DEMOAPP_PORT_80_TCP_ADDR=10.105.4.244
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
DEMOAPP_SERVICE_PORT=80
DEMOAPP_PORT_80_TCP_PROTO=tcp
DEPLOYENV=Production
RELEASE=Stable
PS1=[\u@\h \w]\$
HOME=/root
#查询容器内监听端口存在
root@master1ha1:~# kubectl exec -it configmap-env-demo -- ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:8888 0.0.0.0:*
#拟访问测试成功
root@master1ha1:~# curl 10.244.2.27:8888
iKubernetes demoapp v1.0 !! ClientIP: 10.244.0.0, ServerName: configmap-env-demo, ServerIP: 10.244.2.27!
#资源删除
[root@master1 yaml]#kubectl delete -f storage-configmap-valueFrom-env.yaml
5.2 操作示范: envFrom 批量导入变量
#配置文件资源定义文件
root@master1ha1:~# kubectl apply -f storage-configmap-simple-envfrom.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-nginx
data:
NGINX_PORT: "98765"
NGINX_USER: "lcg"
---
apiVersion: v1
kind: Pod
metadata:
name: configmap-envfrom-test
spec:
containers:
- name: configmap-envfrom-test
image: registry.cn-hangzhou.aliyuncs.com/guang_demo/qwer:ik8s-demoappv1.0
envFrom: #指定cm,不指定默认配置default
- configMapRef:
name: cm-nginx #所有变量从cm中读取
#配置解析:envFrom 方式使用cm里面所有的属性信息,而且变量名是默认的
root@master1ha1:~# kubectl apply -f storage-configmap-simple-envfrom.yaml
configmap/cm-nginx created
pod/configmap-envfrom-test created
root@master1ha1:~# kubectl get cm cm-nginx -o yaml
apiVersion: v1
data:
NGINX_PORT: "98765"
NGINX_USER: lcg
kind: ConfigMap
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{"NGINX_PORT":"98765","NGINX_USER":"lcg"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm-nginx","namespace":"default"}}
creationTimestamp: "2024-08-02T11:39:35Z"
name: cm-nginx
namespace: default
resourceVersion: "225895"
uid: 7c7c28f4-8517-48a9-9617-485570bfa8a3
root@master1ha1:~# kubectl describe cm cm-nginx
Name: cm-nginx
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
NGINX_USER:
----
lcg
NGINX_PORT:
----
98765
BinaryData
====
Events: <none>
#查询生成结果
root@master1ha1:~# kubectl get pod -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default configmap-envfrom-test 1/1 Running 0 4m43s 10.244.2.28 node2 <none> <none>
#验证变量
root@master1ha1:~# kubectl exec -it configmap-envfrom-test -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=configmap-envfrom-test
TERM=xterm
NGINX_PORT=98765
NGINX_USER=lcg
DEMOAPP_PORT_80_TCP_PROTO=tcp
DEMOAPP_PORT_80_TCP_ADDR=10.105.4.244
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
DEMOAPP_SERVICE_PORT_80_80=80
DEMOAPP_PORT=tcp://10.105.4.244:80
DEMOAPP_PORT_80_TCP=tcp://10.105.4.244:80
DEMOAPP_PORT_80_TCP_PORT=80
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
DEMOAPP_SERVICE_PORT=80
KUBERNETES_SERVICE_PORT_HTTPS=443
DEMOAPP_SERVICE_HOST=10.105.4.244
DEPLOYENV=Production
RELEASE=Stable
PS1=[\u@\h \w]\$
HOME=/root
#删除
root@master1ha1:~# kubectl delete -f storage-configmap-simple-envfrom.yaml
configmap "cm-nginx" deleted
pod "configmap-envfrom-test" deleted
5.3 操作示范: volume 生成配置文件并更新生效
#configmap资源定义
root@master1ha1:~# vim storage-configmap-simple-volume.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-volume
data:
author: ttc
file.conf: |
[app]
config1
config2
---
apiVersion: v1
kind: Pod
metadata:
name: pod-volume-test
spec:
volumes:
- name: volume-config #指定卷名
configMap:
name: cm-volume #指定卷来自cm
containers:
- name: demoapp
image: registry.cn-hangzhou.aliyuncs.com/guang_demo/qwer:ik8s-demoappv1.0
volumeMounts:
- name: volume-config #调用前面定义的卷名
mountPath: /cmap/ #指定Pod中的挂载点目录
#应用
root@master1ha1:~# kubectl apply -f storage-configmap-simple-volume.yaml
configmap/cm-volume configured
pod/pod-volume-test created
root@master1ha1:~# kubectl get cm cm-volume -o yaml
apiVersion: v1
data:
author: ttc #author成为文件名,ttc成为文件内容
file.conf: |
[app]
config1
config2
kind: ConfigMap
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{"author":"ttc","file.conf":"[app]\n config1\n config2\n"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm-volume","namespace":"default"}}
creationTimestamp: "2024-08-03T02:32:56Z"
name: cm-volume
namespace: default
resourceVersion: "243088"
uid: 6ad07c3c-d031-43dc-817d-336a06e404a8
root@master1ha1:~# kubectl describe cm cm-volume
Name: cm-volume
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
author:
----
ttc
file.conf:
----
[app]
config1
config2
BinaryData
====
Events: <none>
root@master1ha1:~# kubectl get pod -A -o wide
NAMESPACE NAME READY STATUS
default pod-volume-test 1/1 Running 0 3m57s 10.244.2.29 node2 <none> <none>
#验证配置文件
root@master1ha1:~# kubectl exec -it pod-volume-test -- sh
[root@pod-volume-test /]# ls
bin cmap dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
[root@pod-volume-test /]# ls cmap/
author file.conf
[root@pod-volume-test /]# cat cmap/author
[root@pod-volume-test /]# cat cmap/file.conf
[app]
config1
config2
#查看一下文件的存储方式
[root@pod-volume-test /]# ls -la cmap
total 12
drwxrwxrwx 3 root root 4096 Aug 3 02:34 .
drwxr-xr-x 1 root root 4096 Aug 3 02:34 ..
drwxr-xr-x 2 root root 4096 Aug 3 02:34 ..2024_08_03_02_34_05.1153618151
lrwxrwxrwx 1 root root 32 Aug 3 02:34 ..data -> ..2024_08_03_02_34_05.1153618151
lrwxrwxrwx 1 root root 13 Aug 3 02:34 author -> ..data/author
lrwxrwxrwx 1 root root 16 Aug 3 02:34 file.conf -> ..data/file.conf
#结果显示:
#这些文件虽然看起来是在挂载的目录下,实际上,它是经过了两层的软连接才能找到真正挂载的文件
cmap --> ..data --> ..YYYY_MM_DD_HH_MM_SS.XXXXXXXX
#通过这种双层软连接的方式,只要容器支持重载技术,那么只需要更改配置文件就可以实现容器应用的变动
#测试在线更新配置文件中的内容
root@master1ha1:~# kubectl edit cm cm-volume
apiVersion: v1
data:
author: ttc-v2.0 #修改此行
file.conf: |
[app]
config1
config2
config3-update #新增内容,其余不变
kind: ConfigMap
.....
configmap/cm-volume edited
#等一会儿进入pod可以看到配置文件变化
root@master1ha1:~# kubectl exec -it pod-volume-test -- sh
[root@pod-volume-test /]# ls -la cmap/
total 12
drwxrwxrwx 3 root root 4096 Aug 3 02:48 .
drwxr-xr-x 1 root root 4096 Aug 3 02:34 ..
drwxr-xr-x 2 root root 4096 Aug 3 02:48 ..2024_08_03_02_48_24.694563244
lrwxrwxrwx 1 root root 31 Aug 3 02:48 ..data -> ..2024_08_03_02_48_24.694563244
lrwxrwxrwx 1 root root 13 Aug 3 02:34 author -> ..data/author
lrwxrwxrwx 1 root root 16 Aug 3 02:34 file.conf -> ..data/file.conf
[root@pod-volume-test /]# cat cmap/author
ttc-v2.0 #回显是更新到了
[root@pod-volume-test /]# cat cmap/file.conf
[app]
config1
config2
config3-update #回显是更新到了
#测试结果显示:等待个几秒后,配置信息自动发生了变动,整个过程中,pod对象没有进行重启
#删除
root@master1ha1:~# kubectl delete -f storage-configmap-simple-volume.yaml
5.4 操作示范:利用 configmap volume 实现 Redis 配置
#配置输出
root@master1ha1:~# vim storage-configmap-redis.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-conf
data:
redis.conf: |
appendonly yes #redis的配置,yes表示appendonly功能启用
---
apiVersion: v1
kind: Pod
metadata:
name: cm-redis-demo
spec:
volumes:
- name: redis-data # 创建volume
emptyDir: {}
- name: redis-config
configMap:
name: redis-conf
items:
- key: redis.conf
path: redis.conf
containers:
- name: redis
image: redis:6
command:
- redis-server
- "/conf/redis.conf"
ports:
- containerPort: 6379
volumeMounts:
- name: redis-data
mountPath: /data # 把创建好的volume挂载到指定目录
- name: redis-config
mountPath: /conf
#应用
root@master1ha1:~# kubectl apply -f storage-configmap-redis.yaml
#检查
root@master1ha1:~# kubectl get cm redis-conf
NAME DATA AGE
redis-conf 1 17s
root@master1ha1:~# kubectl exec -it cm-redis-demo -- ls /data/ /conf
/conf:
redis.conf
/data/:
appendonly.aof
root@master1ha1:~# kubectl exec -it cm-redis-demo -- cat /conf/redis.conf
appendonly yes
#在线修改
root@master1ha1:~# kubectl edit cm redis-conf
apiVersion: v1
data:
redis.conf: |
appendonly yes
requirepass 123456 #添加此行
#等几秒查看,发现已同步至配置文件, 但是容器内服务不会直接生效,还需要重启redis
root@master1ha1:~# kubectl exec -it cm-redis-demo -- cat /conf/redis.conf
appendonly yes
requirepass 123456
#删除
root@master1ha1:~# kubectl delete -f storage-configmap-redis.yaml
5.5 操作示范: volume 挂载全部内容
#命令行创建CM
#创建nginx的配置信息
root@master1ha1:~# vim nginx/default.conf
server {
listen 8080;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
#命令行创建CM
root@master1ha1:~# kubectl create configmap cm-nginx-conf-files --from-file=nginx/
configmap/cm-nginx-conf-files created
#yaml文件
root@master1ha1:~# vim storage-configmap-nginx-file.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-nginx-index
data:
index.html: "Nginx Configmap GGBANG!" #单行内容的文件生成configmap
---
apiVersion: v1
kind: Pod
metadata:
name: pod-nginx-conf-configmap
spec:
volumes:
- name: nginx-conf
configMap:
name: cm-nginx-conf-files
optional: false
- name: nginx-index
configMap:
name: cm-nginx-index
optional: false
containers:
- image: nginx
name: nginx
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx/conf.d/
readOnly: true
- name: nginx-index
mountPath: /usr/share/nginx/html/
readOnly: true
root@master1ha1:~# kubectl apply -f storage-configmap-nginx-file.yaml
root@master1ha1:~# kubectl get cm
NAME DATA AGE
cm-nginx-conf-files 1 15m
cm-nginx-index 1 10m
kube-root-ca.crt 1 37d
#查看
root@master1ha1:~# kubectl get cm cm-nginx-index -o yaml
apiVersion: v1
data:
index.html: Nginx Configmap GGBANG!
kind: ConfigMap
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{"index.html":"Nginx Configmap GGBANG!"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm-nginx-index","namespace":"default"}}
creationTimestamp: "2024-08-06T07:33:03Z"
name: cm-nginx-index
namespace: default
resourceVersion: "347108"
uid: b6cb2141-86a7-49de-9c82-4185dd504aa5
root@master1ha1:~# kubectl get cm cm-nginx-conf-files -o yaml
apiVersion: v1
data:
default.conf: |
server {
listen 8080;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
kind: ConfigMap
metadata:
creationTimestamp: "2024-08-06T06:52:29Z"
name: cm-nginx-conf-files
namespace: default
resourceVersion: "343689"
uid: 8c2f069d-0076-4204-8cec-2053fd683437
root@master1ha1:~# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod-nginx-conf-configmap 1/1 Running 0 61d 10.244.1.49 node1 <none> <none>
#验证配置文件结果
root@master1ha1:~# curl 10.244.1.49:8080
Nginx Configmap GGBANG!
#删除
root@master1ha1:~# kubectl delete -f storage-configmap-nginx-file.yaml
root@master1ha1:~# kubectl delete configmap cm-nginx-conf-files
5.6 操作示范:volume挂载 CM 中部分文件
#准备配置文件
root@master1ha1:~# ls nginx/
myserver.conf myserver-gzip.cfg myserver-status.cfg
#配置文件
root@master1ha1:~# cat nginx/myserver.conf
server {
listen 8888;
server_name ttc.com;
include /etc/nginx/conf.d/myserver-*.cfg;
location / {
root /usr/share/nginx/html;
}
}
#子配置文件,注意:文件是以cfg为后缀,不能以conf文件后缀,会导致冲突
root@master1ha1:~# cat nginx/myserver-gzip.cfg
gzip on;
gzip_comp_level 5;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/xml text/javascript;
root@master1ha1:~# cat nginx/myserver-status.cfg
location /nginx-status {
stub_status on;
access_log off;
}
#创建cm
root@master1ha1:~# kubectl create cm cm-nginx-conf-files --from-file=nginx/
configmap/cm-nginx-conf-files created
#清单文件
root@master1ha1:~# vim storage-configmap-nginx-subfile.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-nginx-index
data:
index.html: "Nginx Sub Configmap Page!\n"
---
apiVersion: v1
kind: Pod
metadata:
name: pod-cm-nginx-conf
spec:
volumes:
- name: nginx-conf
configMap:
name: cm-nginx-conf-files
items:
- key: myserver.conf
path: myserver.conf
mode: 0644
- key: myserver-status.cfg
path: myserver-status.cfg
mode: 0644
- key: myserver-gzip.cfg
path: myserver-gzip.cfg
mode: 0644
optional: false
- name: nginx-index
configMap:
name: cm-nginx-index
optional: false
containers:
- image: nginx
name: pod-cm-nginx-conf-container
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx/conf.d/
readOnly: true
- name: nginx-index
mountPath: /usr/share/nginx/html/
readOnly: true
#创建资源
root@master1ha1:~# kubectl apply -f storage-configmap-nginx-subfile.yaml
root@master1ha1:~# kubectl get cm
NAME DATA AGE
cm-nginx-conf-files 3 147m
cm-nginx-index 1 7m16s
#查看资源
root@master1ha1:~# kubectl get cm cm-nginx-index -o yaml
apiVersion: v1
data:
index.html: |
Nginx Sub Configmap Page!
kind: ConfigMap
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{"index.html":"Nginx Sub Configmap Page!\n"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm-nginx-index","namespace":"default"}}
creationTimestamp: "2024-08-06T07:56:26Z"
name: cm-nginx-index
namespace: default
resourceVersion: "349084"
uid: 9bd04ee5-cda0-468d-8db9-5a661573e165
root@master1ha1:~# kubectl get cm cm-nginx-conf-files -o yaml
#查看容器的文件
root@master1ha1:~# kubectl exec -it pod-cm-nginx-conf -- ls /etc/nginx/conf.d/
myserver-gzip.cfg myserver-status.cfg myserver.conf
#访问验证
root@master1ha1:~# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod-nginx-conf-configmap 1/1 Running 2h 18d 10.244.1.51 node2 <none> <none>
root@master1ha1:~# curl 10.244.1.51:8888
Nginx Sub Configmap Page!
#更新配置
root@master1ha1:~# kubectl edit cm cm-nginx-index
apiVersion: v1
data:
index.html: |
Nginx Sub Configmap Page changed! #修改此行
#更新完配置立即生效
root@master1ha1:~# curl 10.244.1.51:8888
Nginx Sub Configmap Page changed!
#更新配置
root@master1ha1:~# #kubectl edit cm cm-nginx-conf-files
myserver.conf: |
server {
listen 6666; #修改此行
server_name ttc.com;
#在线更新完配置文件的时间戳没有变化,但文件内容变化了
root@master1ha1:~# kubectl exec -it pod-cm-nginx-conf -- ls -al /etc/nginx/conf.d/
root@master1ha1:~# curl 10.244.1.51:6666
curl: (5) Failed to connect to 10.244.1.51 port 6666: Connection refused
#在线更改的是容器内服务的配置,还需要让服务配置生效
root@master1ha1:~# kubectl exec -it pod-cm-nginx-conf -- nginx -s reload
root@master1ha1:~# curl 10.244.1.51:6666
Nginx Sub Configmap Page changed!
#删除资源
root@master1ha1:~# kubectl delete -f storage-configmap-nginx-subfile.yaml
root@master1ha1:~# kubectl delete cm cm-nginx-conf-files
最后:
有几个使用cm的限制,需要注意一下~
-
创建限制: ConfigMap必须在Pod之前创建,这表示在定义Pod时引用cm, cm必须已经存在
-
命名空间限制: ConfigMap受namespace限制,只有和cm处于相同namespace下的Pod才可以引用。如果需要在不同的namespace中共享ConfigMap,需要将其部署到公共的Namespace或者通过其他方式来实现
-
挂载路径限制: 当使用volumeMounts给Pod挂载ConfigMap时,mountPath只能是目录,而不能是文件,如果容器内该目录下已有文件存在,那么这些文件将会被新挂载的ConfigMap覆盖
-
大小限制: ConfigMap的字节大小可能因Kubernetes版本和配置不同而有所差异,受到一定的限制,这个我没遇到~
了解这些限制有助于更好地规划和使用ConfigMap的部署
最后~欢迎关注我! @Linux学习的那些事儿
我的个人资源整理,满满都是干货: → 可按需访问领取
200T免费资料,持续发布中... https://vlink.cc/route
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!