3.10. 跨环境提升


当一个集成在集群中运行后,您可以将该集成移到更高的环境中。也就是说,您可以 在开发环境中 测试集成,并在获得结果后进行测试,您可以将其移到 生产环境中

Camel K 使用 kamel promote 命令实现此目标。通过此命令,您可以将集成从一个命名空间移到另一个命名空间。

先决条件

  • 设置 Camel K 开发环境
  • 您必须已经有一个使用 Java 或 YAML DSL 编写的 Camel 集成。
  • 确保源 Operator 和目标 Operator 使用相同的容器 registry,默认 registry (如果通过 OperatorHub 安装 Camel K operator)是 registry.redhat.io
  • 另外,确保目标命名空间提供集成所需的 Configmaps、Secret 或 Kamelets。
注意

要使用相同的容器 registry,您可以在安装过程中使用-- registry 选项或更改 IntegrationPlatform 以反应它们。

代码示例

  1. 以下是一个简单的集成,它使用 Configmap 在 HTTP 端点上公开一些消息。您可以在名为 development 的命名空间中创建这样的集成测试和测试。

    kubectl create configmap my-cm --from-literal=greeting="hello, I am development!" -n development
    Copy to clipboard

    PromoteServer.java

    import org.apache.camel.builder.RouteBuilder;
    
    public class PromoteServer extends RouteBuilder {
      @Override
      public void configure() throws Exception {
        from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("resource:classpath:greeting"));
      }
    }
    Copy to clipboard

  2. 现在运行它。

    kamel run --dev -n development PromoteServer.java --config configmap:my-cm [-t service.node-port=true]
    Copy to clipboard
  3. 您必须调整服务特征,具体取决于 Kubernetes 平台和您要提供的暴露级别。之后,您可以对其进行测试。

    curl http://192.168.49.2:32116/hello
    hello, I am development!
    Copy to clipboard
  4. 测试集成后,您可以将其移到生产环境中。您必须具有目标环境(Open Openshift 命名空间)与操作器(共享相同的 operator 源容器 registry)和任何配置(如此处使用的 configmap)就绪。对于该范围,请在目标命名空间中创建一个。

    kubectl create configmap my-cm --from-literal=greeting="hello, I am production!" -n production
    Copy to clipboard
    注意

    为了安全起见,需要检查来确保目的地上存在预期的资源,如 Configmaps、Secret 和 Kamelets。如果缺少这些资源,则集成不会移动。

  5. 现在,您可以推广您的集成。

    kamel promote promote-server -n development --to production
    kamel logs promote-server -n production
    Copy to clipboard
  6. 测试升级的集成。

    curl http://192.168.49.2:30764/hello
    hello, I am production!
    Copy to clipboard

    由于集成正在重复使用同一容器镜像,因此新的应用会立即执行。另外,集成的不可变性也保证,因为所使用的容器与开发中测试的容器完全相同(更改只是配置)。

    注意

    测试中运行的集成不会以任何方式更改,并在停止之前继续运行。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.