本篇内容介绍了“ConfigMap怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在成都网站设计、做网站、成都外贸网站建设公司过程中,需要针对客户的行业特点、产品特性、目标受众和市场情况进行定位分析,以确定网站的风格、色彩、版式、交互等方面的设计方向。成都创新互联还需要根据客户的需求进行功能模块的开发和设计,包括内容管理、前台展示、用户权限管理、数据统计和安全保护等功能。
将ConfigMap作为一种环境变量
在本例中,我们将在Kubernetes中创建一个新的环境变量,并将其用于代码中。在Java中,可以通过System.getenv(String) API在代码中使用环境变量。在常规Java应用程序中,可以在J2EE应用程序容器(如Oracle WLS或IBM WAS)中设置环境变量,也可以在OS中设置环境变量。然而,在Kubernetes中情况并不相同。要使用环境变量,我们必须根据literal创建配置映射。
通过kubectl create configmap
命令,我们创建了两个环境变量:app.name 和 app.desc。
我们来了解一下这背后发生了什么。
现在注意数据部分,在数据部分下,你会找到键值对。从技术上来说,ConfigMap仅仅是键值存储。属性的名称是键,属性的值是值。应用程序的代码会要求你查找这些键值对。
为了在Java代码中使用此环境变量,我们需要编写以下代码:
下面的代码段定义了两个K8s环境变量,分别为“ SPRING_BOOT_HELLO_WORLD_APP_NAME
”和“ SPRING_BOOT_HELLO_WORLD_DESC
”。这些变量将从ConfigMap app-env-config获取值。需要重点关注的是键。
属性配置文件可以在单个文件中保存很多个属性,以在不同环境中运行应用程序。在Spring Boot应用程序中,属性保存在classpath下的application.properties文件中。我们来看一下打包在应用程序jar包中的application.properties文件。
我们正在使用命令kubectl create configmap从单个文件或从多个文件创建ConfigMap。
现在让我们查看完整的代码。
将ConfigMap挂载为文件
在本节中,我将说明如何使用ConfigMap挂载文件以外部化配置。在此示例中,我将使用ConfigMap来外部化application.properties
文件。即使默认文件打包在jar中,也位于src / main / resources下。简单来说,我们将通过ConfigMap所提供的文件来覆盖默认文件。
第一步是从application.properties
创建ConfigMap。让我们了解如何在K8s中存储此ConfigMap。
通过ConfigMap,我们将挂载application.properties文件到K8s集群中,并且可以在应用程序中使用它。请注意,数据部分包含了application.properties的内容,键是文件名。
现在,为了覆盖默认配置文件,我们需要(通过ConfigMap)将application.properties挂载到应用程序的classpath中。Spring Boot通过提供不同的选项来提供这一功能。SpringApplication在以下位置从application.properties文件加载属性,并将它们添加到Spring Environment:
当前目录的/config 子目录
当前目录
classpath / config包
The classpath root
如果你想了解更多信息,可以查阅官方文档:
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files
最简单,最好的方法是将application.properties挂载在“ / config”目录中。
仔细检查挂载路径,请注意ConfigMap的名称应与我们在上面创建的app-file-configmap完全相同,键为文件名。另外,请确保将volume mount配置的名称更改为volume配置的名称。
这段代码说明了如何在application.properties文件中定义属性。如果使用Spring推荐的标准方法的话,这十分简单。具体而言,就是使用@Value
注释将属性值注入到变量中。
现在,我们可以继续进行ConfigMap示例应用程序了。我们来看一下完整的代码段。
让我们创建一个Docker镜像并将其上传到Dockerhub。在本例中,镜像名称是k8s-springboot-helloworld-configmap—app。
以下是K8S pod配置文件:
现在我们使用NodePort服务类型创建服务,以便可以从K8S集群外部使用Welcome服务。
现在,让我们把这些更改应用于K8S。
导航到浏览器并访问http://
认真观察输出,返回的字符串是:
同时,检查代码中硬编码的环境变量的默认值,以及打包在jar中的application.properties的property默认值。你发现从ConfigMap中获取了环境变量和application.properties的值。
“ConfigMap怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
分享标题:ConfigMap怎么使用
文章位置:http://lswzjz.com/article/jcodsi.html