首页 » 网站建设 » phpgetconfig技巧_蹲坑学kubernetes之1719ConfigMap

phpgetconfig技巧_蹲坑学kubernetes之1719ConfigMap

访客 2024-11-19 0

扫一扫用手机浏览

文章目录 [+]

ConfigMap:用于将运用的配置信息与程序的分离。
这种办法不仅可以实现运用程序被的复用,而且还可以通过不同的配置实现更灵巧的功能。
在创建容器时,用户可以将运用程序打包为容器镜像后,通过环境变量或者外接挂载文件的办法进行配置注入。

一、创建ConfigMap

phpgetconfig技巧_蹲坑学kubernetes之1719ConfigMap

1、利用kubectl命令创建

phpgetconfig技巧_蹲坑学kubernetes之1719ConfigMap
(图片来自网络侵删)

[root@k8s-master ~]# mkdir /data[root@k8s-master data]# touch my.cnf[root@k8s-master data]# touch php.ini[root@k8s-master data]# touch nginx.conf

(1)指定目录

[root@k8s-master ~]# kubectl create configmap test-map --from-file=/data

[root@k8s-master ~]# kubectl get configmaps test-map

[root@k8s-master ~]# kubectl describe configmaps test-map

[root@k8s-master ~]# kubectl get configmaps test-map -o yaml

(2)指定文件

[root@k8s-master ~]# kubectl create configmap test-map --from-file=/data/my.cnf --from-file=/data/php.ini --from-file=/data/nginx.conf

(3)自定义值(指定字符串)

[root@k8s-master ~]# kubectl create configmap test-map --from-literal=port=3306 --from-literal=datadir=/data/mysql

--from-literal:在命令中定义字面值

例如:

port=3306

datadir=/data/mysql

2、利用yaml配置文件创建

[root@k8s-master ~]# vim test-map.yaml添加:apiVersion: v1kind: ConfigMapmetadata: name: test-mapdata: poth: /usr/sbin/nginx -t

[root@k8s-master ~]# kubectl apply -f test-map.yaml

[root@k8s-master ~]# kubectl get configmap

[root@k8s-master ~]# kubectl describe configmaps test-map

[root@k8s-master ~]# kubectl get configmaps test-map -o yaml

二、利用ConfigMap

将ConfigMap中的数据设置为环境变量将ConfigMap中的数据设置为命令行参数利用Volume将ConfigMap作为文件或目录挂载

1、用作环境变量

[root@k8s-master ~]# vim test-map.yaml添加:apiVersion: v1kind: ConfigMapmetadata: name: test-mapdata: aaa: good bbb: food

[root@k8s-master ~]# kubectl apply -f test-map.yaml

[root@k8s-master ~]# kubectl get configmaps test-map

[root@k8s-master ~]# vim test-pod.yaml添加:apiVersion: v1kind: Podmetadata: name: test-podspec: containers: - name: test-pod image: busybox:1.28 command: [ "/bin/sh", "-c", "env" ] env: - name: A_A valueFrom: configMapKeyRef: name: test-map key: aaa - name: B_B valueFrom: configMapKeyRef: name: test-map key: bbb restartPolicy: Never

[root@k8s-master ~]# kubectl apply -f test-pod.yaml

[root@k8s-master ~]# kubectl get pod

把稳:完成Pod创建,运行结束,才能看到日志信息。

[root@k8s-master ~]# kubectl logs test-pod

2、用作命令行参数

结合上面的例子进行讲解

[root@k8s-master ~]# vim test-pod.yaml修正:apiVersion: v1kind: Podmetadata: name: test-podspec: containers: - name: test-pod image: busybox:1.28 command: [ "/bin/sh", "-c", "echo $(A_A) $(B_B)" ] ## 利用环境变量 env: - name: A_A valueFrom: configMapKeyRef: name: test-map key: aaa - name: B_B valueFrom: configMapKeyRef: name: test-map key: bbb restartPolicy: Never

[root@k8s-master ~]# kubectl get pod

[root@k8s-master ~]# kubectl logs test-pod

3、通过volumeMount利用ConfigMap

网站目录:/usr/share/nginx/html

