Logo
Section 1 / 6

入门

了解 ConfigMaps 的概览。

导入

入门

了解 ConfigMaps 的概览。

简介

大多数真实世界的应用程序都需要某种配置,这些配置不应直接打包到 Docker 镜像中。这类配置通常会根据应用程序运行的环境不同而变化,例如 production(生产)、staging(预发布)、development(开发)等环境。

解决这个问题的一个常见方法是将这些配置存储在环境变量中,这样可以在不修改代码或重新构建 Docker 镜像的情况下,轻松地在不同部署之间切换配置。

修改我们的示例应用

为了展示 Kubernetes 如何帮助我们处理这个问题,让我们为 hellok8s 应用创建一个 v4 版本,使其通过环境变量来决定打印哪条消息:

1require "sinatra" 2 3set :bind, "0.0.0.0" 4 5get "*" do 6 message = ENV.fetch("MESSAGE", "Hello, Kubernetes") 7 "[v4] #{message} (from #{`hostname`.strip})\n" 8end

在这里,我们只是获取 MESSAGE 环境变量(如果未设置,则使用 Hello, Kubernetes 作为默认值),并打印该值,而不是使用硬编码的字符串。当然,这是一个非常简单的示例,但足以说明其工作原理。

如果我们希望确保这些示例从干净的状态开始,也可以删除之前可能创建的所有资源:

1kubectl delete deployment,service,ingress --all

Kubernetes 架构

将环境变量传递给我们的容器