搜索

3.8. 在环境间提升

download PDF

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

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

先决条件

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

要使用同一容器 registry,您可以在安装阶段使用 --registry 选项,或更改 IntegrationPlatform 来相应地反映。

代码示例

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

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

    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"));
      }
    }

  2. 现在运行它。

    kamel run --dev -n development PromoteServer.java --config configmap:my-cm [-t service.node-port=true]
  3. 您必须根据 Kubernetes 平台和您要提供的风险级别调整服务特征。之后,您可以对其进行测试。

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

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

    为安全起见,需要检查确保目标中存在预期的资源,如 Configmap、Secret 和 Kamelets。如果缺少其中任何这些资源,则集成不会移动。

  5. 现在,您可以促进集成。

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

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

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

    注意

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.