(1) 创建ConfigMap

[root@k8s-master ~]# mkdir /data/[root@k8s-master ~]# echo "welcome to dodo web server" > /data/index.html[root@k8s-master ~]# kubectl create configmap test-map --from-file=/data/

[root@k8s-master ~]# kubectl get configmaps test-map

(2)创建Pod利用ConfigMap

[root@k8s-master ~]# vim test-pod.yaml添加:apiVersion: v1kind: Podmetadata: name: test-podspec: containers: - name: test-pod image: nginx:1.16 ports: - name: http containerPort: 80 volumeMounts: - name: test-volume mountPath: /usr/share/nginx/html volumes: - name: test-volume configMap: ##挂载configMap name: test-map ##指定configMap的名称

[root@k8s-master ~]# kubectl apply -f test-pod.yaml

[root@k8s-master ~]# kubectl get pod -o wide

[root@k8s-master ~]# kubectl exec -it test-pod -- sh

访问web做事

[root@k8s-master ~]# curl 10.244.41.2

三、ConfigMap的利用限定

ConfigMap必须在Pod之前创建(除非您把 ConfigMap 标志成”optional”)。
如果您引用了一个不存在的 ConfigMap, 那这个Pod是无法启动的。
就像引用了不存在的 Key 会导致 Pod 无法启动一样。

ConfigMap受Namespace限定,只有处于相同的Namespace中的Pod可以引用它;

ConfigMap中的配额管理还未能实现;

kubelet值支持可以被API Server管理的Pod利用ConfigMap。
kubelet在当前Node上通过 --manifest-url 或 --config 自动创建的静态Pod将无法引用ConfigMap;

在Pod对ConfigMap进行挂载(volumeMount)操作时,容器内部只能挂载为目录,无法挂载为文件。

四、kubernetes集群中Secret与ConfigMap差异:

Secret紧张是用来办理密码、token、密钥等敏感数据的配置问题,它有三种类型:

Service Account :用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的/run/secrets/kubernetes.io/serviceaccount目录中;

Opaque : base64编码格式的Secret,用来存储密码、密钥等;

kubernetes.io/dockerconfigjson :用来存储私有docker registry的认证信息。

而ConfigMap便是紧张办理配置文件。
可以解耦配置和镜像的分离。
比如说在配置文件或者环境变量等等之类。
kubernetes通过ConfigMap来实现对容器中运用的配置管理。

相关文章

高级IT外包,企业数字化转型的新引擎

随着信息技术的飞速发展,企业数字化转型已成为全球范围内的必然趋势。在这个过程中,高级IT外包作为一种重要的业务模式,正逐渐成为企业...

网站建设 2024-12-26 阅读0 评论0

C语言构造题的魅力与挑战

C语言作为一种高级编程语言,广泛应用于操作系统、嵌入式系统、编译器等领域。在C语言的学习过程中,构造题是检验学习成果的重要手段。本...

网站建设 2024-12-26 阅读0 评论0

C语言显示器,技术演进与未来展望

显示器作为计算机系统的重要组成部分,承担着显示图形、图像、文字等任务。C语言,作为一种广泛使用的编程语言,与显示器紧密相连。本文将...

网站建设 2024-12-26 阅读0 评论0

C语言新东方,铸就编程梦想,开启技术未来

随着科技的飞速发展,编程已成为当今社会的重要技能之一。在我国,C语言作为编程语言的基石,受到广大编程爱好者的青睐。新东方,作为我国...

网站建设 2024-12-26 阅读0 评论0

跨界人生,从餐饮业到IT行业的华丽转身

在人生的道路上,我们总会面临各种选择。而选择,往往决定了我们的人生轨迹。在众多选择中,有些人在稳定的工作中寻求突破,有些人在熟悉的...

网站建设 2024-12-26 阅读0 评论0

西澳IT人才崛起,助力地区发展新引擎

随着全球信息技术产业的蓬勃发展,我国西澳地区IT人才队伍迅速壮大,成为推动地区经济发展的新引擎。本文将从西澳IT人才现状、人才培养...

网站建设 2024-12-26 阅读0 评论0