第 4 章 配置 OpenShift Serverless 应用程序


4.1. 对 Serving 的多容器支持

您可以使用单个 Knative 服务部署多容器 pod。这个方法可用于将应用程序职责划分为较小的特殊部分。

4.1.1. 配置多容器服务

默认启用多容器支持。您可以通过指定服务中的多个容器来创建多容器 pod。

流程

  1. 修改您的服务使其包含其他容器。只有一个容器可以处理请求,因此为一个容器指定一个 端口。以下是有两个容器的示例配置:

    多容器配置

    apiVersion: serving.knative.dev/v1
    kind: Service
    ...
    spec:
      template:
        spec:
          containers:
            - name: first-container 1
              image: gcr.io/knative-samples/helloworld-go
              ports:
                - containerPort: 8080 2
            - name: second-container 3
              image: gcr.io/knative-samples/helloworld-java

    1
    第一个容器配置。
    2
    第一个容器的端口规格。
    3
    第二个容器配置。

4.1.2. 探测多容器服务

您可以为多个容器指定就绪度和存活度探测。默认情况下不启用此功能,您必须使用 KnativeServing 自定义资源(CR)配置它。

流程

  1. 通过在 KnativeServing CR 中启用 多容器代理功能,为您的服务配置多容器 探测。

    多容器探测配置

    ...
    spec:
      config:
        features:
          "multi-container-probing": enabled 1
    ...

    1
    启用多容器 -probing 功能
  2. 应用更新的 KnativeServing CR。

    $ oc apply -f <filename>
  3. 修改您的多容器服务,使其包含指定的探测。

    多容器探测

    apiVersion: serving.knative.dev/v1
    kind: Service
    ...
    spec:
     template:
       spec:
         containers:
           - name: first-container
             image: ghcr.io/knative/helloworld-go:latest
             ports:
               - containerPort: 8080
             readinessProbe: 1
               httpGet:
                 port: 8080
           - name: second-container
             image: gcr.io/knative-samples/helloworld-java
             readinessProbe: 2
               httpGet:
                 port: 8090

    1
    第一个容器的就绪度探测
    2
    第二个容器的就绪度探测

4.1.2.1. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.